/* ========================================================================== * ÀÛ ¼º ÀÚ : À̼ø±Ô * ÀÛ ¼º ÀÏ : 2006.12.20 * ³» ¿ë : ¾îÇø®ÄÉÀÌ¼Ç * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once class cAppWindow; class cAppTimer; class cFilePackSystem; class cRenderSystem; class cSoundSystem; class cInputSystem; class cResourceManager; class cCameraManager; class cSceneManager; class cObjectManager; class cWorldManager; class cDevSystem; /// ¾îÇø®ÄÉÀÌ¼Ç class cApplication { static cApplication* mSingleton; public: cApplication(); ~cApplication(); /// Áö¿ò void Clear(); /// ÃʱâÈ­ bool Init( HWND wnd ); /// Á¾·á void Exit(); /// ó¸® void Process( bool testing ); /// ·»´õ¸µ void Render(); /// Ȱ¼ºÈ­ ¿©ºÎ void SetActive( bool active ); bool IsActive(); /// ŸÀÌ¸Ó cAppTimer* GetTimer(); unsigned long GetAccumTime(); unsigned long GetDeltaTime(); public: /// ´ÜÀÏü¸¦ ¸®ÅÏ static cApplication* GetSingleton(); static cString mLangaugeFolder; private: /// ¸ÞÀΠâ cAppWindow* mWindow; /// ÆÄÀÏ ½Ã½ºÅÛ cFilePackSystem* mFileSystem; /// ·»´õ¸µ ½Ã½ºÅÛ cRenderSystem* mRenderSystem; #ifdef MAP_EDITOR /// »ç¿îµå ½Ã½ºÅÛ cSoundSystem* mSoundSystem; #endif /// ÀÔ·Â ½Ã½ºÅÛ cInputSystem* mInputSystem; /// ÀÚ¿ø °ü¸®ÀÚ cResourceManager* mResourceManager; /// Ä«¸Þ¶ó °ü¸®ÀÚ cCameraManager* mCameraManager; /// Àå¸é °ü¸®ÀÚ cSceneManager* mSceneManager; /// ¿ÀºêÁ§Æ® °ü¸®ÀÚ cObjectManager* mObjectManager; /// ¿ùµå °ü¸®ÀÚ cWorldManager* mWorldManager; /// ŸÀÌ¸Ó cAppTimer* mTimer; /// ´©Àû ½Ã°£ unsigned long mAccumTime; /// °æ°ú ½Ã°£ unsigned long mDeltaTime; /// Ȱ¼ºÈ­ ¿©ºÎ bool mActive; }; inline void cApplication::SetActive( bool active ) { mActive = active; } inline bool cApplication::IsActive() { return mActive; } inline cAppTimer* cApplication::GetTimer() { return mTimer; } inline unsigned long cApplication::GetAccumTime() { return mAccumTime; } inline unsigned long cApplication::GetDeltaTime() { return mDeltaTime; } inline cApplication* cApplication::GetSingleton() { return mSingleton; } #define THEONE cApplication::GetSingleton()