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

◆ cleanup_marked_buffers()

void MayaFlux::Buffers::RootGraphicsBuffer::cleanup_marked_buffers ( )

Removes buffers marked for deletion.

Performs the actual removal of buffers that have been marked with mark_for_removal(). This is called automatically during process_children() but can be called manually for immediate cleanup.

The actual GPU resource cleanup is handled by the backend's cleanup hooks.

Definition at line 291 of file RootGraphicsBuffer.cpp.

292{
293 if (m_pending_removal.empty()) {
294 return;
295 }
296
297 auto it = std::remove_if(
298 m_child_buffers.begin(),
299 m_child_buffers.end(),
300 [](const std::shared_ptr<Buffer>& buf) {
301 return buf && buf->needs_removal();
302 });
303
304 size_t removed_count = std::distance(it, m_child_buffers.end());
305
306 if (removed_count > 0) {
307 m_child_buffers.erase(it, m_child_buffers.end());
308
310 "Cleaned up {} graphics buffers (remaining: {})",
311 removed_count, m_child_buffers.size());
312 }
313
314 m_pending_removal.clear();
315}
#define MF_INFO(comp, ctx,...)
std::vector< std::shared_ptr< VKBuffer > > m_child_buffers
Vector of tributary buffers that contribute to this root buffer.
std::vector< std::shared_ptr< VKBuffer > > m_pending_removal
Buffers pending removal (cleaned up in next process cycle)
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::BufferManagement, MayaFlux::Journal::Core, MayaFlux::Buffers::RootBuffer< VKBuffer >::m_child_buffers, m_pending_removal, and MF_INFO.

Referenced by ~RootGraphicsBuffer().

+ Here is the caller graph for this function: