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

Public Member Functions

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

Public Attributes

const std::shared_ptr< DeviceMTL > owningDevice
 
MutableSpan data
 
uint32_t stride = 0
 
uint32_t mode
 
uint32_t globalIndex = 0
 

Member Function Documentation

◆ getBufferSize()

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

Implements RGL::IBuffer.

◆ GetMappedDataPtr()

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

Implements RGL::IBuffer.

◆ GetReadonlyBindlessGPUHandle()

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

Implements RGL::IBuffer.

◆ GetReadwriteBindlessGPUHandle()

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

Implements RGL::IBuffer.

◆ MapMemory()

void RGL::BufferMTL::MapMemory ( )
virtual

Map system RAM for updating this buffer.

Implements RGL::IBuffer.

◆ SetBufferData()

void RGL::BufferMTL::SetBufferData ( untyped_span  data,
decltype(BufferConfig::nElements)  offset = 0 
)
virtual

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::BufferMTL::SignalRangeChanged ( const Range &  )
finalvirtual

Implements RGL::IBuffer.

◆ UnmapMemory()

void RGL::BufferMTL::UnmapMemory ( )
virtual

Unmap system RAM for updating this buffer.

Implements RGL::IBuffer.

◆ UpdateBufferData()

void RGL::BufferMTL::UpdateBufferData ( untyped_span  newData,
decltype(BufferConfig::nElements)  offset = 0 
)
virtual

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: