MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ cleanup_buffer()

void MayaFlux::Core::BackendResourceManager::cleanup_buffer ( const std::shared_ptr< Buffers::VKBuffer > &  buffer)

Cleanup a buffer and release associated resources.

Parameters
bufferShared pointer to the buffer to cleanup

Definition at line 164 of file BackendResoureManager.cpp.

165{
166 if (!buffer) {
168 "Attempted to cleanup null VulkanBuffer");
169 return;
170 }
171
172 auto it = std::ranges::find(m_managed_buffers, buffer);
173 if (it == m_managed_buffers.end()) {
174 return;
175 }
176
177 auto& [vk_buffer, memory, mapped_ptr] = it->get()->get_buffer_resources();
178
179 if (mapped_ptr) {
180 m_context.get_device().unmapMemory(memory);
181 }
182
183 if (vk_buffer) {
184 m_context.get_device().destroyBuffer(vk_buffer);
185 }
186
187 if (memory) {
188 m_context.get_device().freeMemory(memory);
189 }
190
191 m_managed_buffers.erase(it);
192
194 "VulkanBuffer cleaned up: {:p}", (void*)vk_buffer);
195}
#define MF_INFO(comp, ctx,...)
#define MF_ERROR(comp, ctx,...)
std::vector< std::shared_ptr< Buffers::VKBuffer > > m_managed_buffers
vk::Device get_device() const
Get logical device.
Definition VKContext.hpp:49
@ GraphicsBackend
Graphics/visual rendering backend (Vulkan, OpenGL)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Core::VKContext::get_device(), MayaFlux::Journal::GraphicsBackend, m_context, m_managed_buffers, MF_ERROR, and MF_INFO.

Referenced by cleanup(), download_image_data(), setup_backend_service(), and upload_image_data().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: