#include #include #include #include "util_graphics.h" GLuint texture; void loadTextures() { unsigned char* data; unsigned int width; unsigned int height; unsigned int components; glGenTextures( 1, &texture ); glBindTexture( GL_TEXTURE_2D, texture ); data = loadJPEG("textures/road.jpg", &width,&height,&components); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data); free(data); } void draw() { glEnable( GL_TEXTURE_2D ); glBindTexture( GL_TEXTURE_2D, texture ); glBegin(GL_POLYGON); glNormal3f(0,0,1); glTexCoord2i(0,0); glVertex3i(0,0,0); glTexCoord2i(0,1); glVertex3i(0,1,0); glTexCoord2i(1,0); glVertex3i(1,1,0); glTexCoord2i(1,1); glVertex3i(1,0,0); glEnd(); glDisable( GL_TEXTURE_2D ); } void display() { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); draw(); glFlush(); glutSwapBuffers(); } void reshape(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-2,2,-2,2,0,10); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void init() { glEnable(GL_DEPTH_TEST); glEnable(GL_NORMALIZE); loadTextures(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH ); glutInitWindowSize(1280,800); glutInitWindowPosition(100,50); glutCreateWindow("Ă˜ving 6 - Racetrack"); glutDisplayFunc(display); glutReshapeFunc(reshape); init(); glutMainLoop(); return 0; }