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

◆ get_or_create_graphics_unit()

RootGraphicsUnit & MayaFlux::Buffers::TokenUnitManager::get_or_create_graphics_unit ( ProcessingToken  token)

Gets or creates a root graphics unit for the specified token.

Parameters
tokenProcessing domain
Returns
Reference to the root graphics unit

If the unit doesn't exist, creates it and initializes it. Thread-safe creation via lock guard.

Definition at line 134 of file TokenUnitManager.cpp.

135{
136 auto it = m_graphics_units.find(token);
137 if (it == m_graphics_units.end()) {
138 std::lock_guard<std::mutex> lock(m_manager_mutex);
139
140 auto [inserted_it, success] = m_graphics_units.emplace(token, RootGraphicsUnit {});
141 inserted_it->second.initialize(token);
142
144 "Created new graphics unit for token {}", static_cast<int>(token));
145
146 return inserted_it->second;
147 }
148 return it->second;
149}
#define MF_INFO(comp, ctx,...)
static MayaFlux::Nodes::ProcessingToken token
Definition Timers.cpp:8
std::mutex m_manager_mutex
Mutex for thread-safe access to all unit maps.
std::unordered_map< ProcessingToken, RootGraphicsUnit > m_graphics_units
Token-based map of root graphics buffer units.
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::BufferManagement, MayaFlux::Journal::Core, m_graphics_units, m_manager_mutex, MF_INFO, and token.

Referenced by MayaFlux::Buffers::BufferAccessControl::add_graphics_buffer(), MayaFlux::Buffers::BufferAccessControl::get_graphics_processing_chain(), and MayaFlux::Buffers::BufferAccessControl::get_root_graphics_buffer().

+ Here is the caller graph for this function: