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

#include <CeresEngine/RenderAPI/GPUBufferObject.hpp>

Inheritance diagram for CeresEngine::GPUUniformBuffer:
CeresEngine::GPUBufferObject

Public Member Functions

 GPUUniformBuffer ()=default
 Creates a new empty UniformBuffer.
 
 GPUUniformBuffer (GPUBufferPtr buffer, GPUBufferSize offset=0, GPUBufferSize length=GPUBuffer::whole)
 Creates a new UniformBuffer from an existing GPU buffer.
 
 GPUUniformBuffer (GPUBuffer &buffer, const GPUBufferSize offset=0, const GPUBufferSize length=GPUBuffer::whole)
 Uniform buffer (or constant buffer) resource.
 
 GPUUniformBuffer (GPUDevice &device, GPUBufferSize length, const GPUMemoryProperties &memoryProperty=GPUMemoryProperty::DeviceLocal, String name="")
 Creates a new UniformBuffer.
 
 GPUUniformBuffer (const GPUStorageBuffer &storageBuffer)
 Creates a new GPUUniformBuffer by converting from a GPUStorageBuffer.
 
 GPUUniformBuffer (std::nullptr_t)
 Creates a new empty UniformBuffer.
 
 GPUUniformBuffer (const GPUUniformBuffer &)=default
 Creates a new UniformBuffer by copying another.
 
GPUUniformBufferoperator= (const GPUUniformBuffer &)=default
 Assigns the UniformBuffer by copying another.
 
 GPUUniformBuffer (GPUUniformBuffer &&)=default
 Creates a new UniformBuffer by moving another.
 
GPUUniformBufferoperator= (GPUUniformBuffer &&)=default
 Assigns a UniformBuffer by moving another.
 
 ~GPUUniformBuffer ()
 Destroys the UniformBuffer.
 
- Public Member Functions inherited from CeresEngine::GPUBufferObject
 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
 

Additional Inherited Members

- Protected Attributes inherited from CeresEngine::GPUBufferObject
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.
 

Constructor & Destructor Documentation

◆ GPUUniformBuffer() [1/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( )
default

Creates a new empty UniformBuffer.

◆ GPUUniformBuffer() [2/8]

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

Creates a new UniformBuffer from an existing GPU buffer.

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

◆ GPUUniformBuffer() [3/8]

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

Uniform buffer (or constant buffer) resource.

◆ GPUUniformBuffer() [4/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( GPUDevice device,
GPUBufferSize  length,
const GPUMemoryProperties memoryProperty = GPUMemoryProperty::DeviceLocal,
String  name = "" 
)
explicit

Creates a new UniformBuffer.

Parameters
deviceThe device to create the buffer from
lengthThe buffer size in bytes
memoryPropertyThe memory property flags
nameThe buffer name (used for debugging only).

◆ GPUUniformBuffer() [5/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( const GPUStorageBuffer storageBuffer)
explicit

Creates a new GPUUniformBuffer by converting from a GPUStorageBuffer.

◆ GPUUniformBuffer() [6/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( std::nullptr_t  )
inline

Creates a new empty UniformBuffer.

◆ GPUUniformBuffer() [7/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( const GPUUniformBuffer )
default

Creates a new UniformBuffer by copying another.

The contents of the buffer are not copied.

◆ GPUUniformBuffer() [8/8]

CeresEngine::GPUUniformBuffer::GPUUniformBuffer ( GPUUniformBuffer &&  )
default

Creates a new UniformBuffer by moving another.

◆ ~GPUUniformBuffer()

CeresEngine::GPUUniformBuffer::~GPUUniformBuffer ( )

Destroys the UniformBuffer.

Member Function Documentation

◆ operator=() [1/2]

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

Assigns the UniformBuffer by copying another.

The contents of the buffer are not copied.

◆ operator=() [2/2]

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

Assigns a UniformBuffer by moving another.


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