CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPUBufferObject Class Reference

#include <CeresEngine/RenderAPI/GPUBufferObject.hpp>

Inheritance diagram for CeresEngine::GPUBufferObject:
CeresEngine::GPUBindlessBuffer CeresEngine::GPUIndexBuffer CeresEngine::GPUIndirectBuffer CeresEngine::GPUStagingBuffer CeresEngine::GPUStorageBuffer CeresEngine::GPUUniformBuffer CeresEngine::GPUVertexBuffer

Public Member Functions

 GPUBufferObject ()=default
 Creates a new empty BufferObject.
 
 GPUBufferObject (GPUBufferPtr buffer, GPUBufferSize offset=0, GPUBufferSize length=GPUBuffer::whole)
 Creates a new BufferObject from an existing GPU buffer.
 
 GPUBufferObject (GPUBuffer &buffer, const GPUBufferSize offset=0, const GPUBufferSize length=GPUBuffer::whole)
 
 GPUBufferObject (GPUDevice &device, const GPUBufferDescriptor &descriptor)
 Creates a new BufferObject.
 
 GPUBufferObject (std::nullptr_t)
 Creates a new empty BufferObject.
 
GPUBufferObjectoperator= (std::nullptr_t)
 Assigns the BufferObject an empty value.
 
 GPUBufferObject (const GPUBufferObject &)=default
 Creates a new BufferObject by copying another.
 
GPUBufferObjectoperator= (const GPUBufferObject &)=default
 Assigns the BufferObject by copying another.
 
 GPUBufferObject (GPUBufferObject &&)=default
 Creates a new BufferObject by moving another.
 
GPUBufferObjectoperator= (GPUBufferObject &&)=default
 Assigns a BufferObject by moving another.
 
 ~GPUBufferObject ()
 Destroys the BufferObject.
 
void flush (GPUBufferSize offset=0, GPUBufferSize size=GPUBuffer::whole)
 Flushes the cached memory data starting at offset with size bytes.
 
void invalidate (GPUBufferSize offset=0, GPUBufferSize size=GPUBuffer::whole)
 Invalidates the cached memory data starting at offset with size bytes.
 
GPUBufferPtr getBuffer () const noexcept
 
GPUBufferSize getOffset () const noexcept
 
GPUBufferSize getLength () const noexcept
 
 operator bool () const noexcept
 

Protected Attributes

GPUBufferPtr mBuffer = nullptr
 A pointer to the GPU allocated buffer.
 
GPUBufferSize mOffset = 0
 The offset to the beginning of the buffer object data.
 
GPUBufferSize mLength = GPUBuffer::whole
 The length of the buffer data.
 

Friends

bool operator== (const GPUBufferObject &lhs, const GPUBufferObject &rhs) noexcept
 
bool operator== (const GPUBufferObject &lhs, std::nullptr_t) noexcept
 
bool operator== (std::nullptr_t, const GPUBufferObject &rhs) noexcept
 
bool operator!= (const GPUBufferObject &lhs, const GPUBufferObject &rhs) noexcept
 
bool operator!= (const GPUBufferObject &lhs, std::nullptr_t) noexcept
 
bool operator!= (std::nullptr_t, const GPUBufferObject &rhs) noexcept
 

Constructor & Destructor Documentation

