|
|
@ -94,8 +94,12 @@ void bindInArg(Mag& mag, const RcDesc &rc, const GRunArg &arg, bool is_umat) |
|
|
|
case GRunArg::index_of<cv::gapi::own::Mat>() : |
|
|
|
case GRunArg::index_of<cv::gapi::own::Mat>() : |
|
|
|
if (is_umat) |
|
|
|
if (is_umat) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
#if !defined(GAPI_STANDALONE) |
|
|
|
auto& mag_umat = mag.template slot<cv::UMat>()[rc.id]; |
|
|
|
auto& mag_umat = mag.template slot<cv::UMat>()[rc.id]; |
|
|
|
mag_umat = to_ocv(util::get<cv::gapi::own::Mat>(arg)).getUMat(ACCESS_READ); |
|
|
|
mag_umat = to_ocv(util::get<cv::gapi::own::Mat>(arg)).getUMat(ACCESS_READ); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
util::throw_error(std::logic_error("UMat is not supported in stadnalone build")); |
|
|
|
|
|
|
|
#endif // !defined(GAPI_STANDALONE)
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
@ -157,8 +161,12 @@ void bindOutArg(Mag& mag, const RcDesc &rc, const GRunArgP &arg, bool is_umat) |
|
|
|
case GRunArgP::index_of<cv::gapi::own::Mat*>() : |
|
|
|
case GRunArgP::index_of<cv::gapi::own::Mat*>() : |
|
|
|
if (is_umat) |
|
|
|
if (is_umat) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
#if !defined(GAPI_STANDALONE) |
|
|
|
auto& mag_umat = mag.template slot<cv::UMat>()[rc.id]; |
|
|
|
auto& mag_umat = mag.template slot<cv::UMat>()[rc.id]; |
|
|
|
mag_umat = to_ocv(*(util::get<cv::gapi::own::Mat*>(arg))).getUMat(ACCESS_RW); |
|
|
|
mag_umat = to_ocv(*(util::get<cv::gapi::own::Mat*>(arg))).getUMat(ACCESS_RW); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
util::throw_error(std::logic_error("UMat is not supported in standalone build")); |
|
|
|
|
|
|
|
#endif // !defined(GAPI_STANDALONE)
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
@ -256,7 +264,13 @@ cv::GRunArgP getObjPtr(Mag& mag, const RcDesc &rc, bool is_umat) |
|
|
|
{ |
|
|
|
{ |
|
|
|
case GShape::GMAT: |
|
|
|
case GShape::GMAT: |
|
|
|
if (is_umat) |
|
|
|
if (is_umat) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
#if !defined(GAPI_STANDALONE) |
|
|
|
return GRunArgP(&mag.template slot<cv::UMat>()[rc.id]); |
|
|
|
return GRunArgP(&mag.template slot<cv::UMat>()[rc.id]); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
util::throw_error(std::logic_error("UMat is not supported in standalone build")); |
|
|
|
|
|
|
|
#endif // !defined(GAPI_STANDALONE)
|
|
|
|
|
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
return GRunArgP(&mag.template slot<cv::gapi::own::Mat>()[rc.id]); |
|
|
|
return GRunArgP(&mag.template slot<cv::gapi::own::Mat>()[rc.id]); |
|
|
|
case GShape::GSCALAR: return GRunArgP(&mag.template slot<cv::gapi::own::Scalar>()[rc.id]); |
|
|
|
case GShape::GSCALAR: return GRunArgP(&mag.template slot<cv::gapi::own::Scalar>()[rc.id]); |
|
|
@ -300,8 +314,12 @@ void writeBack(const Mag& mag, const RcDesc &rc, GRunArgP &g_arg, bool is_umat) |
|
|
|
} |
|
|
|
} |
|
|
|
if (is_umat) |
|
|
|
if (is_umat) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
#if !defined(GAPI_STANDALONE) |
|
|
|
auto& in_mag = mag.template slot<cv::UMat>().at(rc.id); |
|
|
|
auto& in_mag = mag.template slot<cv::UMat>().at(rc.id); |
|
|
|
GAPI_Assert((out_arg_data == (in_mag.getMat(ACCESS_RW).data)) && " data for output parameters was reallocated ?"); |
|
|
|
GAPI_Assert((out_arg_data == (in_mag.getMat(ACCESS_RW).data)) && " data for output parameters was reallocated ?"); |
|
|
|
|
|
|
|
#else |
|
|
|
|
|
|
|
util::throw_error(std::logic_error("UMat is not supported in standalone build")); |
|
|
|
|
|
|
|
#endif // !defined(GAPI_STANDALONE)
|
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|