1 #ifndef BLOBS_APP_APPLICATION_HPP_
2 #define BLOBS_APP_APPLICATION_HPP_
19 Application(Window &, graphics::Viewport &);
22 Application(const Application &) = delete;
23 Application &operator =(const Application &) = delete;
25 Application(Application &&) = delete;
26 Application &operator =(Application &&) = delete;
29 void PushState(State *);
31 State *SwitchState(State *);
33 bool HasState() const noexcept;
35 Window &GetWindow() noexcept { return window; }
36 const Window &GetWindow() const noexcept { return window; }
38 graphics::Viewport &GetViewport() noexcept { return viewport; }
39 const graphics::Viewport &GetViewport() const noexcept { return viewport; }
41 /// Loop until states is empty.
43 /// Evaluate a single frame of dt milliseconds.
45 /// Process all events in queue.
50 graphics::Viewport &viewport;
51 std::stack<State *> states;