Вот мой код инициализации:
const int WIN_HEIGHT = 640;
const int WIN_WIDTH = 640;
void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
/* lines in question */
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glShadeModel(GL_SMOOTH);
glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
glutCreateWindow("OpenGL");
glutDisplayFunc(Draw);
glutKeyboardFunc(HandleInput);
Initialize();
glutMainLoop();
}
Итак, большая часть этого кода довольно стандартная для базовой 3D-программы.Проблема в том, что если я поставлю все строки glEnable()
перед glutCreateWindow()
, они будут сброшены.Это достаточно легко исправить, чтобы переместить их после создания окна (я переместил их в свою собственную функцию Initialize()
), но почему бы glutCreateWindow()
отключить их?