#pragma once #include namespace Nz { class Window; class Canvas; class StateMachine; } // namespace Nz namespace blitz { namespace client { class StateData; class ClientApp : public Nz::ApplicationComponent { public: ClientApp(Nz::ApplicationBase& app); ~ClientApp(); void Update(Nz::Time elapsedTime) override; Nz::Window* GetWindow() { return m_Window; } private: Nz::Window* m_Window; std::unique_ptr m_StateMachine; std::shared_ptr m_StateData; }; } // namespace client } // namespace blitz