OpenCL C++ Bindings
Loading...
Searching...
No Matches
cl::Buffer Class Reference

Class interface for Buffer Memory Objects. More...

#include <opencl.hpp>

Inheritance diagram for cl::Buffer:
cl::Memory cl::detail::Wrapper< cl_mem > cl::BufferGL cl::BufferRenderGL

Public Member Functions

 Buffer (const Context &context, cl_mem_flags flags, size_type size, void *host_ptr=nullptr, cl_int *err=nullptr)
 Constructs a Buffer in a specified context.
 
 Buffer (const Context &context, const vector< cl_mem_properties > &properties, cl_mem_flags flags, size_type size, void *host_ptr=nullptr, cl_int *err=nullptr)
 Constructs a Buffer in a specified context and with specified properties.
 
 Buffer (cl_mem_flags flags, size_type size, void *host_ptr=nullptr, cl_int *err=nullptr)
 Constructs a Buffer in the default context.
 
 Buffer (const vector< cl_mem_properties > &properties, cl_mem_flags flags, size_type size, void *host_ptr=nullptr, cl_int *err=nullptr)
 Constructs a Buffer in the default context and with specified properties.
 
template<typename IteratorType >
 Buffer (IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr=false, cl_int *err=nullptr)
 Construct a Buffer from a host container via iterators. IteratorType must be random access. If useHostPtr is specified iterators must represent contiguous data.
 
template<typename IteratorType >
 Buffer (const Context &context, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr=false, cl_int *err=nullptr)
 Construct a Buffer from a host container via iterators using a specified context. IteratorType must be random access. If useHostPtr is specified iterators must represent contiguous data.
 
template<typename IteratorType >
 Buffer (const CommandQueue &queue, IteratorType startIterator, IteratorType endIterator, bool readOnly, bool useHostPtr=false, cl_int *err=nullptr)
 Construct a Buffer from a host container via iterators using a specified queue. If useHostPtr is specified iterators must be random access.
 
 Buffer ()
 Default constructor - initializes to nullptr.
 
 Buffer (const cl_mem &buffer, bool retainObject=false)
 Constructor from cl_mem - takes ownership.
 
Bufferoperator= (const cl_mem &rhs)
 Assignment from cl_mem - performs shallow copy.
 
Buffer createSubBuffer (cl_mem_flags flags, cl_buffer_create_type buffer_create_type, const void *buffer_create_info, cl_int *err=nullptr)
 Creates a new buffer object from this.
 
- Public Member Functions inherited from cl::Memory
 Memory ()
 Default constructor - initializes to nullptr.
 
 Memory (const cl_mem &memory, bool retainObject)
 Constructor from cl_mem - takes ownership.
 
Memoryoperator= (const cl_mem &rhs)
 Assignment operator from cl_mem - takes ownership.
 
template<typename T >
cl_int getInfo (cl_mem_info name, T *param) const
 Wrapper for clGetMemObjectInfo().
 
template<cl_mem_info name>
detail::param_traits< detail::cl_mem_info, name >::param_type getInfo (cl_int *err=nullptr) const
 Wrapper for clGetMemObjectInfo() that returns by value.
 
cl_int setDestructorCallback (void(CL_CALLBACK *pfn_notify)(cl_mem, void *), void *user_data=nullptr)
 Registers a callback function to be called when the memory object is no longer needed.
 
- Public Member Functions inherited from cl::detail::Wrapper< cl_mem >
 Wrapper (const cl_type &obj, bool retainObject)
 
 Wrapper (const Wrapper< cl_type > &rhs)
 
 Wrapper (Wrapper< cl_type > &&rhs) noexcept
 
Wrapper< cl_type > & operator= (const Wrapper< cl_type > &rhs)
 
Wrapper< cl_type > & operator= (Wrapper< cl_type > &&rhs)
 
Wrapper< cl_type > & operator= (const cl_type &rhs)
 
const cl_type & operator() () const
 
cl_type & operator() ()
 
cl_type get () const
 

Additional Inherited Members

- Public Types inherited from cl::detail::Wrapper< cl_mem >
typedef cl_mem cl_type
 
- Protected Member Functions inherited from cl::detail::Wrapper< cl_mem >
cl_int retain () const
 
cl_int release () const
 
- Protected Attributes inherited from cl::detail::Wrapper< cl_mem >
cl_type object_
 

Detailed Description

Class interface for Buffer Memory Objects.

See Memory for details about copy semantics, etc.

