00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "ExManagerOutput.h"
00025
00026 bool ExManagerOutput::m_flag = false;
00027 ExManagerOutput* ExManagerOutput::m_instance = NULL;
00028
00029 ExManagerOutput* ExManagerOutput::CreateSingleton(void){
00030 Guard(ExManagerOutput* ExManagerOutput::CreateSingleton(void))
00031 if(!m_flag)
00032 {
00033 m_flag = true;
00034 m_instance = new ExManagerOutput;
00035 }else
00036 {
00037 std::cout<<"Error singleton already created"<<std::endl;
00038 }
00039 return m_instance;
00040 UnGuard
00041 }
00042
00043 ExManagerOutput::ExManagerOutput(void)
00044 {
00045 Guard(ExManagerOutput::ExManagerOutput(void))
00046 UnGuard
00047 }
00048
00049 ExManagerOutput::~ExManagerOutput(void)
00050 {
00051 Guard(ExManagerOutput::~ExManagerOutput(void))
00052 UnGuard
00053 }
00054
00055 void ExManagerOutput::Reset(void)
00056 {
00057 Init();
00058 }
00059
00060 void ExManagerOutput::Init(void)
00061 {
00062 Guard(ExManagerOutput::Init(void))
00063 glShadeModel(GL_SMOOTH);
00064 glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
00065 glClearDepth(1.0f);
00066 glDepthFunc(GL_LEQUAL);
00067 glCullFace(GL_BACK);
00068 glEnable(GL_CULL_FACE);
00069
00070 glPolygonMode(GL_FRONT,GL_FILL);
00071 glEnable(GL_COLOR_MATERIAL );
00072 glEnable(GL_DEPTH_TEST);
00073 glEnable(GL_AUTO_NORMAL);
00074 glEnable(GL_NORMALIZE);
00075 glEnable(GL_ALPHA_TEST);
00076
00077 glLineWidth(1.5);
00078 glRenderMode(GL_RENDER);
00079 UnGuard
00080 }
00081
00082
00083
00084 void ExManagerOutput::Reshape(int w,int h)
00085 {
00086 Guard(ExManagerOutput::Reshape(int w,int h))
00087 ManagerWindow->SetResolution(w,h);
00088 glMatrixMode(GL_PROJECTION);
00089 glLoadIdentity();
00090 glViewport(0,0,ManagerWindow->GetResolutionX(),ManagerWindow->GetResolutionY());
00091 gluPerspective(ManagerCamera->GetCurrentObject()->GetZoom(),
00092 (1.0f *ManagerWindow->GetResolutionX() / ManagerWindow->GetResolutionY()),
00093 ManagerCamera->GetCurrentObject()->GetClipNear(),
00094 ManagerCamera->GetCurrentObject()->GetClipFar());
00095 glMatrixMode(GL_MODELVIEW);
00096 glLoadIdentity();
00097 ManagerCamera->GetCurrentObject()->Draw();
00098 UnGuard
00099 }
00100
00101 void ExManagerOutput::DrawScene(void)
00102 {
00103 Guard(ExManagerOutput::DrawScene(void))
00104
00105 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
00106 ManagerCommand->ApplyAction();
00107
00108
00109
00110 ManagerCamera->Draw();
00111
00112 ManagerMap->Draw();
00113 ManagerModel->Draw();
00114 ManagerGizmo->Draw();
00115 ManagerParticuleSystem->Draw();
00116
00117 if(ManagerWindow->GetGrilleState()){glCallList(GRILLE);}
00118
00119
00120
00121 if(ManagerInterface->GetStatus()){ManagerInterface->Draw();}
00122 if(ManagerWindow->GetFpsState())ManagerWindow->ShowFps();
00123 ManagerNetwork->Draw();
00124 ManagerSpirit->Draw();
00125
00126 ManagerMenu->Draw();
00127 ManagerConsole->Draw();
00128 glFlush();
00129 glutSwapBuffers();
00130 UnGuard
00131 }
00132