intravenous

annotate src/cockpit.cc @ 4:c6a6a64df6de

normalmap
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 22 Apr 2012 05:20:03 +0300
parents 94d4c60af435
children
rev   line source
nuclear@3 1 #include "opengl.h"
nuclear@3 2 #include "cockpit.h"
nuclear@3 3 #include "tex.h"
nuclear@3 4
nuclear@4 5 #define TEX_ASPECT (16.0 / 9.0)
nuclear@4 6 extern int win_xsz, win_ysz;
nuclear@4 7
nuclear@3 8 static unsigned int tex;
nuclear@3 9
nuclear@3 10 bool cockpit_init()
nuclear@3 11 {
nuclear@3 12 if(!(tex = load_texture("data/cockpit.png"))) {
nuclear@3 13 return false;
nuclear@3 14 }
nuclear@3 15 return true;
nuclear@3 16 }
nuclear@3 17
nuclear@3 18 void cockpit_destroy()
nuclear@3 19 {
nuclear@3 20 free_texture(tex);
nuclear@3 21 }
nuclear@3 22
nuclear@3 23 void cockpit_draw()
nuclear@3 24 {
nuclear@4 25 float view_aspect = (float)win_xsz / (float)win_ysz;
nuclear@4 26 float aspect = TEX_ASPECT / view_aspect;
nuclear@4 27
nuclear@3 28 glPushAttrib(GL_ENABLE_BIT);
nuclear@3 29 glDisable(GL_LIGHTING);
nuclear@3 30
nuclear@3 31 glEnable(GL_BLEND);
nuclear@3 32 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
nuclear@3 33
nuclear@3 34 bind_texture(tex);
nuclear@3 35
nuclear@3 36 glMatrixMode(GL_MODELVIEW);
nuclear@3 37 glPushMatrix();
nuclear@3 38 glLoadIdentity();
nuclear@3 39 glMatrixMode(GL_PROJECTION);
nuclear@3 40 glPushMatrix();
nuclear@3 41 glLoadIdentity();
nuclear@3 42
nuclear@3 43 glBegin(GL_QUADS);
nuclear@3 44 glColor3f(1, 1, 1);
nuclear@4 45 glTexCoord2f(0, 1); glVertex2f(-aspect, -1);
nuclear@4 46 glTexCoord2f(1, 1); glVertex2f(aspect, -1);
nuclear@4 47 glTexCoord2f(1, 0); glVertex2f(aspect, 1);
nuclear@4 48 glTexCoord2f(0, 0); glVertex2f(-aspect, 1);
nuclear@3 49 glEnd();
nuclear@3 50
nuclear@3 51 glPopMatrix();
nuclear@3 52 glMatrixMode(GL_MODELVIEW);
nuclear@3 53 glPopMatrix();
nuclear@3 54
nuclear@3 55 bind_texture(0);
nuclear@3 56
nuclear@3 57 glPopAttrib();
nuclear@3 58 }