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); 
}