OpenGL Показать список блоков glEnable (GL_COLOR_MATERIAL)

У меня есть следующий код:

glDisable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
glEnable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;

modelDL[t] = glGenLists(1);
glNewList(modelDL[t],GL_COMPILE);

glDisable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;
glEnable(GL_COLOR_MATERIAL);
cout<<(int)glIsEnabled(GL_COLOR_MATERIAL)<<endl;

Похоже, что две строки в середине списка отображения блокируют glDisable и glEnable. Выход этого кода:

0
1
1
1

и это должно быть

0
1
0
1

Если удалить 2 строки списка отображения, вывод в порядке. как я могу использовать glEnable и glDisable со списком отображения?

1

Решение

использование GL_COMPILE_AND_EXECUTE если вы хотите увидеть побочные эффекты вашего списка отображения по мере его создания.

2

Другие решения

Я думаю, что это хорошо: 2-й glDisable и glEnable записываются в список и будут выполнены позже, когда список отобразится.

Внесение его в список, не сразу меняет состояние.

0

По вопросам рекламы [email protected]