MatAllocator* UMat::getStdAllocator()
{
+#ifdef HAVE_OPENCL
if( ocl::haveOpenCL() && ocl::useOpenCL() )
return ocl::getOpenCLAllocator();
+#endif
return Mat::getStdAllocator();
}
copyTo(_dst);
return;
}
+
+#ifdef HAVE_OPENCL
int cn = channels(), mtype = _mask.type(), mdepth = CV_MAT_DEPTH(mtype), mcn = CV_MAT_CN(mtype);
CV_Assert( mdepth == CV_8U && (mcn == 1 || mcn == cn) );
return;
}
}
+#endif
Mat src = getMat(ACCESS_READ);
src.copyTo(_dst, _mask);
copyTo(_dst);
return;
}
-
+
+#ifdef HAVE_OPENCL
+
bool doubleSupport = ocl::Device::getDefault().doubleFPConfig() > 0;
bool needDouble = sdepth == CV_64F || ddepth == CV_64F;
if( dims <= 2 && cn && _dst.isUMat() && ocl::useOpenCL() &&
return;
}
}
+#endif
Mat m = getMat(ACCESS_READ);
m.convertTo(_dst, _type, alpha, beta);
UMat& UMat::setTo(InputArray _value, InputArray _mask)
{
bool haveMask = !_mask.empty();
+
+#ifdef HAVE_OPENCL
int tp = type(), cn = CV_MAT_CN(tp);
+
if( dims <= 2 && cn <= 4 && CV_MAT_DEPTH(tp) < CV_64F && ocl::useOpenCL() )
{
Mat value = _value.getMat();
return *this;
}
}
+#endif
+
Mat m = getMat(haveMask ? ACCESS_RW : ACCESS_WRITE);
m.setTo(_value, _mask);
return *this;