Executes the render callback.
Validates buffer type and invokes the render callback. This is the core rendering coordination point - all child buffers have been processed by the time this executes.
118{
119 auto root_graphics_buffer = std::dynamic_pointer_cast<RootGraphicsBuffer>(buffer);
120 if (!root_graphics_buffer) {
122 "RenderProcessor received non-RootGraphicsBuffer");
123 return;
124 }
125
128 "RenderProcessor processing buffer that doesn't match attached root");
129 return;
130 }
131
133 try {
135 } catch (const std::exception& e) {
139 std::source_location::current(),
140 "RenderProcessor callback threw exception: {}",
141 e.what());
142 }
143 } else {
145 }
146}
#define MF_RT_ERROR(comp, ctx,...)
RenderCallback m_callback
User-provided render callback.
void fallback_renderer(const std::shared_ptr< RootGraphicsBuffer > &root)
std::shared_ptr< RootGraphicsBuffer > m_root_buffer
Reference to root buffer (for validation and callbacks)
@ BufferProcessing
Buffer processing (Buffers::BufferManager, processing chains)
void error_rethrow(Component component, Context context, std::source_location location=std::source_location::current(), std::string_view additional_context="")
Catch and log an exception, then rethrow it.
@ Buffers
Buffers, Managers, processors and processing chains.