#include #include #include #define display display_list static GLint v0[] = {0, 5}; static GLint v1[] = {-5, -5, 0}; static GLint v2[] = {4, 8, 0}; static GLint v3[] = {5, -6, 0}; void display_list(void) { GLuint lid; glClear(GL_COLOR_BUFFER_BIT); glColor3f (0.0, 0.0, 1.0); lid = glGenLists(1); glNewList(lid, GL_COMPILE); glBegin (GL_TRIANGLE_STRIP); glVertex2iv(v0); glVertex3iv(v1); glVertex3iv(v2); glVertex3iv(v3); glEnd (); glEndList(); glCallList(lid); glDeleteLists(lid, 1); glFlush(); } static void key(unsigned char k, int x, int y) { switch (k) { case 27: exit(0); break; default: return; } glutPostRedisplay(); } static void reshape(int width, int height) { float ar = (float)width / (float)height + 10.0; glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D (-ar, ar, -ar, ar); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(250, 250); glutInitWindowPosition(100, 100); glutCreateWindow("Vertex"); glutReshapeFunc(reshape); glutDisplayFunc(display); glutKeyboardFunc(key); glutMainLoop(); return 0; }