#pragma once #include "render_2D/plottable/Performance_Overlay.h" #include "render_2D/renderable/Renderable.h" #include "render_2D/scene/Scene.h" #include #include namespace adminive { template struct Type_Descriptor; } namespace renderive::web { struct Gallery_Feedback_Policy { bool enabled{true}; bool pixel{}; bool presentation{true}; bool manual{}; double manual_fps{60.0}; friend bool operator==(const Gallery_Feedback_Policy&, const Gallery_Feedback_Policy&) = default; }; template class Gallery_Session_Control final { public: Gallery_Session_Control(Scene_Type& scene, Renderable& renderable, Gallery_Feedback_Policy& feedback) noexcept : scene_(scene), renderable_(renderable), feedback_(feedback) {} private: Scene_Type& scene_; Renderable& renderable_; Gallery_Feedback_Policy& feedback_; template friend struct ::adminive::Type_Descriptor; }; }