UQGL Beta(11/04/02)
|
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 } // namespace UQ