当后台运行android应用时,如果内存不足,则android操作系统可以清除其资源。
在我的情况下,它的glcontext
和gl资源丢失了并使应用程序崩溃。
为了不完全重新启动应用程序,我想确定此事件已发生并重新创建Open GL
相关资源。
我无法重现它/强迫这种情况发生。
我的问题是:
是否检查eglGetCurrentContext() == EGL_NO_CONTEXT
是否足以知道上下文已丢失?还是有另一种了解方法?
有什么办法可以重现此问题?
规格
应用程序逻辑是使用SDL2
框架的c ++。
gl上下文由SDL_GL_CreateContext(window)
创建。
如果需要,我可以对Java进行jani调用。
答案 0 :(得分:1)
在您的活动onResume()
上,您需要致电eglMakeCurrent()
以使您的上下文成为当前上下文。如果上下文已释放,则将EGL错误状态设置为EGL_CONTEXT_LOST
。