34 lines
873 B
C++
34 lines
873 B
C++
#pragma once
|
|
#include "../architecture/Update_Completion.h"
|
|
#include "../execution/Render_Executor.h"
|
|
#include <memory>
|
|
#include <memory_resource>
|
|
|
|
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<std::shared_ptr<Update_State>>& output);
|
|
|
|
} // namespace renderive
|