如何保存-恢复所有opengl状态变量
How to save - restore all opengl state vars
我可以在glPushAttrib(GL_ALL_ATTRIB_BITS)
和glPopAttrib()
之间做任何我想做的事情,并且仍然不损害使用之前和之后设置gl状态的其他代码(这些函数是否提供完全隔离)?
不,这只会将服务器端状态推送到堆栈中。
也有客户端状态,如像素存储和顶点数组。对于它们,你必须使用glPushClientAttrib (...)
。
虽然像素存储状态不经常更改,但在弃用代码中,顶点数组状态更改非常常见。因此,如果您想正确地执行此操作,则需要保存并恢复服务器和客户端状态。
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 如何在全屏模式下(在OpenGL中)使背景透明
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- OpenGl glm rotate
- OpenGL 4.5 直接状态访问呈现三角形 - GL_INVALID_VALUE
- OpenGL 纹理状态使用警告:
- opengl Idempotent状态变化的影响
- 在 OpenGL 计划链路状态检查期间"No definition of main in vertex shader"
- 正在存储OpenGL状态
- 在glutKeyboardFunc中所做的OpenGL状态更改不会立即可见
- 正在恢复 OpenGL 状态
- 当底层OpenGL状态被修改时,我应该声明一个方法常量吗
- OpenGL 无效的纹理或状态
- OpenGL的状态需要在新的共享上下文上重置
- 如何定位OPENGL顶部的状态栏
- 如何保存-恢复所有opengl状态变量
- 我应该缓存OpenGL状态,比如当前绑定的缓冲区,还是OpenGL会这样做
- 管理 OpenGL 状态机的策略