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:

## 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.
Buffer & | operator= (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.
Memory & | operator= (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< cl_type > & | operator= (const Wrapper< cl_type > &rhs)
const cl_type & | operator() () const
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 4361 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_ptr | Storage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.

Definition at line 4372 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

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

Definition at line 4399 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_ptr | Storage to be used if the CL_MEM_USE_HOST_PTR flag was specified. Note alignment & exclusivity requirements.

See also
  Context::getDefault()

Definition at line 4434 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

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

See also
  Context::getDefault()

Definition at line 4453 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 4467 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 9954 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 10005 of file opencl.hpp.

## ◆ Buffer() [8/9]

cl::Buffer::Buffer | ( |  | ) |
| inline

Default constructor - initializes to nullptr.

Definition at line 4530 of file opencl.hpp.

## ◆ Buffer() [9/9]

cl::Buffer::Buffer | ( | const cl_mem & | buffer,
|  | bool | retainObject = false )
| inline explicit

Constructor from cl_mem - takes ownership.

Parameters

  retainObject | will 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 4539 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 4558 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 4546 of file opencl.hpp.

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

- opencl.hpp