需要举例说明如何在新的onSurfaceCreated之后恢复本机代码中的opengl

时间:2010-07-05 06:08:02

标签: android opengl-es native

我几乎已经完成了使用irrlicht 3d引擎到android的android创建游戏。 除了用于制作本机调用和播放声音的最小帧之外的所有代码都是用C ++编写的。 即使是opengles显示也是使用eglGetDisplay和eglCreateWindowSurface以c ++代码创建的

我需要解决的问题是,当按下主页然后重新启动游戏时,屏幕全部为白色。 从其他答案我发现opengl上下文丢失然后在调用onSurfaceCreated时重新创建。我认为我可以重新加载纹理,但接缝仅适用于某些纹理。此外,背景颜色也会改变,而不是资源。 它接缝我必须完全重启游戏,但这对用户来说真的很烦人。

地震3的港口有关于这个问题的说明没有解决方案。

是否有一个用本机代码编写的游戏的例子可以正确处理这种情况?

1 个答案:

答案 0 :(得分:0)

我处理这种情况的方法是重新创造一切。我确保所有生成的东西,如纹理和缓冲区,在重新创建所有内容之前删除,就好像它是第一次发生的那样。