【发布时间】:2011-08-05 14:31:59
【问题描述】:
对于我们在 Android 操作系统上的游戏,我们主要使用 ndk 来编写我们的游戏和一个精简的 Java 包装器,这样我们就可以支持所有具有 gles 2.0 硬件的设备。
我们的实现非常标准,使用 GLSurfaceView 的覆盖我们: * 创建/恢复游戏的 c++ 部分 onSurfaceChanged(), * 渲染 onDrawFrame(), * 在destroyContex() 通知引擎丢失gl Context,这通常发生在应用程序暂停或被破坏时。
当重新创建 gl 上下文时(恢复时 - onSurfaceChanged()),我们将信息传递回游戏并重新加载所有 gl 资源。在 onSurfaceChanged() 和第一个 onDrawFrame 之间的时间虽然屏幕是黑色的但我注意到很多没有这种问题的 3D 游戏(例如 Gun Bros),他们似乎也没有重新加载资源(除非他们拥有所有内存并快速加载它们)。
关于为什么会发生这种情况的任何信息?
【问题讨论】:
标签: android opengl-es-2.0 android-ndk glsurfaceview