MayaFlux 1.0.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 400 of file RootGraphicsBuffer.cpp.

401{
402 auto it = std::remove_if(
403 m_child_buffers.begin(),
404 m_child_buffers.end(),
405 [this](const std::shared_ptr<VKBuffer>& buf) {
406 if (!buf || !buf->needs_removal())
407 return false;
408 for (const auto& [id, window] : buf->get_render_pipelines())
409 request_presentation_refresh(window);
410 for (const auto& window : buf->take_presentation_refreshes())
411 request_presentation_refresh(window);
412 return true;
413 });
414
415 size_t removed_count = std::distance(it, m_child_buffers.end());
416
417 if (removed_count > 0) {
418 m_child_buffers.erase(it, m_child_buffers.end());
419
421 "Cleaned up {} graphics buffers (remaining: {})",
422 removed_count, m_child_buffers.size());
423 }
424}
#define MF_INFO(comp, ctx,...)
std::vector< std::shared_ptr< VKBuffer > > m_child_buffers
Vector of tributary buffers that contribute to this root buffer.
@ 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, and MF_INFO.

Referenced by ~RootGraphicsBuffer().

+ Here is the caller graph for this function: