SpiecsEngine
 
Loading...
Searching...
No Matches

◆ WriteToBuffer()

void Spices::VulkanBuffer::WriteToBuffer ( const void * data,
VkDeviceSize size = VK_WHOLE_SIZE,
VkDeviceSize offset = 0 )

Write data to buffer.

Parameters
[in]dataThe data copy from.
[in]sizeThe buffer size.
[in]offsetThe buffer video memory offset.

Maped memory inside.

Maped memory inside.

Definition at line 134 of file VulkanBuffer.cpp.

135 {
137
138#if VMA_ALLOCATOR
139
143 if (size == VK_WHOLE_SIZE)
144 {
145 VK_CHECK(vmaCopyMemoryToAllocation(m_VulkanState.m_VmaAllocator, data, m_Alloc, offset, m_DeviceSize))
146 }
147 else
148 {
149 VK_CHECK(vmaCopyMemoryToAllocation(m_VulkanState.m_VmaAllocator, data, m_Alloc, offset, size))
150 }
151
152#else
153
154 if (!m_LocalMemory){ Map(); }
155
159 if (size == VK_WHOLE_SIZE)
160 {
161 memcpy(m_LocalMemory, data, m_DeviceSize);
162 }
163 else
164 {
165 char* memOffset = static_cast<char*>(m_LocalMemory);
166 memOffset += offset;
167 memcpy(memOffset, data, size);
168 }
169
170#endif
171
172 }
#define SPICES_PROFILE_ZONE
#define VK_CHECK(expr)
Vulkan Check macro. Verify Vulkan API Effectiveness.
Definition VulkanUtils.h:68
VmaAllocation m_Alloc
VMA allocation.
VkDeviceSize m_DeviceSize
The buffer size.
void Map(VkDeviceSize size=VK_WHOLE_SIZE, VkDeviceSize offset=0)
Map buffer video memory to a local memory.
VulkanState & m_VulkanState
The global VulkanState Referenced from VulkanRenderBackend.
VmaAllocator m_VmaAllocator
Definition VulkanUtils.h:97