00001
00002 #ifndef __ENGINECORE_H_
00003 #define __ENGINECORE_H_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "ISingleton.h"
00027 #include "Timer.h"
00028 #include "SceneRenderer.h"
00029 #include "AudioEngine.h"
00030 #include "InputEngine.h"
00031 #include "IApplication.h"
00032
00033 namespace peon
00034 {
00042 class PEONMAIN_API EngineCore : ISingleton<EngineCore>
00043 {
00044 public:
00046 IniConfigReader* m_pConfig;
00047
00049 IApplication* m_pApplication;
00050
00052 SceneRenderer* m_pVideoDevice;
00053
00055 Timer m_oTimer;
00056
00058 float m_fps;
00059
00060
00061
00062 protected:
00066 void updateFPS();
00067
00068 public:
00072 EngineCore();
00073
00077 ~EngineCore();
00078
00094 static EngineCore& getSingleton(void);
00110 static EngineCore* getSingletonPtr(void);
00111
00119 bool loadEngine( const String& strWindowTitle, const String& strIniConfig );
00120
00124 void unloadEngine();
00125
00131 int runEngine();
00132
00137 bool setApplication( IApplication* pApplication );
00138
00143 SceneRenderer* getRenderer(){ return m_pVideoDevice; }
00144
00149 IApplication* getApplication(){ return m_pApplication; }
00150
00151
00152 };
00153 }
00154
00155 #endif
00156