Files
Frame/frame/src/ScreenManager.hpp
2022-03-06 03:04:32 +01:00

37 lines
715 B
C++

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