我的应用程序用于GLKit渲染3D场景OpenGL ES.
一切都很好,除了一件事.当我在iPad中启动我的应用程序并显示后台应用程序栏(单击双击"主页"按钮)然后更改设备的方向时,场景会被错误更新(最后渲染的图像只是拉伸以填充新的矩形).
我找到了原因.当出现后台应用程序栏时,GLKViewController's paused将YES自动设置(应用程序委托接收-applicationWillResignActive:),并且在此栏关闭之前不会进行渲染.
我在Apple指南(iOS的OpenGL ES编程指南/实现多任务感知的OpenGL ES应用程序)中找到了,在收到-applicationWillResignActive:应用程序后应停止GL渲染或终止.所以似乎一切都好,除了轮换后的糟糕渲染:)
我检查了一些OpenGL游戏.当显示此栏时,它们也会"暂停",但不知何故正确更新设备旋转时暂停的场景.他们是如何做到这一点的?