Kanzi Engine API
kanzi::GPUBuffer Class Reference

#include <kanzi/core.ui/platform/graphics_backend/gl/gpu_buffer.hpp>

Public Types

enum  Type { BufferTypeVertex, BufferTypeIndex }
 

Public Member Functions

unsigned int getNativeHandle () const
 Get the underlying native GL name. More...
 
size_t getSize () const
 Get the size of the buffer. More...
 
Type getType () const
 Get the type of the buffer. More...
 
 GPUBuffer ()=default
 Default constructor. More...
 
 GPUBuffer (Renderer &renderer, Type type, size_t size)
 Constructor that initializes as empty and without uploading. More...
 
 GPUBuffer (Renderer &renderer, Type type, ConstByteSpan data)
 Constructor that initializes with data and uploads immediately. More...
 
 GPUBuffer (GPUBuffer &&other)
 
GPUBufferoperator= (GPUBuffer &&other)
 
void setData (Renderer &renderer, ConstByteSpan data, const bool shrinkToFit)
 Update all data in the buffer. More...
 
void setSubData (Renderer &renderer, ConstByteSpan data, unsigned int offset)
 Update a subsection of data in the buffer. More...
 

Friends

void swap (GPUBuffer &left, GPUBuffer &right)
 

Member Enumeration Documentation

Enumerator
BufferTypeVertex 
BufferTypeIndex 

Constructor & Destructor Documentation

kanzi::GPUBuffer::GPUBuffer ( )
explicitdefault

Default constructor.

kanzi::GPUBuffer::GPUBuffer ( Renderer renderer,
Type  type,
size_t  size 
)
inline

Constructor that initializes as empty and without uploading.

Parameters
rendererThe renderer to be used.
typeType of buffer; VBO or IBO
sizeInitial size in bytes.
kanzi::GPUBuffer::GPUBuffer ( Renderer renderer,
Type  type,
ConstByteSpan  data 
)
inline

Constructor that initializes with data and uploads immediately.

Parameters
rendererThe renderer to be used.
typeType of buffer; VBO or IBO
dataInitial data to upload.
kanzi::GPUBuffer::GPUBuffer ( GPUBuffer &&  other)
inline

Member Function Documentation

unsigned int kanzi::GPUBuffer::getNativeHandle ( ) const
inline

Get the underlying native GL name.

Returns
Buffer's native GL name.
size_t kanzi::GPUBuffer::getSize ( ) const
inline

Get the size of the buffer.

Returns
Size of the buffer.
Type kanzi::GPUBuffer::getType ( ) const
inline

Get the type of the buffer.

Returns
Type of the buffer.
void kanzi::GPUBuffer::setSubData ( Renderer renderer,
ConstByteSpan  data,
unsigned int  offset 
)

Update a subsection of data in the buffer.

Uploads changes immediately.

Parameters
rendererPointer to the renderer being used.
dataThe new data.
offsetOffset in the buffer to update the data into.
void kanzi::GPUBuffer::setData ( Renderer renderer,
ConstByteSpan  data,
const bool  shrinkToFit 
)

Update all data in the buffer.

Uploads changes immediately.

Parameters
rendererPointer to the renderer being used.
dataThe new data.
GPUBuffer& kanzi::GPUBuffer::operator= ( GPUBuffer &&  other)
inline

Friends And Related Function Documentation

void swap ( GPUBuffer left,
GPUBuffer right 
)
friend

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