#pragma once #include "appframework/gameapplication.h" #include "appframework/feature_fwd_decl.h" #include "foundation/framesync/framesynctimer.h" #include "input/inputwindowsource.h" #include "graphicsystem/graphicobjectmanager.h" #include "appframework/feature_fwd_decl.h" namespace Sample { class SimpleGameApplication : public App::GameApplication { __DeclareThreadSingleton(SimpleGameApplication); public: /// constructor SimpleGameApplication(); /// destructor virtual ~SimpleGameApplication(); /// open the application virtual bool Open(); virtual void Close(); /// virtual void Run(void); const Ptr& GetInputWindowsSource(void) const; protected: /// setup application state handlers virtual void SetupStateHandlers(); /// setup game features virtual void SetupGameFeatures(); /// cleanup game features virtual void CleanupGameFeatures(); /// 设置工程路径 virtual void SetupProjectAssigns(); private: Ptr mGraphicsFeature; Ptr mBaseGameFeature; Ptr mInputFeature; Ptr mGraphicObjectManager; // 获取窗口消息的InputSource Ptr mInputWindowsSource; App::TParticleFeaturePtr mParticleFeature; HWND mWnd; }; //------------------------------------------------------------------------ inline const Ptr& SimpleGameApplication::GetInputWindowsSource(void) const { return mInputWindowsSource; } }