所以我正在开发一款像app这样的简单游戏。在其中我有一个带有一些立方体对象的opengl-es场景。在模拟器上一切正常,但在设备上(在这种情况下是ipod touch,因为那是我现在唯一的测试设备)它只渲染一帧然后看起来忽略我之后做的每个opengl调用。
为了在启动应用程序时通过分配和释放来不杀死内存,我在后台创建了我的gl视图并停止渲染。当用户单击按钮时,glview将被带到前面并且其渲染计时器被激活。我已经在设备上验证了它通过我的所有渲染代码(就像它在模拟器上一样),但它在设备上根本没有更新。在模拟器中,当它更新时,立方体会移动,但这不会在设备上以图形方式表示。我可以点击立方体,游戏识别它,所以他们的翻译矩阵肯定会更新。
现在这里是踢球者,它过去常常起作用。当我第一次启动时,每次用户转换到gl视图时,它都会分配一个新的视图控制器并运行它,它会更新。但是,从第二次开始,用户转换到视图,它不会更新,它现在显示相同的症状。为了解决这个问题,我将应用程序转换为仅使用一个gl视图,当用户转换时我只需将框移回其起始位置。我认为这会消除这个问题,因为我在技术上总是使用我分配的第一个。然而,它始终显示症状。它至少渲染一次,因为我可以看到它们的起始位置。即使我改变了我正在使用的纹理集,它们仍然在原始纹理集中(尽管在模拟器中它可以完美地工作)。
那么,对于所有的大师来说,是否有任何已知问题会导致openGL-es停止渲染?什么代码可以告诉你?