]> git.localhorst.tv Git - blank.git/blob - State.hpp
b6c20f662dc12804ab5b6dd410292ca296ae2691
[blank.git] / State.hpp
1 #ifndef BLANK_APP_STATE_HPP_
2 #define BLANK_APP_STATE_HPP_
3
4 #include <SDL.h>
5
6
7 namespace blank {
8
9 class HeadlessApplication;
10 class Viewport;
11
12 struct State {
13
14         friend class Application;
15         friend class HeadlessApplication;
16
17         virtual void Handle(const SDL_Event &) = 0;
18
19         virtual void Update(int dt) = 0;
20
21         virtual void Render(Viewport &) = 0;
22
23
24 private:
25         int ref_count = 0;
26
27         virtual void OnEnter() { }
28         virtual void OnResume() { }
29         virtual void OnPause() { }
30         virtual void OnExit() { }
31
32         virtual void OnFocus() { }
33         virtual void OnBlur() { }
34         virtual void OnResize(Viewport &) { }
35
36 };
37
38 };
39
40 #endif