Lines Matching +full:opencl +full:- +full:clhpp
2 // Copyright (c) 2008-2020 The Khronos Group Inc.
8 // http://www.apache.org/licenses/LICENSE-2.0
19 * \brief C++ bindings for OpenCL 1.0 (rev 48), OpenCL 1.1 (rev 33) and
20 * OpenCL 1.2 (rev 15)
27 * Tom Deakin and Simon McIntosh-Smith, July 2013
42 * reasonable to define C++ bindings for OpenCL.
56 * The OpenCL C++ Wrapper API 1.2 (revision 09)
57 * http://www.khronos.org/registry/cl/specs/opencl-cplusplus-1.2.pdf
70 * #include <OpenCL/cl.hpp>
94 * return -1;
141 // The latest version of the OpenCL C++ bindings can be found on GitHub:
142 // -> https://github.com/KhronosGroup/OpenCL-CLHPP
143 #pragma message("This version of the OpenCL Host API C++ bindings is deprecated, please use cl2.hpp instead.")
165 #include <OpenCL/opencl.h>
167 #include <CL/opencl.h>
183 // To avoid accidentally taking ownership of core OpenCL types
185 // under OpenCL 1.2
193 // in case they are not pre-defined
252 * \brief The OpenCL C++ bindings are defined within this namespace.
500 * re-define the string class to match the std::string
541 /*! \brief Constructs a string populated from a null-terminated value.
543 * \param str the null-terminated initial value of the string instance.
585 memset(newString + copySize, 0, size_ - copySize);
652 //! \brief Destructor - frees memory used to hold the current value.
686 * re-define the vector class to match the std::vector
762 --size_;
875 --size_;
942 index_ = -1;
948 index_(-1),
999 iterator& operator--()
1001 --index_;
1005 iterator operator--(int)
1008 --index_;
1055 return data_[size_-1];
1108 * OpenCL C calls that require arrays of size_t values, whose
1171 param->assign(&value[0], &value[required/sizeof(T)]);
1175 /* Specialization for reference-counted types. This depends on the
1197 param->assign(&value[0], &value[elements]);
1215 cl_int err = f(name, param->size() * sizeof(char *), &(*param)[0], NULL);
1259 param->assign(value.begin(), value.end() - 1u);
1263 param->assign("");
1294 /* Specialization for reference-counted types. This depends on the
1311 err = param->retain();
1643 * OpenCL 1.2 devices do have retain/release.
1673 * OpenCL 1.1 devices do not have retain/release.
1770 highVersion += versionInfo[index]-'0';
1776 lowVersion += versionInfo[index]-'0';
2023 //! \brief Default constructor - performs no initialization.
2037 this->image_channel_data_type = rhs.image_channel_data_type;
2038 this->image_channel_order = rhs.image_channel_order;
2054 //! \brief Default constructor - initializes to NULL.
2153 devices->assign(&ids[0], &ids[n]);
2190 devices->assign(&ids[0], &ids[n]);
2207 //! \brief Default constructor - initializes to NULL.
2272 devices->assign(&ids[0], &ids[n]);
2274 devices->clear();
2288 * \param devices returns a vector of OpenCL D3D10 devices found. The cl::Device
2289 * values returned in devices can be used to identify a specific OpenCL
2293 * - CL_SUCCESS if the function is executed successfully.
2295 * The application can query specific capabilities of the OpenCL device(s)
2351 devices->assign(&ids[0], &ids[n]);
2381 platforms->assign(&ids[0], &ids[n]);
2470 * Unload the OpenCL compiler.
2471 * \note Deprecated for OpenCL 1.2. Use Platform::unloadCompiler instead.
2730 //! \brief Default constructor - initializes to NULL.
2733 /*! \brief Constructor from cl_context - takes ownership.
2740 /*! \brief Assignment operator from cl_context - takes ownership.
2814 formats->assign(&value[0], &value[numEntries]);
2817 formats->clear();
2866 //! \brief Default constructor - initializes to NULL.
2869 /*! \brief Constructor from cl_event - takes ownership.
2876 /*! \brief Assignment operator from cl_event - takes ownership.
3005 //! \brief Default constructor - initializes to NULL.
3045 //! \brief Default constructor - initializes to NULL.
3048 /*! \brief Constructor from cl_mem - takes ownership.
3055 /*! \brief Assignment operator from cl_mem - takes ownership.
3131 * value - not the Memory class instance.
3148 // Pre-declare copy functions
3247 ::size_t size = sizeof(DataType)*(endIterator - startIterator);
3288 //! \brief Default constructor - initializes to NULL.
3291 /*! \brief Constructor from cl_mem - takes ownership.
3297 /*! \brief Assignment from cl_mem - performs shallow copy.
3368 /*! \brief Class interface for creating OpenCL buffers from ID3D10Buffer's.
3398 cl_platform platform = -1;
3423 //! \brief Default constructor - initializes to NULL.
3426 /*! \brief Constructor from cl_mem - takes ownership.
3432 /*! \brief Assignment from cl_mem - performs shallow copy.
3509 //! \brief Default constructor - initializes to NULL.
3512 /*! \brief Constructor from cl_mem - takes ownership.
3518 /*! \brief Assignment from cl_mem - performs shallow copy.
3578 //! \brief Default constructor - initializes to NULL.
3581 /*! \brief Constructor from cl_mem - takes ownership.
3587 /*! \brief Assignment from cl_mem - performs shallow copy.
3695 //! \brief Default constructor - initializes to NULL.
3698 /*! \brief Constructor from cl_mem - takes ownership.
3704 /*! \brief Assignment from cl_mem - performs shallow copy.
3932 // Run-time decision based on the actual platform
3935 useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above
3983 //! \brief Default constructor - initializes to NULL.
3986 /*! \brief Constructor from cl_mem - takes ownership.
3992 /*! \brief Assignment from cl_mem - performs shallow copy.
4042 * \note Deprecated for OpenCL 1.2. Please use ImageGL instead.
4076 //! \brief Default constructor - initializes to NULL.
4079 /*! \brief Constructor from cl_mem - takes ownership.
4085 /*! \brief Assignment from cl_mem - performs shallow copy.
4243 // Run-time decision based on the actual platform
4246 useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above
4297 //! \brief Default constructor - initializes to NULL.
4300 /*! \brief Constructor from cl_mem - takes ownership.
4306 /*! \brief Assignment from cl_mem - performs shallow copy.
4387 //! \brief Default constructor - initializes to NULL.
4390 /*! \brief Constructor from cl_mem - takes ownership.
4396 /*! \brief Assignment from cl_mem - performs shallow copy.
4443 * was performed by OpenCL anyway.
4553 //! \brief Default constructor - initializes to NULL.
4560 /*! \brief Constructor from cl_mem - takes ownership.
4571 /*! \brief Assignment from cl_mem - performs shallow copy.
4656 //! \brief Default constructor - initializes to NULL.
4684 /*! \brief Constructor from cl_sampler - takes ownership.
4691 /*! \brief Assignment operator from cl_sampler - takes ownership.
4768 //! \brief Default constructor - resulting range has zero dimensions.
4773 //! \brief Constructs one-dimensional range.
4780 //! \brief Constructs two-dimensional range.
4788 //! \brief Constructs three-dimensional range.
4809 //! \brief A zero-dimensional range.
4875 //! \brief Default constructor - initializes to NULL.
4878 /*! \brief Constructor from cl_kernel - takes ownership.
4885 /*! \brief Assignment operator from cl_kernel - takes ownership.
5117 * Construct a program object from a list of devices and a per-device list of binaries.
5118 * \param context A valid OpenCL context in which to construct the program.
5119 * \param devices A vector of OpenCL device objects for which the program will be created.
5127 * \param err if non-NULL will be set to CL_SUCCESS on successful operation or one of the following errors:
5131 * CL_INVALID_DEVICE if OpenCL devices listed in devices are not in the list of devices associated with context.
5133 * CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
5170 binaryStatus->resize(numDevices);
5177 ? &binaryStatus->front()
5190 * \param kernelNames Semi-colon separated list of builtin kernel names
5381 kernels->assign(&value[0], &value[numKernels]);
5725 (events != NULL) ? (cl_uint) events->size() : 0,
5726 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5750 (events != NULL) ? (cl_uint) events->size() : 0,
5751 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5774 (events != NULL) ? (cl_uint) events->size() : 0,
5775 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5814 (events != NULL) ? (cl_uint) events->size() : 0,
5815 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5853 (events != NULL) ? (cl_uint) events->size() : 0,
5854 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5890 (events != NULL) ? (cl_uint) events->size() : 0,
5891 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5907 * The pattern type must be an accepted OpenCL data type.
5927 (events != NULL) ? (cl_uint) events->size() : 0,
5928 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5955 (events != NULL) ? (cl_uint) events->size() : 0,
5956 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
5982 (events != NULL) ? (cl_uint) events->size() : 0,
5983 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6007 (events != NULL) ? (cl_uint) events->size() : 0,
6008 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6022 * This is a four component RGBA floating-point color value if
6042 (events != NULL) ? (cl_uint) events->size() : 0,
6043 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6076 (events != NULL) ? (cl_uint) events->size() : 0,
6077 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6110 (events != NULL) ? (cl_uint) events->size() : 0,
6111 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6136 (events != NULL) ? (cl_uint) events->size() : 0,
6137 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6161 (events != NULL) ? (cl_uint) events->size() : 0,
6162 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6186 (events != NULL) ? (cl_uint) events->size() : 0,
6187 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6219 (events != NULL) ? (cl_uint) events->size() : 0,
6220 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6243 (events != NULL) ? (cl_uint) events->size() : 0,
6244 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6274 (events != NULL) ? (cl_uint) events->size() : 0,
6275 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6304 (events != NULL) ? (cl_uint) events->size() : 0,
6305 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6340 (events != NULL) ? (cl_uint) events->size() : 0,
6341 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6367 (events != NULL) ? (cl_uint) events->size() : 0,
6368 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6387 (events != NULL) ? (cl_uint) events->size() : 0,
6388 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6406 cl_mem * mems = (mem_objects != NULL && mem_objects->size() > 0)
6407 ? (cl_mem*) alloca(mem_objects->size() * sizeof(cl_mem))
6411 for (unsigned int i = 0; i < mem_objects->size(); i++) {
6420 (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0,
6422 (mem_locs != NULL && mem_locs->size() > 0) ? (const void **) &mem_locs->front() : NULL,
6423 (events != NULL) ? (cl_uint) events->size() : 0,
6424 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6475 (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0,
6476 (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL,
6477 (events != NULL) ? (cl_uint) events->size() : 0,
6478 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6497 (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0,
6498 (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL,
6499 (events != NULL) ? (cl_uint) events->size() : 0,
6500 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6540 (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0,
6541 (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL,
6542 (events != NULL) ? (cl_uint) events->size() : 0,
6543 (events != NULL) ? (cl_event*) &events->front() : NULL,
6573 (mem_objects != NULL) ? (cl_uint) mem_objects->size() : 0,
6574 (mem_objects != NULL && mem_objects->size() > 0) ? (const cl_mem *) &mem_objects->front(): NULL,
6575 (events != NULL) ? (cl_uint) events->size() : 0,
6576 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6643 ::size_t size = sizeof(DataType)*(endIterator - startIterator);
6694 ::size_t size = sizeof(DataType)*(endIterator - startIterator);
6776 (events != NULL) ? (cl_uint) events->size() : 0,
6777 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6805 (events != NULL) ? (cl_uint) events->size() : 0,
6806 (events != NULL && events->size() > 0) ? (cl_event*) &events->front() : NULL,
6878 ::size_t length = endIterator-startIterator;
6917 ::size_t length = endIterator-startIterator;
7523 //------------------------------------------------------------------------------------------------------
12780 //----------------------------------------------------------------------------------------------
12858 //----------------------------------------------------------------------------------------------------------------------