See also
Memory

Definition at line 4339 of file opencl.hpp.

Constructor & Destructor Documentation

◆ Buffer() [1/9]

cl::Buffer::Buffer ( const Context & context,
cl_mem_flags flags,
size_type size,
void * host_ptr = nullptr,
cl_int * err = nullptr )
inline

Constructs a Buffer in a specified context.

Wraps clCreateBuffer().

Parameters
host_ptrStorage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.

Definition at line 4350 of file opencl.hpp.

◆ Buffer() [2/9]

cl::Buffer::Buffer ( const Context & context,
const vector< cl_mem_properties > & properties,
cl_mem_flags flags,
size_type size,
void * host_ptr = nullptr,
cl_int * err = nullptr )
inline

Constructs a Buffer in a specified context and with specified properties.

Wraps clCreateBufferWithProperties().

Parameters
propertiesOptional list of properties for the buffer object and their corresponding values. The non-empty list must end with 0.
host_ptrStorage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.

Definition at line 4377 of file opencl.hpp.

◆ Buffer() [3/9]

cl::Buffer::Buffer ( cl_mem_flags flags,
size_type size,
void * host_ptr = nullptr,
cl_int * err = nullptr )
inline

Constructs a Buffer in the default context.

Wraps clCreateBuffer().

Parameters
host_ptrStorage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.
See also
Context::getDefault()

Definition at line 4412 of file opencl.hpp.

◆ Buffer() [4/9]

cl::Buffer::Buffer ( const vector< cl_mem_properties > & properties,
cl_mem_flags flags,
size_type size,
void * host_ptr = nullptr,
cl_int * err = nullptr )
inline

Constructs a Buffer in the default context and with specified properties.

Wraps clCreateBufferWithProperties().

Parameters
propertiesOptional list of properties for the buffer object and their corresponding values. The non-empty list must end with 0.
host_ptrStorage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.
See also
Context::getDefault()

Definition at line 4431 of file opencl.hpp.

◆ Buffer() [5/9]

template<typename IteratorType >
cl::Buffer::Buffer ( IteratorType startIterator,
IteratorType endIterator,
bool readOnly,
bool useHostPtr = false,
cl_int * err = nullptr )
inline

Construct a Buffer from a host container via iterators. IteratorType must be random access. If useHostPtr is specified iterators must represent contiguous data.

Definition at line 4445 of file opencl.hpp.

◆ Buffer() [6/9]

template<typename IteratorType >
cl::Buffer::Buffer ( const Context & context,
IteratorType startIterator,
IteratorType endIterator,
bool readOnly,
bool useHostPtr = false,
cl_int * err = nullptr )

Construct a Buffer from a host container via iterators using a specified context. IteratorType must be random access. If useHostPtr is specified iterators must represent contiguous data.

Definition at line 9932 of file opencl.hpp.

◆ Buffer() [7/9]

template<typename IteratorType >
cl::Buffer::Buffer ( const CommandQueue & queue,
IteratorType startIterator,
IteratorType endIterator,
bool readOnly,
bool useHostPtr = false,
cl_int * err = nullptr )

Construct a Buffer from a host container via iterators using a specified queue. If useHostPtr is specified iterators must be random access.

Definition at line 9983 of file opencl.hpp.

◆ Buffer() [8/9]

cl::Buffer::Buffer ( )
inline

Default constructor - initializes to nullptr.

Definition at line 4508 of file opencl.hpp.

◆ Buffer() [9/9]

cl::Buffer::Buffer ( const cl_mem & buffer,
bool retainObject = false )
inlineexplicit

Constructor from cl_mem - takes ownership.

Parameters
retainObjectwill cause the constructor to retain its cl object. Defaults to false to maintain compatibility with earlier versions.

See Memory for further details.

Definition at line 4517 of file opencl.hpp.

Member Function Documentation

◆ createSubBuffer()

Buffer cl::Buffer::createSubBuffer ( cl_mem_flags flags,
cl_buffer_create_type buffer_create_type,
const void * buffer_create_info,
cl_int * err = nullptr )
inline

Creates a new buffer object from this.

Wraps clCreateSubBuffer().

Definition at line 4536 of file opencl.hpp.

◆ operator=()

Buffer & cl::Buffer::operator= ( const cl_mem & rhs)
inline

Assignment from cl_mem - performs shallow copy.

See Memory for further details.

Definition at line 4524 of file opencl.hpp.


The documentation for this class was generated from the following file: