我有以下代码。
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
如何使用glEnable和glDisable来显示列表?
使用 GL_COMPILE_AND_EXECUTE
如果你想看到你的显示列表在建立过程中的副作用。
我认为是可以的。第2个glDisable和glEnable被写进了列表,并将在列表显示时被执行。
把它放在列表中,并不会立即改变状态。