识别Android中意外的gl上下文丢失

时间:2019-06-02 11:52:44

标签: android c++ opengl-es sdl egl

当后台运行android应用时,如果内存不足,则android操作系统可以清除其资源。

在我的情况下,它的glcontext和gl资源丢失了并使应用程序崩溃。

为了不完全重新启动应用程序,我想确定此事件已发生并重新创建Open GL相关资源。

我无法重现它/强迫这种情况发生。

我的问题是:

是否检查eglGetCurrentContext() == EGL_NO_CONTEXT是否足以知道上下文已丢失?还是有另一种了解方法?

有什么办法可以重现此问题?

规格

应用程序逻辑是使用SDL2框架的c ++。

gl上下文由SDL_GL_CreateContext(window)创建。

如果需要,我可以对Java进行jani调用。

1 个答案:

答案 0 :(得分:1)

在您的活动onResume()上,您需要致电eglMakeCurrent()以使您的上下文成为当前上下文。如果上下文已释放,则将EGL错误状态设置为EGL_CONTEXT_LOST