我想编写一个通用实用程序函数,它将使用 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 但我想我会更普遍地问这个问题