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

◆ register_frame_processor()

void MayaFlux::Core::GraphicsSubsystem::register_frame_processor ( )
private

Register custom frame processor with scheduler.

This is the key integration point that makes graphics timing work. Registers a custom processor for FRAME_ACCURATE token that:

  • Does NOT tick the clock (already done)
  • Just processes coroutines based on current clock position

Definition at line 89 of file GraphicsSubsystem.cpp.

90{
91 if (!m_handle) {
92 error<std::runtime_error>(
95 std::source_location::current(),
96 "Cannot register frame processor: no processing handle");
97 }
98
99 auto scheduler = m_handle->tasks;
100 if (!scheduler.is_valid()) {
101 error<std::runtime_error>(
104 std::source_location::current(),
105 "Cannot register frame processor: no scheduler available");
106 }
107
108 scheduler.register_token_processor(
109 [this](const std::vector<std::shared_ptr<Vruta::Routine>>& tasks, uint64_t processing_units) {
110 this->process_frame_coroutines_impl(tasks, processing_units);
111 });
112
114 "Registered custom FRAME_ACCURATE processor");
115}
#define MF_INFO(comp, ctx,...)
void process_frame_coroutines_impl(const std::vector< std::shared_ptr< Vruta::Routine > > &tasks, uint64_t processing_units)
Process all FRAME_ACCURATE coroutines for given frames.
SubsystemProcessingHandle * m_handle
Reference to processing handle.
@ GraphicsSubsystem
Graphics subsystem operations (Vulkan, rendering pipeline)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Journal::GraphicsSubsystem, m_handle, MF_INFO, process_frame_coroutines_impl(), and MayaFlux::Core::SubsystemProcessingHandle::tasks.

Referenced by register_callbacks().

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