mirror of
https://github.com/opencv/opencv.git
synced 2024-12-13 16:09:23 +08:00
29e88e50ff
* G-API Initial code upload * Update G-API code base to Sep-24-2018 * The majority of OpenCV buildbot problems was addressed * Update G-API code base to 24-Sep-18 EOD * G-API code base update 25-Sep-2018 * Linux warnings should be resolved * Documentation build should become green * Number of Windows warnings should be reduced * Update G-API code base to 25-Sep-18 EOD * ARMv7 build issue should be resolved * ADE is bumped to latest version and should fix Clang builds for macOS/iOS * Remaining Windows warnings should be resolved * New Linux32 / ARMv7 warnings should be resolved * G-API code base update 25-Sep-2018-EOD2 * Final Windows warnings should be resolved now * G-API code base update 26-Sep-2018 * Fixed issues with precompiled headers in module and its tests
52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
// This file is part of OpenCV project.
|
|
// It is subject to the license terms in the LICENSE file found in the top-level directory
|
|
// of this distribution and at http://opencv.org/license.html.
|
|
//
|
|
// Copyright (C) 2018 Intel Corporation
|
|
|
|
|
|
#ifndef OPENCV_GAPI_GCOMPILER_HPP
|
|
#define OPENCV_GAPI_GCOMPILER_HPP
|
|
|
|
|
|
#include "opencv2/gapi/gcommon.hpp"
|
|
#include "opencv2/gapi/gkernel.hpp"
|
|
#include "opencv2/gapi/gcomputation.hpp"
|
|
|
|
#include <ade/execution_engine/execution_engine.hpp>
|
|
|
|
namespace cv { namespace gimpl {
|
|
|
|
// FIXME: exported for internal tests only!
|
|
class GAPI_EXPORTS GCompiler
|
|
{
|
|
const GComputation& m_c;
|
|
const GMetaArgs m_metas;
|
|
GCompileArgs m_args;
|
|
ade::ExecutionEngine m_e;
|
|
|
|
cv::gapi::GKernelPackage m_all_kernels;
|
|
|
|
void validateInputMeta();
|
|
void validateOutProtoArgs();
|
|
|
|
public:
|
|
explicit GCompiler(const GComputation &c,
|
|
GMetaArgs &&metas,
|
|
GCompileArgs &&args);
|
|
|
|
// The method which does everything...
|
|
GCompiled compile();
|
|
|
|
// But is actually composed of this:
|
|
using GPtr = std::unique_ptr<ade::Graph>;
|
|
GPtr generateGraph(); // Unroll GComputation into a GModel
|
|
void runPasses(ade::Graph &g); // Apply all G-API passes on a GModel
|
|
void compileIslands(ade::Graph &g); // Instantiate GIslandExecutables in GIslandModel
|
|
GCompiled produceCompiled(GPtr &&pg); // Produce GCompiled from processed GModel
|
|
};
|
|
|
|
}}
|
|
|
|
#endif // OPENCV_GAPI_GCOMPILER_HPP
|