00001 #ifndef _Game_H_
00002 #define _Game_H_
00003
00004 #include <windows.h>
00005 #include <iostream>
00006 #include <sstream>
00007 #include "Defines.h"
00008 #include "renderer.h"
00009 #include "FPSMeter.h"
00010 #include "Window.h"
00011 #include "Input.h"
00012 #include "TextureManager.h"
00013 #include "Messages.h"
00014 #include "CPUInfo.h"
00015 #include "SoundMgr.h"
00016 #include "Console.h"
00017 #include "GameConfig.h"
00018 #include "Sprite.h"
00019 #include "Shape.h"
00020 #include "Entity2D.h"
00021 #include "Font.h"
00022 #include "Map.h"
00023
00024 using namespace std;
00025
00026 namespace zak {
00027
00149 class ZAKENGINE_API Game {
00150 private:
00151 MSG _msg;
00152 CPUInfo _CPUInfo;
00153
00154 int _width;
00155 int _height;
00156 int _bits;
00157 bool _fullScreen;
00158 int _refreshRate;
00159 bool _vsync;
00160
00161 protected:
00162 STCPUInfo _stCPUInfo;
00163 FPSMeter _fpsMeter;
00164 bool _clearScreen;
00165 GameConfig *_config;
00166
00167 public:
00168
00173 virtual bool OnInit()=0;
00174
00179 virtual bool OnShutdown()=0;
00180
00185 virtual void OnFrame()=0;
00186
00191 virtual void OnDraw(){}
00192
00196 virtual void OnLostDevice(){}
00197
00201 virtual void OnResetDevice(){}
00202
00203
00208 bool StartUp (GameConfig *config = NULL);
00209
00214 void Loop();
00215
00220 bool Shutdown();
00221
00222 bool ChangeResolution(int width, int height, int bits, bool fullScreen, int refreshRate, bool vsync);
00223 bool ChangeResolution(GameConfig *config);
00224
00228 Game(){}
00229 };
00230
00231 }
00232
00233 #endif