35#ifndef itkOpenCLBuffer_h
36#define itkOpenCLBuffer_h
81 Read(
void * data,
const std::size_t size,
const std::size_t offset = 0);
91 const std::size_t size,
93 const std::size_t offset = 0);
102 Write(
const void * data,
const std::size_t size,
const std::size_t offset = 0);
112 const std::size_t size,
114 const std::size_t offset = 0);
126 const std::size_t bufferBytesPerLine,
127 const std::size_t hostBytesPerLine);
138 const std::size_t bufferBytesPerLine,
139 const std::size_t hostBytesPerLine,
152 const std::size_t origin[3],
153 const std::size_t size[3],
154 const std::size_t bufferBytesPerLine,
155 const std::size_t bufferBytesPerSlice,
156 const std::size_t hostBytesPerLine,
157 const std::size_t hostBytesPerSlice);
167 const std::size_t origin[3],
168 const std::size_t size[3],
169 const std::size_t bufferBytesPerLine,
170 const std::size_t bufferBytesPerSlice,
171 const std::size_t hostBytesPerLine,
172 const std::size_t hostBytesPerSlice,
184 const std::size_t bufferBytesPerLine,
185 const std::size_t hostBytesPerLine);
196 const std::size_t bufferBytesPerLine,
197 const std::size_t hostBytesPerLine,
209 const std::size_t origin[3],
210 const std::size_t size[3],
211 const std::size_t bufferBytesPerLine,
212 const std::size_t bufferBytesPerSlice,
213 const std::size_t hostBytesPerLine,
214 const std::size_t hostBytesPerSlice);
224 const std::size_t origin[3],
225 const std::size_t size[3],
226 const std::size_t bufferBytesPerLine,
227 const std::size_t bufferBytesPerSlice,
228 const std::size_t hostBytesPerLine,
229 const std::size_t hostBytesPerSlice,
240 const std::size_t size,
241 const std::size_t dst_offset = 0,
242 const std::size_t offset = 0);
252 const std::size_t size,
254 const std::size_t dst_offset = 0,
255 const std::size_t offset = 0);
266 const std::size_t src_offset = 0);
279 const std::size_t src_offset = 0);
292 const std::size_t bufferBytesPerLine,
293 std::size_t destBytesPerLine);
305 const std::size_t bufferBytesPerLine,
306 const std::size_t destBytesPerLine,
319 const std::size_t origin[3],
320 const std::size_t size[3],
321 const std::size_t destOrigin[3],
322 const std::size_t bufferBytesPerLine,
323 const std::size_t bufferBytesPerSlice,
324 const std::size_t destBytesPerLine,
325 const std::size_t destBytesPerSlice);
335 const std::size_t origin[3],
336 const std::size_t size[3],
337 const std::size_t destOrigin[3],
338 const std::size_t bufferBytesPerLine,
339 const std::size_t bufferBytesPerSlice,
340 const std::size_t destBytesPerLine,
341 const std::size_t destBytesPerSlice,
362 const std::size_t size,
364 const std::size_t offset = 0);
The OpenCLBuffer class represents an OpenCL buffer object.
bool CopyToImage(const OpenCLImage &dest, const OpenCLSize &origin, const OpenCLSize ®ion, const std::vcl_size_t src_offset=0)
OpenCLBuffer CreateSubBuffer(const OpenCLMemoryObject::Access access, const std::vcl_size_t size, const std::vcl_size_t offset=0)
bool CopyToBuffer(const OpenCLBuffer &dest, const std::vcl_size_t size, const std::vcl_size_t dst_offset=0, const std::vcl_size_t offset=0)
OpenCLEvent MapAsync(void **ptr, const OpenCLMemoryObject::Access access, const std::vcl_size_t size, const OpenCLEventList &event_list=OpenCLEventList(), const std::vcl_size_t offset=0)
bool CopyToRect(const OpenCLBuffer &dest, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t destOrigin[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t destBytesPerLine, const std::vcl_size_t destBytesPerSlice)
OpenCLEvent WriteAsync(const void *data, const std::vcl_size_t size, const OpenCLEventList &event_list=OpenCLEventList(), const std::vcl_size_t offset=0)
void * Map(const OpenCLMemoryObject::Access access, const std::vcl_size_t size, const std::vcl_size_t offset=0)
OpenCLEvent CopyToImageAsync(const OpenCLImage &dest, const OpenCLSize &origin, const OpenCLSize ®ion, const OpenCLEventList &event_list=OpenCLEventList(), const std::vcl_size_t src_offset=0)
OpenCLEvent WriteRectAsync(const void *data, const RectangleType &rect, const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t hostBytesPerLine, const OpenCLEventList &event_list=OpenCLEventList())
bool Read(void *data, const std::vcl_size_t size, const std::vcl_size_t offset=0)
bool ReadRect(void *data, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t hostBytesPerLine, const std::vcl_size_t hostBytesPerSlice)
void * Map(const OpenCLMemoryObject::Access access)
OpenCLEvent ReadAsync(void *data, const std::vcl_size_t size, const OpenCLEventList &event_list=OpenCLEventList(), const std::vcl_size_t offset=0)
std::vcl_size_t GetOffset() const
OpenCLEvent WriteRectAsync(const void *data, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t hostBytesPerLine, const std::vcl_size_t hostBytesPerSlice, const OpenCLEventList &event_list=OpenCLEventList())
bool ReadRect(void *data, const RectangleType &rect, const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t hostBytesPerLine)
OpenCLEvent CopyToRectAsync(const OpenCLBuffer &dest, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t destOrigin[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t destBytesPerLine, const std::vcl_size_t destBytesPerSlice, const OpenCLEventList &event_list=OpenCLEventList())
OpenCLEvent CopyToRectAsync(const OpenCLBuffer &dest, const RectangleType &rect, const PointType &destPoint, const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t destBytesPerLine, const OpenCLEventList &event_list=OpenCLEventList())
OpenCLEvent ReadRectAsync(void *data, const RectangleType &rect, const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t hostBytesPerLine, const OpenCLEventList &event_list=OpenCLEventList())
bool Write(const void *data, const std::vcl_size_t size, const std::vcl_size_t offset=0)
OpenCLBuffer & operator=(const OpenCLBuffer &other)
OpenCLBuffer(const OpenCLBuffer &other)
OpenCLEvent ReadRectAsync(void *data, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t hostBytesPerLine, const std::vcl_size_t hostBytesPerSlice, const OpenCLEventList &event_list=OpenCLEventList())
bool WriteRect(const void *data, const std::vcl_size_t origin[3], const std::vcl_size_t size[3], const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t bufferBytesPerSlice, const std::vcl_size_t hostBytesPerLine, const std::vcl_size_t hostBytesPerSlice)
OpenCLEvent CopyToBufferAsync(const OpenCLBuffer &dest, const std::vcl_size_t size, const OpenCLEventList &event_list=OpenCLEventList(), const std::vcl_size_t dst_offset=0, const std::vcl_size_t offset=0)
OpenCLBuffer(OpenCLContext *context, const cl_mem id)
bool WriteRect(const void *data, const RectangleType &rect, const std::vcl_size_t bufferBytesPerLine, const std::vcl_size_t hostBytesPerLine)
bool CopyToRect(const OpenCLBuffer &dest, const RectangleType &rect, const PointType &destPoint, const std::vcl_size_t bufferBytesPerLine, std::vcl_size_t destBytesPerLine)
OpenCLBuffer GetParentBuffer() const
The OpenCLContext class represents an OpenCL context.
OpenCLEventList class represents a list of OpenCLEvent objects.
OpenCLEvent class represents an OpenCL event object.
The OpenCLImage class represents an image object is used to store a one, two or three dimensional tex...
The OpenCLMemoryObject class represents all common memory objects such as buffers and image objects.
Point< std::vcl_size_t, 2 > PointType
The OpenCLSize class defines the size of an item of work for an OpenCL kernel.