nuclear@3: #include "opengl.h" nuclear@3: #include "cockpit.h" nuclear@3: #include "tex.h" nuclear@3: nuclear@4: #define TEX_ASPECT (16.0 / 9.0) nuclear@4: extern int win_xsz, win_ysz; nuclear@4: nuclear@3: static unsigned int tex; nuclear@3: nuclear@3: bool cockpit_init() nuclear@3: { nuclear@3: if(!(tex = load_texture("data/cockpit.png"))) { nuclear@3: return false; nuclear@3: } nuclear@3: return true; nuclear@3: } nuclear@3: nuclear@3: void cockpit_destroy() nuclear@3: { nuclear@3: free_texture(tex); nuclear@3: } nuclear@3: nuclear@3: void cockpit_draw() nuclear@3: { nuclear@4: float view_aspect = (float)win_xsz / (float)win_ysz; nuclear@4: float aspect = TEX_ASPECT / view_aspect; nuclear@4: nuclear@3: glPushAttrib(GL_ENABLE_BIT); nuclear@3: glDisable(GL_LIGHTING); nuclear@3: nuclear@3: glEnable(GL_BLEND); nuclear@3: glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); nuclear@3: nuclear@3: bind_texture(tex); nuclear@3: nuclear@3: glMatrixMode(GL_MODELVIEW); nuclear@3: glPushMatrix(); nuclear@3: glLoadIdentity(); nuclear@3: glMatrixMode(GL_PROJECTION); nuclear@3: glPushMatrix(); nuclear@3: glLoadIdentity(); nuclear@3: nuclear@3: glBegin(GL_QUADS); nuclear@3: glColor3f(1, 1, 1); nuclear@4: glTexCoord2f(0, 1); glVertex2f(-aspect, -1); nuclear@4: glTexCoord2f(1, 1); glVertex2f(aspect, -1); nuclear@4: glTexCoord2f(1, 0); glVertex2f(aspect, 1); nuclear@4: glTexCoord2f(0, 0); glVertex2f(-aspect, 1); nuclear@3: glEnd(); nuclear@3: nuclear@3: glPopMatrix(); nuclear@3: glMatrixMode(GL_MODELVIEW); nuclear@3: glPopMatrix(); nuclear@3: nuclear@3: bind_texture(0); nuclear@3: nuclear@3: glPopAttrib(); nuclear@3: }