13.003 Computational Geometry and Visualization
GLUT Library example
Here is the complete code for the example program:
#include <math.h> /* standard math library */ #include <GL/gl.h> /* OpenGL library */ #include <GL/glu.h> /* OpenGL utility library */ #include "/mit/13.003/include/glut.h" /* GLUT library */ /************************************************************** * function prototypes *************************************************************/ void displayCB(void); /* window display callback */ void reshapeCB(int, int); /* window reshape callback */ /************************************************************** * Main program - Open window with initial window size, title * bar, RGBA display mode, and handle input events. *************************************************************/ void main(int argc, char **argv) { glutInit(&argc, argv); /* Initialize GLUT */ glutInitDisplayMode(GLUT_RGB); /* Set the initial display mode */ glutCreateWindow("OpenGL Example 1 - Square"); /* Create window */ glutReshapeFunc(reshapeCB); /* Register reshape callback for window */ glutDisplayFunc(displayCB); /* Register display callback for window */ glutMainLoop(); /* Enter the event loop */ } /*************************************************************** * This callback function is automatically called whenever * the window changes shape. **************************************************************/ void reshapeCB(int width, int height) { glViewport(0, 0, width, height); /* set the viewport to fill window */ } /*************************************************************** * This callback function is automatically called whenever * the window needs to be redrawn. **************************************************************/ void displayCB(void) { glClearColor(0.0, 0.0, 0.0, 0.0); /* set the clear color to black */ glClear(GL_COLOR_BUFFER_BIT); /* erase the window to black */ gluOrtho2D(-1.0, 1.0, -1.0, 1.0); /* 2D orthographic projection */ glColor3f(1.0, 1.0, 1.0); /* set color to white */ glBegin(GL_POLYGON); /* start a polygon */ glVertex2f(-0.5, -0.5); /* vertices of polygon ... */ glVertex2f(-0.5, 0.5); glVertex2f( 0.5, 0.5); glVertex2f( 0.5, -0.5); glEnd(); /* end of polygon */ glFlush(); /* actually draw on screen */ }