Android:在屏幕旋转时保留EGLContext

Android:在屏幕旋转时保留EGLContext,android,opengl-es,glsurfaceview,egl,Android,Opengl Es,Glsurfaceview,Egl,我正在编写一个Android OpenGL ES应用程序,它可能会有许多资源、纹理、着色器等要加载。通常,当视图被破坏时,例如当屏幕方向改变时,EGLContext会被破坏。考虑到将所有必要的资源加载到OpenGL、编译着色器、生成mipmap等可能需要花费大量时间,我正在寻找一种方法来跨屏幕方向更改保留EGL上下文,这样就不需要每次旋转设备时都这样做 进一步信息:我正在使用GLSURFACHEVIEW。我尝试实现一个自定义EGLContextFactory,它创建一个EGLContext,然后

我正在编写一个Android OpenGL ES应用程序,它可能会有许多资源、纹理、着色器等要加载。通常,当视图被破坏时,例如当屏幕方向改变时,EGLContext会被破坏。考虑到将所有必要的资源加载到OpenGL、编译着色器、生成mipmap等可能需要花费大量时间,我正在寻找一种方法来跨屏幕方向更改保留EGL上下文,这样就不需要每次旋转设备时都这样做

进一步信息:我正在使用GLSURFACHEVIEW。我尝试实现一个自定义EGLContextFactory,它创建一个EGLContext,然后每次都将相同的上下文返回给新的GLSURFACHEVIEW。但是,当设备旋转时,会抛出一个EGL_BAD_CONTEXT错误,可能是因为旧视图不再存在,或者是因为新视图与创建EGLContext时要绘制的视图不匹配


一定有办法保存上下文。不幸的是,EGLContextAPI非常小,不允许您在创建上下文后修改它。例如,有没有一种方法可以跨多个视图共享上下文正在绘制的曲面?

我正在使用NDK,但设备旋转不会导致我重新加载任何上下文。根据我对代码的了解,重新绑定了

我正在使用一些工具来管理它,但它看起来像一个简单的状态机,可以将旧的上下文重新绑定到新的表面

我知道这是C/C++代码,不是Java,但步骤和顺序应该是一样的