【发布时间】:2013-01-01 23:02:01
【问题描述】:
我有一个应用程序,其中包含一些基于 Xcode 4.5.2 的 OpenGL 游戏模板的投影矩阵设置代码。在update 函数中,我通过查询[[UIDevice currentDevice] userInterfaceIdiom] 以及UIDeviceOrientationIsLandscape: 和UIDeviceOrientationIsPortrait: 为baseModelViewMatrix 设置适当的z 平移值。这有效地让我可以根据每个设备的方向设置屏幕上呈现的区域的比例。我还从willAnimateRotationToInterfaceOrientation:duration: 调用update,以在运行时为设备的每个方向保持正确的渲染比例。
这一切都很好,但是我注意到当设备面向上或面朝下时,我的场景不会显示,我只看到看起来是空的 GLKView。将设备旋转到垂直于地平面的任何方向,可以将场景恢复到其预期行为。我尝试检查UIDeviceOrientationIsValidInterfaceOrientation:,它似乎应该处理我需要的东西,但没有发现行为有任何差异。
我的猜测是,当检测到方向发生变化时,GLKit 会自动更新 GLKView,但我没有找到任何可能导致这种特定行为的明确答案。有什么想法吗?提前致谢。
【问题讨论】:
标签: opengl-es-2.0 uiinterfaceorientation glkit uideviceorientation