#include #include #include #include #define WINDSIZEX 100 #define WINDSIZEY 100 #define X1 1.25 #define X2 9.5 #define Y1 1.25 #define Y2 10.75 void init(void) { GLfloat red[] = {1.0, 0.0, 0.0, 1.0}; glClearColor(0.0, 0.0, 0.0, 1.0); glColor4fv(red); } void Render() { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex2f (X1, Y2); glVertex2f (X1, Y1); glVertex2f (X2, Y1); glEnd(); glFlush(); } void test(void) { //state1 //glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 0); glEnable(GL_LIGHTING); //glFrontFace (GL_CCW); Render(); //state2 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, 1); glDisable(GL_LIGHTING); glFrontFace (GL_CW); Render(); } void display(void) { glViewport(0, 0, WINDSIZEX, WINDSIZEY); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0, WINDSIZEX, 0, WINDSIZEY); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); test(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(WINDSIZEX, WINDSIZEY); glutInitWindowPosition(100, 100); glutCreateWindow(argv[0]); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }