RavEngine
Loading...
Searching...
No Matches
RGL::BufferVk Struct Reference
Inheritance diagram for RGL::BufferVk:
[legend]
Collaboration diagram for RGL::BufferVk:
[legend]

Public Member Functions

 BufferVk (decltype(owningDevice), const BufferConfig &)
 
void MapMemory () final
 
void UnmapMemory () final
 
void UpdateBufferData (untyped_span newData, decltype(BufferConfig::nElements) offset=0) final
 
void SetBufferData (untyped_span data, decltype(BufferConfig::nElements) offset=0) final
 
decltype(BufferConfig::nElements) getBufferSize () const final
 
void SignalRangeChanged (const Range &) final
 
void * GetMappedDataPtr () final
 
uint32_t GetReadonlyBindlessGPUHandle () const final
 
uint32_t GetReadwriteBindlessGPUHandle () const final
 

Public Attributes

const std::shared_ptr< DeviceVk > owningDevice
 
VkBuffer buffer = VK_NULL_HANDLE
 
VmaAllocation_T * allocation = VK_NULL_HANDLE
 
const RGL::BufferAccess accessType
 
MutableSpan mappedMemory
 
size_t stride = 0
 
uint32_t globalDescriptorIndex = unallocated
 
std::string debugName
 

Static Public Attributes

static constexpr uint32_t unallocated = std::numeric_limits<uint32_t>::max()
 

Member Function Documentation

◆ getBufferSize()

decltype(BufferConfig::nElements) RGL::BufferVk::getBufferSize ( ) const
finalvirtual

Implements RGL::IBuffer.

◆ GetMappedDataPtr()

void * RGL::BufferVk::GetMappedDataPtr ( )
finalvirtual

Implements RGL::IBuffer.

◆ GetReadonlyBindlessGPUHandle()

uint32_t RGL::BufferVk::GetReadonlyBindlessGPUHandle ( ) const
finalvirtual

Implements RGL::IBuffer.

◆ GetReadwriteBindlessGPUHandle()

uint32_t RGL::BufferVk::GetReadwriteBindlessGPUHandle ( ) const
finalvirtual

Implements RGL::IBuffer.

◆ MapMemory()

void RGL::BufferVk::MapMemory ( )
finalvirtual

Map system RAM for updating this buffer.

Implements RGL::IBuffer.

◆ SetBufferData()

void RGL::BufferVk::SetBufferData ( untyped_span  data,
decltype(BufferConfig::nElements)  offset = 0 
)
finalvirtual

Set the contents of this buffer. Intended to be used with VertexBuffers or other data that changes infrequently or never.

Parameters
newDatathe data to write into the buffer.

Implements RGL::IBuffer.

◆ SignalRangeChanged()

void RGL::BufferVk::SignalRangeChanged ( const Range &  )
finalvirtual

Implements RGL::IBuffer.

◆ UnmapMemory()

void RGL::BufferVk::UnmapMemory ( )
finalvirtual

Unmap system RAM for updating this buffer.

Implements RGL::IBuffer.

◆ UpdateBufferData()

void RGL::BufferVk::UpdateBufferData ( untyped_span  newData,
decltype(BufferConfig::nElements)  offset = 0 
)
finalvirtual

Update the contents of this buffer. If memory is not mapped, it will become mapped. The memory remains mapped. Intended to be used with UniformBuffers or other data that changes frequently.

Parameters
newDatathe data to write into the buffer.

Implements RGL::IBuffer.


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