我正在编写一个Android OpenGL ES应用程序,可能会加载许多资源,纹理,着色器等。通常,当视图被销毁时,例如当屏幕方向改变时,EGLContext被丢弃。鉴于花费大量的时间将所有必要的资源加载到OpenGL中,编译着色器,生成mipmap等,我正在寻找一种方法来跨屏幕方向更改保留EGL上下文,以使其不会每次旋转设备都需要完成。Android:保存横跨屏幕旋转的EGLContext
更多信息:我正在使用GLSurfaceView。我尝试实现一个自定义的EGLContextFactory,它创建一个EGLContext,然后每次都将相同的上下文返回给新的GLSurfaceView。但是,当设备旋转时,会抛出EGL_BAD_CONTEXT错误,这可能是因为旧视图不再存在,或者是因为新视图与EGLContext创建的视图不匹配。
必须有一些方法来保存上下文。不幸的是,EGLContext API非常小,不允许您在创建后修改上下文。例如,有没有办法在多个视图之间共享上下文正在绘制的表面?