X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FState.hpp;h=b6c20f662dc12804ab5b6dd410292ca296ae2691;hb=fd86376a8e7d3f1b09be3d018f772ef884937238;hp=2bdd41b238f87518cd56d649add03d0fd11c39c1;hpb=afd253b2dd10fdf2d4655d3d4a5766e6aa8c1a2c;p=blank.git diff --git a/src/app/State.hpp b/src/app/State.hpp index 2bdd41b..b6c20f6 100644 --- a/src/app/State.hpp +++ b/src/app/State.hpp @@ -6,16 +6,33 @@ namespace blank { +class HeadlessApplication; class Viewport; struct State { + friend class Application; + friend class HeadlessApplication; + virtual void Handle(const SDL_Event &) = 0; virtual void Update(int dt) = 0; virtual void Render(Viewport &) = 0; + +private: + int ref_count = 0; + + virtual void OnEnter() { } + virtual void OnResume() { } + virtual void OnPause() { } + virtual void OnExit() { } + + virtual void OnFocus() { } + virtual void OnBlur() { } + virtual void OnResize(Viewport &) { } + }; };