10 #ifndef __OPENCL_DATA_COPY_H__ 11 #define __OPENCL_DATA_COPY_H__ 16 static void copy(
fg::Image& out,
const cl::Buffer& in,
const cl::CommandQueue& queue)
18 cl::BufferGL pboMapBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), CL_MEM_WRITE_ONLY, out.
pbo(), NULL);
20 std::vector<cl::Memory> shared_objects;
21 shared_objects.push_back(pboMapBuffer);
24 queue.enqueueAcquireGLObjects(&shared_objects);
25 queue.enqueueCopyBuffer(in, pboMapBuffer, 0, 0, out.
size(), NULL, NULL);
27 queue.enqueueReleaseGLObjects(&shared_objects);
39 template<
class Renderable>
40 void copy(Renderable& out,
const cl::Buffer& in,
const cl::CommandQueue& queue)
42 cl::BufferGL vboMapBuffer(queue.getInfo<CL_QUEUE_CONTEXT>(), CL_MEM_WRITE_ONLY, out.vbo(), NULL);
44 std::vector<cl::Memory> shared_objects;
45 shared_objects.push_back(vboMapBuffer);
48 queue.enqueueAcquireGLObjects(&shared_objects);
49 queue.enqueueCopyBuffer(in, vboMapBuffer, 0, 0, out.size(), NULL, NULL);
51 queue.enqueueReleaseGLObjects(&shared_objects);
56 #endif //__OPENCL_DATA_COPY_H__ FGAPI unsigned size() const
Get the OpenGL Pixel Buffer Object resource size.
Definition: CPUCopy.hpp:13
void copy(fg::Image &out, const T *dataPtr)
Definition: CPUCopy.hpp:17
FGAPI unsigned pbo() const
Get the OpenGL Pixel Buffer Object identifier.