1

次のコードがあります。

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;

表示リストの中央にある 2 行が glDisable と glEnable をブロックしているようです。このコードの出力は次のとおりです。

0
1
1
1

そしてそれはあるべきです

0
1
0
1

表示リストの 2 行を削除すると、出力は問題ありません。表示リストで glEnable と glDisable を使用するにはどうすればよいですか?

4

2 に答える 2

0

2 番目の glDisable と glEnable がリストに書き込まれ、後でリストが表示されたときに実行されます。

リストに入れても、すぐに状態が変わるわけではありません。

于 2016-02-10T00:08:20.967 に答える