void draw(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glColor3f(1.0, 1.0, 1.0); /* draw first polygon */ glPushMatrix(); glTranslatef(-1.0, 0.0, 0.0); glRotatef(Angle, 0.0, 0.0, 1.0); glBindTexture(GL_TEXTURE_2D, TexObj[v]); glEnable(GL_TEXTURE_2D); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2f(-1.0, -1.0); glTexCoord2f(1.0, 0.0); glVertex2f(1.0, -1.0); glTexCoord2f(1.0, 1.0); glVertex2f(1.0, 1.0); glTexCoord2f(0.0, 1.0); glVertex2f(-1.0, 1.0); glEnd(); glDisable(GL_TEXTURE_2D); glPopMatrix(); /* draw second polygon */ glPushMatrix(); glTranslatef(1.0, 0.0, 0.0); glRotatef(Angle - 90.0, 0.0, 1.0, 0.0); glBindTexture(GL_TEXTURE_2D, TexObj[1-v]); glEnable(GL_TEXTURE_2D); glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex2f(-1.0, -1.0); glTexCoord2f(1.0, 0.0); glVertex2f(1.0, -1.0); glTexCoord2f(1.0, 1.0); glVertex2f(1.0, 1.0); glTexCoord2f(0.0, 1.0); glVertex2f(-1.0, 1.0); glEnd(); glDisable(GL_TEXTURE_2D); glPopMatrix(); tkSwapBuffers(); }
void display(void) { glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glPushMatrix(); glRotatef((GLfloat) turn, 0.0, 1.0, 0.0); glRotatef((GLfloat) turn1, 1.0, 0.0, 0.0); #ifdef LIGHT if (solid_part) { glPushMatrix(); lighting(); glPopMatrix(); } else { disable(); } #endif #ifdef DRAW_MECH glPushMatrix(); glTranslatef(0.0, elevation, 0.0); DrawMech(); glPopMatrix(); #endif #ifdef DRAW_ENVIRO glPushMatrix(); if (distance >= 20.136) { distance = 0.0; } glTranslatef(0.0, -5.0, -distance); glCallList(SOLID_ENVIRO); glTranslatef(0.0, 0.0, 10.0); glCallList(SOLID_ENVIRO); glPopMatrix(); #endif glPopMatrix(); glFlush(); tkSwapBuffers(); }