#include #include "util_graphics.h" #include #include #define glError() { for(long err = glGetError(); err; err = glGetError()) { fprintf(stderr, "glError: %s caught at %s:%u\n", (char*)gluErrorString(err), __FILE__, __LINE__); } } #include using namespace std; GLuint texture[1]; void loadTextures() { unsigned char* data; unsigned int width; unsigned int height; unsigned int components; glGenTextures( 1, texture ); glBindTexture( GL_TEXTURE_2D, 1 ); data = loadJPEG("textures/window3.jpg", &width,&height,&components); gluBuild2DMipmaps( GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE, data); free(data); } void init() { glClearColor(0.0, 0.0, 0.0, 0.0); loadTextures(); } void display() { glClear(GL_COLOR_BUFFER_BIT); glEnable( GL_TEXTURE_2D ); glBegin(GL_QUADS); glTexCoord2f(0.0,0.0); glVertex2f(0, 0); glTexCoord2f(0.0,1.0); glVertex2f(0, 10); glTexCoord2f(1.0,1.0); glVertex2f(10, 10); glTexCoord2f(1.0,0.0); glVertex2f(10, 0); glEnd(); glDisable( GL_TEXTURE_2D ); glutSwapBuffers(); glError() } void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluOrtho2D(0,10,0,10); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main ( int argc, char** argv ) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); glutInitWindowSize(500,500); glutInitWindowPosition(100,100); glutCreateWindow("Test"); glutDisplayFunc(display); glutReshapeFunc(reshape); init(); glutMainLoop(); }