#pragma once #include "display/IDisplay.hpp" #include "render/RenderTarget.hpp" #include "widgets/Widget.hpp" #include #include using namespace std::chrono_literals; namespace frame { class ScreenManager { std::unique_ptr mDisplay; render::RenderTarget mRenderTarget; widgets::Widget::shared_ptr mRoot; std::chrono::duration mUpdateInterval = 0.5s; bool mIsRunning = true; public: ScreenManager(std::unique_ptr pDisplay); void Update(); void Render(); void MainLoop(); void setRoot(widgets::Widget::shared_ptr widget); }; } // namespace frame