#pragma once #include namespace Nimbin { class Game; class GlRenderer; class IState { public: virtual ~IState() = default; virtual void on_Enter(Game&) {} virtual void on_Exit(Game&) {} virtual void handle_Event(Game& game, const SDL_Event&) = 0; virtual void update(double dt, const GlRenderer*) = 0; virtual void render(SDL_Window&, GlRenderer&) = 0; }; } // namespace Nimbin