2

我想交替渲染一个使用 eglCreateWindowSurface 创建的 EGLSurface 和一个使用 eglCreatePbufferSurface 创建的 EGLSurface,重用 EGLDisplay 和 EGLContext。当我希望结果对用户可见时,我正在使用 GLSurfaceView,但我不知道如何初始化它以使用我的 EGLDisplay、EGLContext 和 EGLSurface。我想使用 GLSurfaceView.EGLWindowSurfaceFactory,但我看到它的覆盖方法 createWindowSurface 已经将这些变量作为输入参数,所以我想你已经由 GLSurfaceView 创建。怎么做到呢?

4

1 回答 1

4

的全部意义GLSurfaceView在于为你管理这样的事情,所以很难让它做你想做的事。

您可以做的一件事是等到GLSurfaceView创建,然后在共享组中创建第二个 EGL 上下文。这有点尴尬,但可以工作。在许多方面,只需切换到SurfaceViewTextureView自己管理 EGL 和线程会更简单。

您可以在Grafika中看到各种实现。“Show + capture camera”使用GLSurfaceView共享EGLContext,“Record GL app with FBO”使用SurfaceView,“播放电影(TextureView)”使用TextureView,等等。

于 2014-02-11T14:39:16.167 回答