离开活动并很快返回后,glClear因GL_OUT_OF_MEMORY而失败

时间:2018-02-15 10:53:04

标签: android opengl-es glsl

在离开应用程序后,Android上出现错误,并且返回速度非常快。 ( onPause onResume 已被触发,但不是 onStop onStart )。 EGL表面被破坏并重新创建,但保留了上下文。在所有其他情况下,错误不会出现,并且渲染正常(例如,启动应用程序,或离开应用程序并返回不那么快)

我正在glClear之前和之后检查错误。如果我对其进行评论,则错误将显示在下一个glDrawElements。所以我想这是没有正确配置的东西。这可能是导致此错误的原因?

GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);

1 个答案:

答案 0 :(得分:0)

问题是虽然我用eglDestroySurface摧毁了表面,但我没有打电话:

EGL14.eglMakeCurrent(mEGLDisplay, EGL14.EGL_NO_SURFACE, EGL14.EGL_NO_SURFACE, mEGLContext);

添加上面的行后,运行正常。