我想要替换为使用eglCreateWindowSurface创建的EGLSurface和使用eglCreatePbufferSurface创建的EGLSurface,重用EGLDisplay和EGLContext。当我希望结果对用户可见时,我正在使用GLSurfaceView,但我不知道如何初始化它以使用我的EGLDisplay,EGLContext和EGLSurface。我想使用GLSurfaceView.EGLWindowSurfaceFactory,但是我看到它的覆盖方法createWindowSurface已经将这些变量作为输入参数,所以我想你已经由GLSurfaceView创建了。怎么办呢?
答案 0 :(得分:4)
GLSurfaceView
的重点是为你管理这样的事情,所以很难让它做你想做的事。
您可以做的一件事是等到创建GLSurfaceView
,然后在共享组中创建第二个EGL上下文。这有点尴尬,但可以使其工作。在很多方面,只需切换到SurfaceView
或TextureView
并自行管理EGL和线程就更简单。
您可以在Grafika中看到各种实现。 “显示+捕捉相机”使用GLSurfaceView
共享EGLContext
,“使用FBO记录GL应用”使用SurfaceView
,“播放电影(TextureView)”使用TextureView
,等