是否可以在不同的 GLSurfaceViews 之间(在一个 Activity 内)共享 GLES20 上下文?或者,如何在不同的 GLSurfaceView 之间共享一组纹理?
在 iOS 上,如果您想在不同的 CAEAGLLayer 支持的 UIViews 中节省内存并重用(大)纹理,您可以在它们之间传递一个 EAGLContext 对象,或者使用共享一个公共 EAGLSharegroup 对象的不同 EAGLContexts。
我想知道如何在 Android 上实现这一点。有没有等效的技术?
编辑1
最初的建议是实现你自己的 EGLContextFactory,它将返回相同的 EGLContext,但它不起作用,因为每个 GLSurfaceViews 都将渲染分派到它自己的私有 gl 渲染线程,并且在不同线程之间共享相同的 EGLContext 是不可能的。
改写我最初的问题:您在一个屏幕(一个活动)中有多个 GLSurfaceViews,您需要在每个表面的单个 EGLContext 中访问一组常见但较大的纹理,但多次加载纹理超出了设备的内存。那么你将如何在 GLSurfaceViews 之间共享你的纹理呢?