#pragma once #include "../architecture/Update_Completion.h" #include "../execution/Render_Executor.h" #include #include namespace renderive { struct Render_Frame_Snapshot; struct Renderable_Frame_View; class Renderable; class Frame_Prepare_Subtask_Source { public: virtual ~Frame_Prepare_Subtask_Source() = default; virtual bool build_prepare_subtasks( Render_Task_Subflow& subflow, const Render_Frame_Snapshot& snapshot, const Renderable_Frame_View& frame_view) = 0; }; void build_renderable_prepare( Renderable& renderable, Render_Task_Subflow& subflow, const Render_Frame_Snapshot& snapshot, const Renderable_Frame_View& frame_view); void drain_renderable_prepare_updates( Renderable& renderable, std::pmr::vector>& output); } // namespace renderive