MCPcopy Create free account
hub / github.com/OpenKinect/libfreenect2 / Image3D

Class Image3D

include/internal/CL/cl.hpp:4199–4324  ·  view source on GitHub ↗

! \brief Class interface for 3D Image Memory objects. * * See Memory for details about copy semantics, etc. * * \see Memory */

Source from the content-addressed store, hash-verified

4197 * \see Memory
4198 */
4199class Image3D : public Image
4200{
4201public:
4202 /*! \brief Constructs a 3D Image in a specified context.
4203 *
4204 * Wraps clCreateImage().
4205 */
4206 Image3D(
4207 const Context& context,
4208 cl_mem_flags flags,
4209 ImageFormat format,
4210 ::size_t width,
4211 ::size_t height,
4212 ::size_t depth,
4213 ::size_t row_pitch = 0,
4214 ::size_t slice_pitch = 0,
4215 void* host_ptr = NULL,
4216 cl_int* err = NULL)
4217 {
4218 cl_int error;
4219 bool useCreateImage;
4220
4221#if defined(CL_VERSION_1_2) && defined(CL_USE_DEPRECATED_OPENCL_1_1_APIS)
4222 // Run-time decision based on the actual platform
4223 {
4224 cl_uint version = detail::getContextPlatformVersion(context());
4225 useCreateImage = (version >= 0x10002); // OpenCL 1.2 or above
4226 }
4227#elif defined(CL_VERSION_1_2)
4228 useCreateImage = true;
4229#else
4230 useCreateImage = false;
4231#endif
4232
4233#if defined(CL_VERSION_1_2)
4234 if (useCreateImage)
4235 {
4236 cl_image_desc desc =
4237 {
4238 CL_MEM_OBJECT_IMAGE3D,
4239 width,
4240 height,
4241 depth,
4242 0, // array size (unused)
4243 row_pitch,
4244 slice_pitch,
4245 0, 0, 0
4246 };
4247 object_ = ::clCreateImage(
4248 context(),
4249 flags,
4250 &format,
4251 &desc,
4252 host_ptr,
4253 &error);
4254
4255 detail::errHandler(error, __CREATE_IMAGE_ERR);
4256 if (err != NULL) {

Callers 1

Image3DGLMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected