www.pudn.com > chap1_7.rar > SHADING.CPP
#include#include #include #include void myinit(void); void object(void); void CALLBACK display(void); void CALLBACK myReshape(GLsizei w, GLsizei h); /* GL_SMOOTH is actually the default shading model. */ void myinit (void) { //glShadeModel (GL_FLAT); glShadeModel (GL_SMOOTH); } void object(void) { glBegin (GL_POLYGON); glColor3f (1.0, 0.0, 0.0); glVertex2f (4.0, 4.0); glColor3f(1.0,1.0,1.0); glVertex2f (12.0, 4.0); glColor3f(0.0,0.0,1.0); glVertex2f (12.0, 12.0); glColor3f(0.0,1.0,0.0); glVertex2f (4.0, 12.0); glEnd (); } void CALLBACK display(void) { glClear (GL_COLOR_BUFFER_BIT); object (); glFlush (); } void CALLBACK myReshape(GLsizei w, GLsizei h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) gluOrtho2D (0.0, 16.0, 0.0, 16.0 * (GLfloat) h/(GLfloat) w); else gluOrtho2D (0.0, 16.0 * (GLfloat) w/(GLfloat) h, 0.0, 16.0); glMatrixMode(GL_MODELVIEW); } void main(void) { auxInitDisplayMode (AUX_SINGLE | AUX_RGBA); auxInitPosition (0, 0, 500, 500); auxInitWindow ("Smooth Shading"); myinit(); auxReshapeFunc (myReshape); auxMainLoop(display); }