MayaFlux 0.2.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 334 of file RootGraphicsBuffer.cpp.

335{
336 if (m_pending_removal.empty()) {
337 return;
338 }
339
340 auto it = std::remove_if(
341 m_child_buffers.begin(),
342 m_child_buffers.end(),
343 [](const std::shared_ptr<Buffer>& buf) {
344 return buf && buf->needs_removal();
345 });
346
347 size_t removed_count = std::distance(it, m_child_buffers.end());
348
349 if (removed_count > 0) {
350 m_child_buffers.erase(it, m_child_buffers.end());
351
353 "Cleaned up {} graphics buffers (remaining: {})",
354 removed_count, m_child_buffers.size());
355 }
356
357 m_pending_removal.clear();
358}
#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: