CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment > Class Template Reference

#include <CeresEngine/RenderAPI/GPUBufferObject.hpp>

Inheritance diagram for CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >:

Public Member Functions

 GPUDynamicBuffer ()=default
 Creates a new empty DynamicBuffer.
 
 GPUDynamicBuffer (GPUBufferPtr buffer, GPUBufferSize offset=0)
 Creates a new DynamicBuffer from an existing GPU buffer.
 
template<typename... Args>
 GPUDynamicBuffer (GPUDevice &device, String name="", Args &&... args)
 Creates a new DynamicBuffer.
 
 GPUDynamicBuffer (P &&rawBuffer)
 Creates a new DynamicBuffer.
 
 GPUDynamicBuffer (const GPUDynamicBuffer &value)=default
 
 GPUDynamicBuffer (GPUDynamicBuffer &&value) noexcept=default
 
 ~GPUDynamicBuffer ()
 
GPUDynamicBufferoperator= (const GPUDynamicBuffer &value)=default
 
GPUDynamicBufferoperator= (GPUDynamicBuffer &&value) noexcept=default
 
GPUDynamicBufferoperator= (const T &value)
 Assigns a new value to the dynamic buffer.
 
Tget () noexcept
 Gets a pointer to the buffer object.
 
const Tget () const noexcept
 Gets a pointer to the buffer object.
 
void update (const T &data)
 Updates the buffer data with a new value.
 
void commit ()
 Commits changes made to the buffer.
 
Toperator-> () noexcept
 Arrow operator overload that will access the members of the GPU buffer data.
 
const Toperator-> () const noexcept
 Arrow operator overload that will access the members of the GPU buffer data.
 
Toperator* () noexcept
 Dereferences the GPU buffer data.
 
const Toperator* () const noexcept
 Dereferences the GPU buffer data.
 

Private Attributes

TmData = nullptr
 A pointer to the buffer data mapped on host memory.
 

Constructor & Destructor Documentation

◆ GPUDynamicBuffer() [1/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( )
default

Creates a new empty DynamicBuffer.

◆ GPUDynamicBuffer() [2/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( GPUBufferPtr  buffer,
GPUBufferSize  offset = 0 
)
inlineexplicit

Creates a new DynamicBuffer from an existing GPU buffer.

Parameters
bufferThe existing GPU buffer
offsetThe offset to the beginning of the buffer

◆ GPUDynamicBuffer() [3/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
template<typename... Args>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( GPUDevice device,
String  name = "",
Args &&...  args 
)
inlineexplicit

Creates a new DynamicBuffer.

Parameters
deviceThe device to create the buffer from
nameThe buffer name (used for debugging only).
argsThe arguments for the parent type constructor

◆ GPUDynamicBuffer() [4/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( P &&  rawBuffer)
inlineexplicit

Creates a new DynamicBuffer.

Parameters
deviceThe device to create the buffer from
nameThe buffer name (used for debugging only).
argsThe arguments for the parent type constructor

◆ GPUDynamicBuffer() [5/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( const GPUDynamicBuffer< P, T, BaseAlignment > &  value)
default

◆ GPUDynamicBuffer() [6/6]

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::GPUDynamicBuffer ( GPUDynamicBuffer< P, T, BaseAlignment > &&  value)
defaultnoexcept

◆ ~GPUDynamicBuffer()

template<typename P , typename T , std::size_t BaseAlignment = 1>
CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::~GPUDynamicBuffer ( )
inline

Member Function Documentation

◆ commit()

template<typename P , typename T , std::size_t BaseAlignment = 1>
void CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::commit ( )
inline

Commits changes made to the buffer.

◆ get() [1/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
const T * CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::get ( ) const
inlinenoexcept

Gets a pointer to the buffer object.

◆ get() [2/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
T * CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::get ( )
inlinenoexcept

Gets a pointer to the buffer object.

◆ operator*() [1/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
const T & CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator* ( ) const
inlinenoexcept

Dereferences the GPU buffer data.

Returns
A reference to the buffer object data.

◆ operator*() [2/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
T & CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator* ( )
inlinenoexcept

Dereferences the GPU buffer data.

Returns
A reference to the buffer object data.

◆ operator->() [1/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
const T * CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator-> ( ) const
inlinenoexcept

Arrow operator overload that will access the members of the GPU buffer data.

Returns
A pointer to the buffer object data.

◆ operator->() [2/2]

template<typename P , typename T , std::size_t BaseAlignment = 1>
T * CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator-> ( )
inlinenoexcept

Arrow operator overload that will access the members of the GPU buffer data.

Returns
A pointer to the buffer object data.

◆ operator=() [1/3]

template<typename P , typename T , std::size_t BaseAlignment = 1>
GPUDynamicBuffer & CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator= ( const GPUDynamicBuffer< P, T, BaseAlignment > &  value)
default

◆ operator=() [2/3]

template<typename P , typename T , std::size_t BaseAlignment = 1>
GPUDynamicBuffer & CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator= ( const T value)
inline

Assigns a new value to the dynamic buffer.

Parameters
valueThe value to be assigned.
Returns
this.

◆ operator=() [3/3]

template<typename P , typename T , std::size_t BaseAlignment = 1>
GPUDynamicBuffer & CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::operator= ( GPUDynamicBuffer< P, T, BaseAlignment > &&  value)
defaultnoexcept

◆ update()

template<typename P , typename T , std::size_t BaseAlignment = 1>
void CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::update ( const T data)
inline

Updates the buffer data with a new value.

Member Data Documentation

◆ mData

template<typename P , typename T , std::size_t BaseAlignment = 1>
T* CeresEngine::GPUDynamicBuffer< P, T, BaseAlignment >::mData = nullptr
private

A pointer to the buffer data mapped on host memory.


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