00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include "dxframework.h"
00032
00033 void CALLBACK OnFrameMove( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ) {
00034 return dxf::Model::Instance()->OnFrameMove(pd3dDevice, fTime, fElapsedTime, pUserContext);
00035 }
00036
00037 namespace dxf {
00038 extern bool gFPS;
00039
00040 Model::Model() {
00041 }
00042
00043 Model* const Model::Instance() {
00044 static Model instance;
00045 return &instance;
00046 }
00047
00048 void Model::Load() {
00049 StateManager::Load();
00050
00051 DXUTSetCallbackFrameMove( ::OnFrameMove );
00052 }
00053
00054 void Model::Unload() {
00055 StateManager::Unload();
00056 }
00057
00058 void Model::OnFrameMove( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ) {
00059 DXFPollInput();
00060 DXFUpdateConsole();
00061 if (pCurrentState) pCurrentState->Update(fTime, fElapsedTime);
00062 StateManager::Update();
00063 }
00064
00065
00066 void Model::RenderPre2D(double fTime, float fElapsedTime) {
00067 if (pCurrentState) pCurrentState->RenderPre2D(fTime, fElapsedTime);
00068 }
00069
00070 void Model::Render3D(double fTime, float fElapsedTime) {
00071 if (pCurrentState) pCurrentState->Render3D(fTime, fElapsedTime);
00072 }
00073
00074 void Model::Render2D(double fTime, float fElapsedTime) {
00075 if (pCurrentState) pCurrentState->Render2D(fTime, fElapsedTime);
00076 if (gFPS) Console::Instance()->GetFont()->Render2D(DXUTGetFrameStats());
00077 }
00078
00079 GameState* GetCurrentGameState() { return Model::Instance()->GetCurrentGameState(); }
00080 void DXFRenderPre2D(double fTime, float fElapsedTime) { Model::Instance()->RenderPre2D(fTime, fElapsedTime); }
00081 void DXFRender3D(double fTime, float fElapsedTime) { Model::Instance()->Render3D(fTime, fElapsedTime); }
00082 void DXFRender2D(double fTime, float fElapsedTime) { Model::Instance()->Render2D(fTime, fElapsedTime); }
00083 void DXFChangeState(const std::wstring& name) { Model::Instance()->ChangeState(name); }
00084 void DXFRegisterState(const std::wstring& name, GameState* pState) { Model::Instance()->RegisterState(name, pState); }
00085 }