#include #include "typedefs.h" #define _USE_MATH_DEFINES #include extern GameState_t g_GameState; void setColorMaterial(float r, float g, float b, float shin) { float ambdif[] = {r, g, b, 1.0}, em[] = {0.0, 0.0, 0.0, 1.0}, spec[] = {1.0, 1.0, 1.0, 1.0}; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, ambdif); glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, em); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec); glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shin); } void DrawRasterBox() { double l_dHalfHeight = 0.5 * g_GameState.m_FrustumParms.m_dScreenHeightWorld, l_dHalfWidth = l_dHalfHeight * g_GameState.m_FrustumParms.m_dScreenAspect, l_dDH = g_GameState.m_FrustumParms.m_dScreenHeightWorld/20.0, l_dDW = l_dDH * g_GameState.m_FrustumParms.m_dScreenAspect, l_dBoxDepth = g_GameState.m_FrustumParms.m_dScreenHeightWorld, l_dVariable; for (int i = 0; i <= 20; i++) { l_dVariable = -l_dHalfHeight + (double)i * l_dDH; //draw U on xz glBegin(GL_LINE_STRIP); setColorMaterial(0.0, 0.0, 1.0, 256.0); glVertex3d(-l_dHalfWidth, l_dVariable, 0.0); glVertex3d(-l_dHalfWidth, l_dVariable, -l_dBoxDepth); glVertex3d(l_dHalfWidth, l_dVariable, -l_dBoxDepth); glVertex3d(l_dHalfWidth, l_dVariable, 0.0); glEnd(); //draw U on yz l_dVariable = -l_dHalfWidth + (double)i * l_dDW; glBegin(GL_LINE_STRIP); glVertex3d(l_dVariable, -l_dHalfHeight, 0.0); glVertex3d(l_dVariable, -l_dHalfHeight, -l_dBoxDepth); glVertex3d(l_dVariable, l_dHalfHeight, -l_dBoxDepth); glVertex3d(l_dVariable, l_dHalfHeight, 0.0); glEnd(); //draw square on xy l_dVariable = (double)i * -l_dDH; glBegin(GL_LINE_LOOP); glVertex3d(-l_dHalfWidth, -l_dHalfHeight, l_dVariable); glVertex3d(l_dHalfWidth, -l_dHalfHeight, l_dVariable); glVertex3d(l_dHalfWidth, l_dHalfHeight, l_dVariable); glVertex3d(-l_dHalfWidth, l_dHalfHeight, l_dVariable); glEnd(); } } //void RenderTimers() //{ // int l_iWidth = glutGet(GLUT_WINDOW_WIDTH), // l_iHeight = glutGet(GLUT_WINDOW_HEIGHT); // // //set up a temporary orthographic projection // //save the current projection matrix // glMatrixMode(GL_PROJECTION); // glPushMatrix(); // glLoadIdentity(); // //set up an orthographic projection matrix // glOrtho(0.0, (GLdouble)l_iWidth, 0.0, (GLdouble)l_iHeight, -1.0, 1.0); // glScaled(1.0, -1.0, 1.0); //invert y-axis // glTranslated(0.0, (GLdouble)-l_iHeight, 0.0); //translate the origin to the upper left corner of the screen // // glMatrixMode(GL_MODELVIEW); // glLoadIdentity(); // // //save the current opengl lighting and depth buffering attributes // glPushAttrib(GL_LIGHTING_BIT | GL_DEPTH_BUFFER_BIT); // glDisable(GL_LIGHTING); //disable lighting // glDisable(GL_DEPTH_TEST); //disable depth testing // // //draw a background rectangle // glBegin(GL_POLYGON); // setColorMaterial(0.5, 0.5, 0.5, 128.0); // glVertex2i(0, 0); // glVertex2i(0, 50); // glVertex2i(250, 50); // glVertex2i(250, 0); // glEnd(); // // //draw the frame timer // char l_pFpsString[256]; // // sprintf_s(l_pFpsString, 256, "FPS : %03.1f", g_pFrameTimer->getTicksPerSecond()); // size_t l_sStrLen = strlen(l_pFpsString); // setColorMaterial(0.0, 0.0, 0.0, 128.0); // glRasterPos2i(5, 13); // for (size_t i=0; igetAvgTicksPerSecond()); // l_sStrLen = strlen(l_pFpsString); // //setColorMaterial(0.0, 0.0, 1.0, 128.0); // glRasterPos2i(125, 13); // for (size_t i=0; igetTicksPerSecond()); // l_sStrLen = strlen(l_pFpsString); // //setColorMaterial(0.0, 0.0, 1.0, 128.0); // glRasterPos2i(5, 39); // for (size_t i=0; igetAvgTicksPerSecond()); // l_sStrLen = strlen(l_pFpsString); // //setColorMaterial(0.0, 0.0, 1.0, 128.0); // glRasterPos2i(125, 39); // for (size_t i=0; i