我想交替渲染一个使用 eglCreateWindowSurface 创建的 EGLSurface 和一个使用 eglCreatePbufferSurface 创建的 EGLSurface,重用 EGLDisplay 和 EGLContext。当我希望结果对用户可见时,我正在使用 GLSurfaceView,但我不知道如何初始化它以使用我的 EGLDisplay、EGLContext 和 EGLSurface。我想使用 GLSurfaceView.EGLWindowSurfaceFactory,但我看到它的覆盖方法 createWindowSurface 已经将这些变量作为输入参数,所以我想你已经由 GLSurfaceView 创建。怎么做到呢?
问问题
2403 次
1 回答
4
的全部意义GLSurfaceView
在于为你管理这样的事情,所以很难让它做你想做的事。
您可以做的一件事是等到GLSurfaceView
创建,然后在共享组中创建第二个 EGL 上下文。这有点尴尬,但可以工作。在许多方面,只需切换到SurfaceView
或TextureView
自己管理 EGL 和线程会更简单。
您可以在Grafika中看到各种实现。“Show + capture camera”使用GLSurfaceView
共享EGLContext
,“Record GL app with FBO”使用SurfaceView
,“播放电影(TextureView)”使用TextureView
,等等。
于 2014-02-11T14:39:16.167 回答