// Draw a triangle with one red, green, and blue vertex.
glBegin(GL_TRIANGLES);
glMaterialfv(GL_FRONT, GL_AMBIENT, qaRed);
glVertex3f(-.5 + (float)iIndex, 0.0, -.2);
glMaterialfv(GL_FRONT, GL_AMBIENT, qaGreen);
glVertex3f(-.933 + (float)iIndex, -.75, -.2);
glMaterialfv(GL_FRONT, GL_AMBIENT, qaBlue);
glVertex3f(-.067 + (float)iIndex, -.75, -.2);
glEnd();
}
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -3.0, 3.0);
// Lighting set up
glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
// Set lighting intensity and color
GLfloat qaAmbientLight[]= {0.2, 0.2, 0.2, 1.0};
GLfloat qaDiffuseLight[]= {0.8, 0.8, 0.8, 1.0};
GLfloat qaSpecularLight[]= {1.0, 1.0, 1.0, 1.0};
glLightfv(GL_LIGHT0, GL_AMBIENT, qaAmbientLight);
glLightfv(GL_LIGHT0, GL_DIFFUSE, qaDiffuseLight);
glLightfv(GL_LIGHT0, GL_SPECULAR, qaSpecularLight);
// Set the light position
GLfloat qaLightPosition[]= {0.0, 1.0, -.5, 1.0};
glLightfv(GL_LIGHT0, GL_POSITION, qaLightPosition);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow("XoaX.net");
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}