namespace blobs {
+namespace graphics {
+ class Viewport;
+}
namespace app {
class State;
+class Window;
class Application {
public:
- Application();
+ Application(Window &, graphics::Viewport &);
~Application();
Application(const Application &) = delete;
State &GetState();
bool HasState() const noexcept;
+ Window &GetWindow() noexcept { return window; }
+ const Window &GetWindow() const noexcept { return window; }
+
+ graphics::Viewport &GetViewport() noexcept { return viewport; }
+ const graphics::Viewport &GetViewport() const noexcept { return viewport; }
+
/// Loop until states is empty.
void Run();
/// Evaluate a single frame of dt milliseconds.
void HandleEvents();
private:
+ Window &window;
+ graphics::Viewport &viewport;
std::stack<State *> states;
};