OpenGL 显示列表块 glEnable(GL_COLOR_MATERIAL)

问题描述 投票:1回答:2

我有以下代码。

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来显示列表?

c++ opengl 3d displaylist
2个回答
2
投票

使用 GL_COMPILE_AND_EXECUTE 如果你想看到你的显示列表在建立过程中的副作用。


0
投票

我认为是可以的。第2个glDisable和glEnable被写进了列表,并将在列表显示时被执行。

把它放在列表中,并不会立即改变状态。

© www.soinside.com 2019 - 2024. All rights reserved.