/* * simple.c * This program demonstrates the use of primitives in openGL. */ #include /* * display: display function called when main loop is entered and * when window is marked for redisplay */ void display() { /* clear the window */ glClearColor(0.0, 0.0, 0.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); /* draw some shapes */ /* red triangle */ glColor3f(1.0, 0.0, 0.0); //glPolygonMode(GL_FRONT, GL_LINE); glBegin(GL_POLYGON); //glColor3f(1.0, 0.0, 0.0); glVertex2i(0, 0); //glColor3f(0.0, 1.0, 0.0); glVertex2i(100, 0); //glColor3f(0.0, 0.0, 1.0); glVertex2i(100, 100); glEnd(); /* green lines */ glColor3f(0.0, 1.0, 0.0); //glPointSize(10.0); glBegin(GL_POINTS); glVertex2i(250, 250); glVertex2i(300, 250); glVertex2i(250, 300); glVertex2i(300, 300); glEnd(); /* blue polyline */ glColor3f(0.0, 0.0, 1.0); //glLineWidth(10.0); glBegin(GL_LINE_LOOP); glVertex2i(250, 400); glVertex2i(300, 400); glVertex2i(250, 450); glVertex2i(300, 450); glEnd(); /* white text */ glColor3f(1.0, 1.0, 1.0); glRasterPos2i(350, 50); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'H'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'e'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'l'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'l'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'o'); glRasterPos2i(350, 20); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'W'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'o'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'r'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'l'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'd'); glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, '!'); /* glutStrokeCharacter(GLUT_STROKE_ROMAN, 'H'); glutStrokeCharacter(GLUT_STROKE_ROMAN, 'e'); glutStrokeCharacter(GLUT_STROKE_ROMAN, 'l'); glutStrokeCharacter(GLUT_STROKE_ROMAN, 'l'); glutStrokeCharacter(GLUT_STROKE_ROMAN, 'o'); */ /* show the output */ glFlush(); } int main(int argc, char **argv) { /* create window, set coordinate space */ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE); glutInitWindowSize(500,500); glutInitWindowPosition(0,0); glutCreateWindow("Shapes"); gluOrtho2D(0,500,0,500); /* set the display function */ glutDisplayFunc(display); /* enter the main loop */ glutMainLoop(); return 0; }