void drawBody(int textureindex) { GLdouble car[7][2] = { {-1.93,0.3}, {-1.95,0.4}, {-2.2,0.6}, {-2.6,0.6}, {-2.82,0.4}, {-2.8,0.3}, {-2.78,0.0} }; GLUtesselator *tess = gluNewTess(); // create a tessellator glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, textureLib[textureindex]); glBegin(GL_POLYGON); glTexCoord2f( 0.0 , 0.0 ); glVertex2f(-1.0 , 0.0 ); glTexCoord2f(-0.97, 0.0 ); glVertex2f(-1.97, 0.0 ); // Wheel arch gluTessBeginContour(tess); { gluTessVertex(tess, car[0], car[0]); gluTessVertex(tess, car[1], car[1]); gluTessVertex(tess, car[2], car[2]); gluTessVertex(tess, car[3], car[3]); gluTessVertex(tess, car[4], car[4]); gluTessVertex(tess, car[5], car[5]); gluTessVertex(tess, car[6], car[6]); } gluTessEndContour(tess); // Front of car glTexCoord2f(-2.8 , 0.0 ); glVertex2f(-3.8 , 0.0 ); glTexCoord2f(-2.7 , 0.2 ); glVertex2f(-3.7 , 0.2 ); glTexCoord2f(-2.8 , 0.4 ); glVertex2f(-3.8 , 0.4 ); glTexCoord2f(-1.8 , 0.7 ); glVertex2f(-2.8 , 0.7 ); glTexCoord2f(-1.4 , 0.7 ); glVertex2f(-2.4 , 0.7 ); // Windscreen glTexCoord2f( 0.0 , 1.0 ); glVertex2f(-1.0 , 1.0 ); glTexCoord2f( 1.5 , 1.05); glVertex2f( 0.5 , 1.05); glTexCoord2f( 3.3 , 0.8 ); glVertex2f( 2.3 , 0.8 ); // Rear bumper glTexCoord2f( 3.15, 0.5 ); glVertex2f( 2.15, 0.5 ); glTexCoord2f( 3.15, 0.3 ); glVertex2f( 2.15, 0.3 ); glTexCoord2f( 3.35, 0.3 ); glVertex2f( 2.35, 0.3 ); glTexCoord2f( 3.0 , 0.0 ); glVertex2f( 2.0 , 0.0 ); glTexCoord2f( 2.83, 0.0 ); glVertex2f( 1.83, 0.0 ); // Wheel arch glTexCoord2f( 2.85, 0.3 ); glVertex2f( 1.85, 0.3 ); glTexCoord2f( 2.86, 0.4 ); glVertex2f( 1.86, 0.4 ); glTexCoord2f( 2.6 , 0.6 ); glVertex2f( 1.6 , 0.6 ); glTexCoord2f( 2.2 , 0.6 ); glVertex2f( 1.2 , 0.6 ); glTexCoord2f( 2.0 , 0.4 ); glVertex2f( 1.0 , 0.4 ); glTexCoord2f( 2.0 , 0.3 ); glVertex2f( 1.0 , 0.3 ); glTexCoord2f( 2.05, 0.0 ); glVertex2f( 1.05, 0.0 ); glEnd(); glDisable(GL_TEXTURE_2D); }