我正在使用SDL 1.2.14和随附的OpenGL绑定编写C ++游戏。
然而,如果游戏是全屏的并且我 Alt - Tab 然后再回到游戏中,结果是不可预测的。游戏逻辑仍在运行。但是,渲染停止。我只看到在Alt-tab
之前绘制的游戏的最后一帧我确保重新初始化OpenGL上下文并在我收到SDL_APPACTIVE = 1
事件时重新加载所有纹理,这似乎仅适用于一个 Alt - 标签,然后所有后续 Alt - Tab 将停止渲染(我确保每次都正确处理SDL_APPACTIVE
并设置上下文相应地。)
我猜测SDL在最小化我不知道的应用程序时会做些什么。
有什么想法吗?
答案 0 :(得分:1)
当它失去焦点时,“减慢”全屏应用程序是一个很好的实践。有两个原因:
尝试关闭APPACTIVE = 0时使用的每个GL资源,并在APPACTIVE = 1上再次分配它们。如果这解决了,那就是“你的错”。如果它没有解决,那就是SDL(或GL或OS)错误。
编辑:s / SO / OS / g