Files
Renderive/Core/architecture/Strategy_Render_Data.h
T
2026-08-02 20:25:59 +08:00

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