319{
321 if (!op.m_render || op.m_display_attached || !op.m_target_graphics_stream) {
322 continue;
323 }
324
328 std::source_location::current(),
329 "BufferPipeline has no IOManager to display a stream route");
330 }
331
332 auto display =
m_io_manager->hook_video_container_to_buffer(op.m_target_graphics_stream);
333 if (!display) {
336 std::source_location::current(),
337 "Failed to hook the stream to a display buffer");
338 }
339
341 op.m_display_attached = true;
342 }
343}
std::shared_ptr< IO::IOManager > m_io_manager
std::vector< BufferOperation > m_operations
@ CoroutineScheduling
Coroutine scheduling and temporal coordination (Vruta::TaskScheduler)
@ Kriya
Automatable tasks and fluent scheduling api for Nodes and Buffers.
bool ensure_rendering(const std::shared_ptr< Buffers::VKBuffer > &buffer, const Portal::Graphics::RenderConfig &config)
Make a buffer draw to the window in a render config, unless it already does.