我们有一个 OpenGL 应用程序(使用 Ogre3d 和 SDL,而不是直接调用 OpenGL),我们正在尝试在运行时更改分辨率。似乎我们需要使用新的分辨率重新初始化我们的 OpenGL 上下文,但是在此过程中,一些项目正在中断。在 Linux 上它似乎工作了一段时间,然后我们在屏幕上看到图形损坏。在 Windows 上,它会在我们下次尝试渲染帧时崩溃。我们已经在 Ogre 中强制重新加载纹理,如果我们只渲染纹理(没有 3d 模型),那么这工作正常,但是任何 3d 模型都会导致崩溃,并且在渲染它们之前重新加载没有效果。
这是我们正在做的 Ogre3d 调用的深入解释的链接:http ://www.ogre3d.org/forums/viewtopic.php?f=2&t=62825
我们真正需要知道的是,在重新初始化 Opengl 上下文时,需要恢复哪些资源?
为什么调整 OpenGL 上下文会影响其他资源?是 OpenGL 的工作方式,还是我们使用的库之一引入了这个问题?我们可以在不知情的情况下添加这个问题吗?