我想编写一个通用的实用程序函数,它将使用OpenGL帧缓冲区对象创建一个可被某些OpenGL程序用于第三方程序员所需的任何目的的纹理。恢复OpenGL状态
比方说,为了论证股权函数看起来像
void createSpecialTexture(GLuint textureID)
{
MyOpenGLState state;
saveOpenGLState(state);
setStateToDefault();
doMyDrawing();
restoreOpenGLState(state);
}
我应该MyOpenGLState
,saveOpenGLState(state)
,setStateToDefault()
和restoreOpenGLState(state)
模样,以确保doMyDrawing
将正确的行为,并没有什么,我在doMyDrawing
做会影响别的第三方开发者可能在做什么?
一直困扰着我的问题是OpenGL有很多隐式状态,我不确定我是否捕获了所有这些。
更新:我主要关心的是OpenGL ES 2.0的,但我想我会更普遍
是不是被弃用? – KillianDS
这个问题主要涉及OpenGL ES 2.0,它既不是'glPushAttrib'也不是'glPopAttrib'是其一部分(参见http://www.khronos.org/opengles/sdk/docs/man/)。 – Caterpillar