www.pudn.com > Gimcrack-v0.0051-Source.zip > gui.cpp
#include#include #include #include "../global.h" #include "gui.h" //////////////////////////////////////////////////////////////////////////// GcGui::GcGui() { // Build the font for text output } //////////////////////////////////////////////////////////////////////////// GcGui::~GcGui() { // Destruct the GUI } //////////////////////////////////////////////////////////////////////////// void GcGui::Begin() { /* Make the scene ready for 2D rendering */ // Disable depth testing glDisable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); // Select the projection matrix glMatrixMode(GL_PROJECTION); // Save the current matrix glPushMatrix(); // Load a default matrix glLoadIdentity(); // Change mode to 2D drawing glOrtho(0, GcSettings::ScreenWidth(), 0, GcSettings::ScreenHeight(), -1, 1); // Load the modelview matrix glMatrixMode(GL_MODELVIEW); // Save the old modelview matrix glPushMatrix(); // Load the default modelview matrix glLoadIdentity(); // The Pop matrix commands will come in End() and will restore the old matrixs } //////////////////////////////////////////////////////////////////////////// void GcGui::End() { /* Restore the scene for 3D rendering */ // Restor the old modelview matrix glPopMatrix(); // Select the projection matrix glMatrixMode(GL_PROJECTION); // Restore the old projection matrix glPopMatrix(); // Cange back to the modelview matrix glMatrixMode(GL_MODELVIEW); // Enable depth testing glEnable(GL_DEPTH_TEST); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); } //////////////////////////////////////////////////////////////////////////// bool GcGui::Load(GcTexture *land, uint mapWidth) { // Build the font for printing if(!font.Build("data/font.tga", 16, 16, 32, 32, 32)) { MessageBox(NULL, "Unable to build the font.", "ERROR", MB_OK); return false; } // Load the sprite for the crosshair if(!aim.Load("data/aim.tga", 128, 128)) { MessageBox(NULL, "Unable to load the crosshair.", "ERROR", MB_OK); return false; } // Load the sprite for the HUD if(!hud.Load("data/hud.tga", 256, 256)) { MessageBox(NULL, "Unable to load the HUD.", "ERROR", MB_OK); return false; } map.Load(land, mapWidth, GcSettings::Scale()); return true; } //////////////////////////////////////////////////////////////////////////// void GcGui::Draw(float x, float y) { map.Draw(x, y); /* // Draw the crosshair aim.Draw(GcSettings::ScreenWidth() / 2.0f, GcSettings::ScreenHeight() / 2.0f); glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_SRC_COLOR); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColor4f(1.0f, 1.0f, 1.0f, 0.6f); // Draw the HUD hud.Draw(140, 140); glDisable(GL_BLEND); font.Print("Destroy", 95, 200); font.Print("the Rockza base", 55, 174); font.Print("Rescue POVs", 75, 140); */ } //////////////////////////////////////////////////////////////////////////// void GcGui::Print(char *string, int x, int y) { font.Print(string, x, y); } ////////////////////////////////////////////////////////////////////////////