54 void setup_pick_camera(const
camera& cam,
math::vec2 pos,
math::vec2 area = {});
57 void process_pick_result(
rtti::context& ctx,
scene* target_scene, ENTT_ID_TYPE id_key);
60 std::shared_ptr<gfx::frame_buffer> surface_;
62 std::shared_ptr<gfx::texture> blit_tex_;
64 std::unique_ptr<gpu_program> program_;
66 std::unique_ptr<gpu_program> program_gizmos_;
68 std::unique_ptr<gpu_program> program_skinned_;
70 std::array<std::uint8_t, tex_id_dim * tex_id_dim * 4> blit_data_;
72 std::uint32_t reading_ = 0;
74 bool start_readback_ =
false;
76 std::shared_ptr<int> sentinel_ = std::make_shared<int>(0);
78 hpp::optional<camera> pick_camera_{};
83 math::vec2 pick_position_{};
85 math::vec2 pick_area_{};