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 } |