我真的在这里挣扎,而且它阻碍了我.
处理OpenGL的正确方法是什么,以及一个Activity - 它启动子活动,或者返回主屏幕.让它恢复到原来的位置.
我现在半工作,纹理/ VBO在需要时在onResume()重新加载.
但有时,当启动子活动并返回,或进入主屏幕并返回时,onCreate将再次被触发.这弄乱了整个事情,我最终得到了黑屏.
我确定我做错了.有人可以解释一个人应该如何处理这样的活动?
您使用什么平台?
我问的原因是,在 Eclair 之前,整个区域都充满了错误,导致暂停/恢复 OpenGL 基本上只是偶然发生的。然而,这些问题似乎已被 Eclair 修复,并且我们的应用程序似乎可以相当可靠地暂停和恢复。
您应该做的是将回调注册到 SurfaceHolder,以便在表面出现和消失时收到通知。在 surfaceDestroyed() 方法中,您完全关闭 EGL,然后在 surfaceCreated() 方法中重新初始化它。您不应该通过 Activity 的 onCreate()/onResume() 方法执行任何此操作,因为表面可能不会同时出现和消失。
也就是说,我们的应用程序是为 Cupcake 设计的,当时事情还相当原始。我认为现在有一些实用程序类可以为您完成所有繁重的工作,因此,如果您使用其中之一,工作方式可能会有所不同;如果你不是,你可能想研究一下它们。
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |