00001
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include "K3dOpenGL.h"
00035
00039 K3dOpenGL::K3dOpenGL(K3dGameData *_pGameData)
00040 {
00041 m_pGameData = _pGameData;
00042
00043 m_pGameData->SetOpenGL(this);
00044 }
00045
00046 K3dOpenGL::~K3dOpenGL()
00047 {
00048 }
00049
00051 void K3dOpenGL::Set2DProjection()
00052 {
00053 glMatrixMode(GL_PROJECTION);
00054 glLoadIdentity();
00055 glOrtho(0,m_pGameData->GetGraphicOption()->iWidth,0,m_pGameData->GetGraphicOption()->iHeight,-1,1);
00056 glMatrixMode(GL_MODELVIEW);
00057 glLoadIdentity();
00058 }
00059
00061 void K3dOpenGL::Set3DProjection()
00062 {
00063 glMatrixMode(GL_PROJECTION);
00064 glLoadIdentity();
00065
00066 gluPerspective((GLdouble)m_pGameData->GetGraphicOption()->iFovy, (GLdouble)m_pGameData->GetGraphicOption()->iWidth/(GLdouble)m_pGameData->GetGraphicOption()->iHeight,
00067 (GLdouble)m_pGameData->GetGraphicOption()->iNearPlane, (GLdouble)m_pGameData->GetGraphicOption()->iFarPlane);
00068
00069 glMatrixMode(GL_MODELVIEW);
00070 glLoadIdentity();
00071 }
00072
00076 void K3dOpenGL::ResizeGL(const int _iWidth, int _iHeight)
00077 {
00078 if(_iHeight == 0)
00079 _iHeight = 1;
00080
00081 glViewport(0, 0, _iWidth, _iHeight);
00082
00083
00084 TGraphicOption *ptGraphics = m_pGameData->GetGraphicOption();
00085 ptGraphics->iWidth = _iWidth;
00086 ptGraphics->iHeight = _iHeight;
00087
00088 Set3DProjection();
00089
00090 }
00091