Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing Class Reference
Collaboration diagram for Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing:

Public Member Functions

 CUploadRing (CDevice *device, const IBuffer::Type type, const uint32_t initialCapacity)
 
CBufferGetBuffer ()
 
uint32_t ScheduleUpload (VkCommandBuffer commandBuffer, const PS::span< const std::byte > data, const uint32_t alignment)
 
void ExecuteUploads (VkCommandBuffer commandBuffer)
 

Private Member Functions

void ResizeIfNeeded (VkCommandBuffer commandBuffer, const uint32_t dataSize)
 

Private Attributes

CDevicem_Device = nullptr
 
IBuffer::Type m_Type = IBuffer::Type::VERTEX
 
uint32_t m_Capacity = 0
 
uint32_t m_BlockIndex = 0
 
uint32_t m_BlockOffset = 0
 
std::unique_ptr< CBufferm_Buffer
 
std::unique_ptr< CBufferm_StagingBuffer
 
std::byte * m_StagingBufferMappedData = nullptr
 

Constructor & Destructor Documentation

◆ CUploadRing()

Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::CUploadRing ( CDevice device,
const IBuffer::Type  type,
const uint32_t  initialCapacity 
)

Member Function Documentation

◆ ExecuteUploads()

void Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::ExecuteUploads ( VkCommandBuffer  commandBuffer)

◆ GetBuffer()

CBuffer * Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::GetBuffer ( )
inline

◆ ResizeIfNeeded()

void Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::ResizeIfNeeded ( VkCommandBuffer  commandBuffer,
const uint32_t  dataSize 
)
private

◆ ScheduleUpload()

uint32_t Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::ScheduleUpload ( VkCommandBuffer  commandBuffer,
const PS::span< const std::byte >  data,
const uint32_t  alignment 
)

Member Data Documentation

◆ m_BlockIndex

uint32_t Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_BlockIndex = 0
private

◆ m_BlockOffset

uint32_t Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_BlockOffset = 0
private

◆ m_Buffer

std::unique_ptr<CBuffer> Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_Buffer
private

◆ m_Capacity

uint32_t Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_Capacity = 0
private

◆ m_Device

CDevice* Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_Device = nullptr
private

◆ m_StagingBuffer

std::unique_ptr<CBuffer> Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_StagingBuffer
private

◆ m_StagingBufferMappedData

std::byte* Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_StagingBufferMappedData = nullptr
private

◆ m_Type

IBuffer::Type Renderer::Backend::Vulkan::CDeviceCommandContext::CUploadRing::m_Type = IBuffer::Type::VERTEX
private

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