◆ GPUBufferObject() [1/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( )
default

Creates a new empty BufferObject.

◆ GPUBufferObject() [2/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( GPUBufferPtr  buffer,
GPUBufferSize  offset = 0,
GPUBufferSize  length = GPUBuffer::whole 
)
explicit

Creates a new BufferObject from an existing GPU buffer.

Parameters
bufferThe existing GPU buffer.
offsetThe offset to the beginning of the buffer object.
lengthThe length of the uniform buffer data.

◆ GPUBufferObject() [3/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( GPUBuffer buffer,
const GPUBufferSize  offset = 0,
const GPUBufferSize  length = GPUBuffer::whole 
)
inlineexplicit

◆ GPUBufferObject() [4/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( GPUDevice device,
const GPUBufferDescriptor descriptor 
)
explicit

Creates a new BufferObject.

Parameters
deviceThe device to create the buffer on.
descriptorA structure that describes how the buffer should be created.

◆ GPUBufferObject() [5/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( std::nullptr_t  )
inline

Creates a new empty BufferObject.

◆ GPUBufferObject() [6/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( const GPUBufferObject )
default

Creates a new BufferObject by copying another.

The contents of the buffer are not copied.

◆ GPUBufferObject() [7/7]

CeresEngine::GPUBufferObject::GPUBufferObject ( GPUBufferObject &&  )
default

Creates a new BufferObject by moving another.

◆ ~GPUBufferObject()

CeresEngine::GPUBufferObject::~GPUBufferObject ( )

Destroys the BufferObject.

Member Function Documentation

◆ flush()

void CeresEngine::GPUBufferObject::flush ( GPUBufferSize  offset = 0,
GPUBufferSize  size = GPUBuffer::whole 
)

Flushes the cached memory data starting at offset with size bytes.

Parameters
offsetThe starting offset to be flushed
sizeThe amount of bytes to be flushed

◆ getBuffer()

GPUBufferPtr CeresEngine::GPUBufferObject::getBuffer ( ) const
inlinenoexcept
Returns
A pointer to the GPU allocated buffer

◆ getLength()

GPUBufferSize CeresEngine::GPUBufferObject::getLength ( ) const
inlinenoexcept
Returns
The length of the buffer object data.

◆ getOffset()

GPUBufferSize CeresEngine::GPUBufferObject::getOffset ( ) const
inlinenoexcept
Returns
The offset to the beginning of the buffer object data.

◆ invalidate()

void CeresEngine::GPUBufferObject::invalidate ( GPUBufferSize  offset = 0,
GPUBufferSize  size = GPUBuffer::whole 
)

Invalidates the cached memory data starting at offset with size bytes.

Parameters
offsetThe starting offset to be flushed
sizeThe amount of bytes to be flushed

◆ operator bool()

CeresEngine::GPUBufferObject::operator bool ( ) const
inlineexplicitnoexcept
Returns
true if the buffer is not nullptr

◆ operator=() [1/3]

GPUBufferObject & CeresEngine::GPUBufferObject::operator= ( const GPUBufferObject )
default

Assigns the BufferObject by copying another.

The contents of the buffer are not copied.

◆ operator=() [2/3]

GPUBufferObject & CeresEngine::GPUBufferObject::operator= ( GPUBufferObject &&  )
default

Assigns a BufferObject by moving another.

◆ operator=() [3/3]

GPUBufferObject & CeresEngine::GPUBufferObject::operator= ( std::nullptr_t  )
inline

Assigns the BufferObject an empty value.

Returns

Friends And Related Symbol Documentation

◆ operator!= [1/3]

bool operator!= ( const GPUBufferObject lhs,
const GPUBufferObject rhs 
)
friend

◆ operator!= [2/3]

bool operator!= ( const GPUBufferObject lhs,
std::nullptr_t   
)
friend

◆ operator!= [3/3]

bool operator!= ( std::nullptr_t  ,
const GPUBufferObject rhs 
)
friend

◆ operator== [1/3]

bool operator== ( const GPUBufferObject lhs,
const GPUBufferObject rhs 
)
friend

◆ operator== [2/3]

bool operator== ( const GPUBufferObject lhs,
std::nullptr_t   
)
friend

◆ operator== [3/3]

bool operator== ( std::nullptr_t  ,
const GPUBufferObject rhs 
)
friend

Member Data Documentation

◆ mBuffer

GPUBufferPtr CeresEngine::GPUBufferObject::mBuffer = nullptr
protected

A pointer to the GPU allocated buffer.

◆ mLength

GPUBufferSize CeresEngine::GPUBufferObject::mLength = GPUBuffer::whole
protected

The length of the buffer data.

◆ mOffset

GPUBufferSize CeresEngine::GPUBufferObject::mOffset = 0
protected

The offset to the beginning of the buffer object data.


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