Opengl 如何推动;“清晰的颜色”;到属性堆栈上

Opengl 如何推动;“清晰的颜色”;到属性堆栈上,opengl,attributes,colors,stack,Opengl,Attributes,Colors,Stack,我试图使用glPushAttrib将“clear color”(使用glClearColor设置)推送到属性堆栈上。问题是:我不确定要向glPushAttrib发送哪个标志 背景:我通常使用glClearColor设置应用程序的“背景”颜色。然而,在一些地方,我必须更改glClearColor以清除正在绘制的纹理。我想使用attrib堆栈推送,然后弹出“背景”颜色,这样它就不会搞砸 谢谢 根据这一点: 显然,要做的事情总是在每次glClear之前调用glClearColor,但我试图减少状态更改

我试图使用glPushAttrib将“clear color”(使用glClearColor设置)推送到属性堆栈上。问题是:我不确定要向glPushAttrib发送哪个标志

背景:我通常使用glClearColor设置应用程序的“背景”颜色。然而,在一些地方,我必须更改glClearColor以清除正在绘制的纹理。我想使用attrib堆栈推送,然后弹出“背景”颜色,这样它就不会搞砸

谢谢

根据这一点:


显然,要做的事情总是在每次glClear之前调用glClearColor,但我试图减少状态更改和gl调用。哦,我现在看到了:“颜色模式和索引模式清除值”(face palm)。谢谢一般来说,您认为使用glPushAttrib/glPopAttrib更好,还是只需在每帧重新设置glClearColor?我认为自己跟踪状态总是更好:glPushAttrib确实会更改许多其他参数。
glPushAttrib(GL_COLOR_BUFFER_BIT);