| 65 | } |
| 66 | |
| 67 | void UploadData(ref_ptr<GraphicsContext> context, void const * data, uint32_t elementCount) override |
| 68 | { |
| 69 | // In Vulkan we must call upload only from FR. |
| 70 | ref_ptr<VulkanBaseContext> vulkanContext = context; |
| 71 | CHECK(vulkanContext->GetCurrentMemoryCommandBuffer() != nullptr, ()); |
| 72 | |
| 73 | uint32_t const currentSize = m_buffer->GetCurrentSize(); |
| 74 | ASSERT(m_buffer->GetCapacity() >= elementCount + currentSize, |
| 75 | ("Not enough memory to upload ", elementCount, " elements")); |
| 76 | auto ptr = m_buffer->Map(context, currentSize, elementCount); |
| 77 | CHECK(ptr != nullptr, ()); |
| 78 | m_buffer->UpdateData(ptr, data, 0, elementCount); |
| 79 | m_buffer->Unmap(context); |
| 80 | m_buffer->Advance(elementCount); |
| 81 | } |
| 82 | |
| 83 | void UpdateData(void * destPtr, void const * srcPtr, uint32_t elementOffset, uint32_t elementCount) override |
| 84 | { |
nothing calls this directly
no test coverage detected