37 lines
1.4 KiB
C++
37 lines
1.4 KiB
C++
#pragma once
|
|
#include "Render_Data.h"
|
|
#include "global.h"
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <memory_resource>
|
|
#include <vector>
|
|
|
|
namespace renderive {
|
|
|
|
struct LIB_DECL Strategy_Render_Data : Render_Data {
|
|
Strategy_Render_Data();
|
|
Strategy_Render_Data(const Strategy_Render_Data&) = delete;
|
|
Strategy_Render_Data& operator=(const Strategy_Render_Data&) = delete;
|
|
~Strategy_Render_Data() override;
|
|
|
|
void initialize_runtime(std::unique_ptr<Renderable_Runtime> runtime) override;
|
|
void cancel_pending_completions() override;
|
|
void drain_committed_update_states(std::pmr::vector<std::shared_ptr<Update_State>>& output) override;
|
|
Render_State_Read_Guard acquire_state_read(Renderable_State_Role role) override;
|
|
Render_State_Read_Guard acquire_render_state_read() override;
|
|
Render_State_Read_Guard acquire_edit_state_read() override;
|
|
Render_State_Write_Guard acquire_edit_state() override;
|
|
Render_Input_Write_Guard acquire_edit_input(bool notify_render) override;
|
|
Renderable_Frame_View capture_frame_view() override;
|
|
Render_State* state(Renderable_State_Role role) override;
|
|
Input_Data* input_data(Renderable_Input_Role role) override;
|
|
void clear_render_input();
|
|
[[nodiscard]] bool requires_frame_view() const override;
|
|
|
|
private:
|
|
std::unique_ptr<Renderable_Runtime> runtime;
|
|
};
|
|
|
|
} // namespace renderive
|