diff --git a/modules/core/src/ocl.cpp b/modules/core/src/ocl.cpp index c333b08c4..708730ee5 100644 --- a/modules/core/src/ocl.cpp +++ b/modules/core/src/ocl.cpp @@ -4624,6 +4624,9 @@ struct Image2D::Impl static bool isFormatSupported(cl_image_format format) { + if (!haveOpenCL()) + CV_Error(Error::OpenCLApiCallError, "OpenCL runtime not found!"); + cl_context context = (cl_context)Context::getDefault().ptr(); // Figure out how many formats are supported by this context. cl_uint numFormats = 0; diff --git a/modules/core/test/ocl/test_image2d.cpp b/modules/core/test/ocl/test_image2d.cpp new file mode 100644 index 000000000..412761a7f --- /dev/null +++ b/modules/core/test/ocl/test_image2d.cpp @@ -0,0 +1,43 @@ +// 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) 2014, Itseez, Inc., all rights reserved. +// Third party copyrights are property of their respective owners. + +#include "../test_precomp.hpp" +#include "opencv2/ts/ocl_test.hpp" + +#ifdef HAVE_OPENCL + +namespace cvtest { +namespace ocl { + +PARAM_TEST_CASE(Image2DBasicTest, int, int) +{ + int depth, ch; + + +}; + +TEST(Image2D, turnOffOpenCL) +{ + if (cv::ocl::haveOpenCL()) + { + // save the current state + bool useOCL = cv::ocl::useOpenCL(); + + cv::ocl::setUseOpenCL(true); + UMat um(128, 128, CV_8UC1); + + cv::ocl::setUseOpenCL(false); + cv::ocl::Image2D image(um); + + // reset state to the previous one + cv::ocl::setUseOpenCL(useOCL); + } +} + +} } // namespace cvtest::ocl + +#endif // HAVE_OPENCL \ No newline at end of file