/* ==================================================================== * ÆÄ ÀÏ : Application.h * ¸ñ Àû : À©µµ¿ì ¹× °ÔÀÓÀÇ ±â¹Ý Ŭ·¡½ºµéÀ» °ü¸® * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.12 * ÁÖÀÇ»çÇ× : * =================================================================== */ #pragma once class cAppWindow; class cAppTimer; class cFilePackSystem; class cOptionManager; class cRenderSystem; class cSoundSystem; class cInputSystem; class cResourceManager; class cCameraManager; class cSceneManager; class cStageManager; //class cSyncTimer; class cUICursor; #ifdef _GMTOOL class cGMTool; #endif #if (defined(_DEVSYS) || defined(_DEBUG)) class cDevSystem; #endif /// ¾îÇø®ÄÉÀÌ¼Ç class cApplication { static cApplication* mpSingleton; public: cApplication(); ~cApplication(); /// ¾îÇø®ÄÉÀ̼ÇÀ» »ý¼º static cApplication* Create(); /// ¸Þ½ÃÁö ó¸® ÇÔ¼ö static LRESULT CALLBACK WinProc( HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam ); /// °¡»ó ¸Þ¸ð¸® üũ static bool CheckEnoughMemory(); /// ¹°¸® ¸Þ¸ð¸® üũ static bool CheckEnoughHardDisk(); /// Dx¹öÁ¯ üũ static bool CheckDirectXVersion(); /// Áߺ¹ ½ÇÇà¿¡ ´ëÇÑ Ã¼Å© static bool CheckExecutionApplication(); /// À©µµ¿ì Ȱ¼ºÈ­ üũ¿ë inline bool IsActive() { return mIsActive; } void SetActive( bool active ); void SetMinimize( bool mini ) { mIsMinimze = mini; } /// ÃʱâÈ­ bool Init( NiInstanceRef hi, cString ip, long authcode ); #ifdef _GMTOOL bool InitGMTool(); #endif /// ¸ÞÀÎ ·çÇÁ¸¦ ½ÇÇà void Run(); /// Á¾·á void Exit(); /// ½ºÅ©¸° ¸ðµå Åä±Û void UpdateScreenSize( unsigned int width, unsigned int height, unsigned char bpp, bool windowed ); /// ½ºÅ©¸°¼¦ void SetSaveScreenShot( bool save ); /// ¸ðµå Àüȯ½Ã ÀÚ¿ø ¸Þ¸ð¸® ÃʱâÈ­ void Invalidate(); /// ¸ðµå ÀüÈ­½Ã ÀÚ¿ø ¸Þ¸ð¸® Àç»ý»ê void Restore(); inline bool IsReset() { return mResetFlag; } /// Application ½Ã°£°ª inline unsigned long GetWorldAccumTime() { return mAccumTime; } inline unsigned long GetWorldDeltaTime() { return mDeltaTime; } /// ¾îÇø®ÄÉÀÌ¼Ç À©µµ¿ì¸¦ ¸®ÅÏ inline cAppWindow* GetAppWindow() const { return mpWindow; } /// À©µµ¿ì ÇÚµéÀ» ¸®ÅÏ HWND GetHWND(); HINSTANCE GetWindowInstance(); //unsigned long GetIP() { return mIP; } char* GetIP() { return (char*)mIP.Cstr(); } LPCTSTR GetStrVer() { return mVersion.Cstr(); } long GetAuthCode() { return mAuthCode; } private: /// À©µµ¿ì¸¦ »ý¼º bool CreateMainWindow(); /// ¸ÞÀÎ ·çÇÁ void MainLoop(); /// ½ºÅ©¸°¼¦ // bool SaveScreenShot(); void Process(); void Render(); public: /// ´ÜÀÏü¸¦ ¸®ÅÏ static cApplication* GetSingleton(); static cString mLangaugeFolder; static cStringW mLangaugeFolderW; private: /// ÀνºÅϽº NiInstanceRef mpInstance; /// À©µµ¿ì cAppWindow* mpWindow; /// ŸÀÌ¸Ó cAppTimer* mpTimer; /// Ȱ¼ºÈ­ ¿©ºÎ bool mIsActive; bool mIsMinimze; /// ´©Àû ½Ã°£ unsigned long mAccumTime; /// ÇÁ·¹ÀÓ °æ°ú ½Ã°£ unsigned long mDeltaTime; /// ÆÄÀÏ ÆÑ ½Ã½ºÅÛ cFilePackSystem* mpFileSystem; cOptionManager* mpOptionManager; /// ·£´õ¸µ ½Ã½ºÅÛ cRenderSystem* mpRenderSystem; /// »ç¿îµå ½Ã½ºÅÛ cSoundSystem* mpSoundSystem; /// ÀÔ·Â ½Ã½ºÅÛ cInputSystem* mpInputSystem; /// ÀÚ¿ø °ü¸®ÀÚ cResourceManager* mpResourceManager; /// Ä«¸Þ¶ó °ü¸®ÀÚ cCameraManager* mpCameraManager; /// Àå¸é °ü¸®ÀÚ cSceneManager* mpSceneManager; /// °ÔÀÓ ½ºÅ×ÀÌÁö °ü¸®ÀÚ cStageManager* mpStageManager; /// ¸¶¿ì½º Ä¿¼­ cUICursor* mpCursor; #ifdef _GMTOOL private: /// ¿î¿µÅø cGMTool* mGMTool; #endif #if (defined(_DEVSYS) || defined(_DEBUG)) private: /// °³¹ßÀÚ¸¦ À§ÇÑ ½Ã½ºÅÛ cDevSystem* mpDevSystem; #endif /// ½ºÅ©¸°¼¦ bool mSaveScreenShot; bool mResetFlag; cString mIP; cStringT mVersion; // ÀÎÁõÄÚµå long mAuthCode; }; inline void cApplication::SetSaveScreenShot( bool save ) { mSaveScreenShot = save; } inline cApplication* cApplication::GetSingleton() { return mpSingleton; } #define THEAPP cApplication::GetSingleton()