00001 #pragma once
00002
00009 #include "Base.h"
00010 #include <exception>
00011
00012 namespace UQ{
00013
00014 class GraphicMgr;
00015 class AudioMgr;
00016 class InputMgr;
00017 class TaskMgr;
00018
00027 class DLL_EXPORT System{
00028 public:
00029 virtual ~System(){}
00030
00036 static System* getInstance(void);
00037
00043 void deleteInstance(void);
00044
00055 virtual void initialize(int windowWidth, int windowHeight, const char* windowTitle, const char* systemFontFileName, int systemFontWidth, int systemFontHeight) = 0;
00056
00061 virtual void run(void) = 0;
00062
00067 virtual void quit(void) = 0;
00068
00074 virtual unsigned int getFrameCount(void) const = 0;
00075
00081 virtual void wait(int milliseconds) = 0;
00082
00089 virtual bool doEvents(void) = 0;
00090
00096 virtual GraphicMgr* getGraphicMgr(void) const = 0;
00097
00103 virtual AudioMgr* getAudioMgr(void) const = 0;
00104
00110 virtual InputMgr* getInputMgr(void) const = 0;
00111
00117 virtual TaskMgr* getTaskMgr(void) const = 0;
00118
00119 private:
00120 static System* pSystem_;
00121 };
00122
00126 DLL_EXPORT void showError(const std::exception& ex);
00127
00128 }