X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FState.h;h=b4c26d047cd7c88429e62d56a164be048fdcd7aa;hb=bce16ed519add0d5398d504d2554395c43c74571;hp=7f46c5746c580ddc1ea089acab018d2f3b1f5926;hpb=867fd5d9b79c3b9c1d0fb17ba9f55cfe971b93d5;p=l2e.git diff --git a/src/app/State.h b/src/app/State.h index 7f46c57..b4c26d0 100644 --- a/src/app/State.h +++ b/src/app/State.h @@ -8,6 +8,8 @@ #ifndef APP_APPLICATIONSTATE_H_ #define APP_APPLICATIONSTATE_H_ +#include "Timer.h" + #include namespace app { @@ -22,9 +24,16 @@ public: public: /// do some setup + /// called when the state first enters the stack /// @param ctrl the Application running the state virtual void EnterState(Application &ctrl, SDL_Surface *screen) = 0; - virtual void ExitState() = 0; + /// do some cleanup + /// called when the state is popped from the stack + virtual void ExitState(Application &ctrl, SDL_Surface *screen) = 0; + /// called when the state becomes the active one + virtual void ResumeState(Application &ctrl, SDL_Surface *screen) = 0; + /// called when the state becomes inactive + virtual void PauseState(Application &ctrl, SDL_Surface *screen) = 0; /// adapt the state's graphics to given dimensions virtual void Resize(int width, int height) = 0; @@ -33,6 +42,14 @@ public: virtual void UpdateWorld(float deltaT) = 0; virtual void Render(SDL_Surface *) = 0; +public: + Timers &GraphicsTimers() { return graphicsTimers; } + Timers &PhysicsTimers() { return physicsTimers; } + +private: + Timers graphicsTimers; + Timers physicsTimers; + }; }