我想交替渲染使用eglCreateWindowSurface 创建的EGLSurface 和使用eglCreatePbufferSurface 创建的EGLSurface,重用EGLDisplay 和EGLContext。当我希望结果对用户可见时,我使用 GLSurfaceView,但我不知道如何初始化它以使用我的 EGLDisplay、EGLContext 和 EGLSurface。我想使用 GLSurfaceView.EGLWindowSurfaceFactory,但我看到它的重写方法 createWindowSurface 已经将这些变量作为输入参数,所以我想它们已经由 GLSurfaceView 创建了。怎么办?
最佳答案
GLSurfaceView
的全部意义在于为您管理类似的事情,因此很难让它做您想要的事情。
您可以做的一件事是等待创建 GLSurfaceView,然后在共享组中创建第二个 EGL 上下文。这有点尴尬,但可以实现。在许多方面,切换到 SurfaceView 或 TextureView 并自行管理 EGL 和线程会更简单。
您可以在 Grafika 中看到各种实现。 “显示 + 捕获相机”使用带有共享 EGLContext
的 GLSurfaceView
,“使用 FBO 记录 GL 应用程序”使用 SurfaceView
,“播放影片 (TextureView) "使用 TextureView
等。
关于android - GLSurfaceView 如何使用我的 EGLDisplay、EGLContext 和 eglSurface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699323/