SurfaceTexture AttachToGLContext and Surface



我想知道我是否需要重新制作一个表面,如果我想从一个SurfaceTexture调用attachToGLContext方法。我试着在android文档中查找,但没有提及。

我猜不是因为据我所知,表面是一个SurfaceTexture的缓冲区,它可以作为一个OpenGL上下文的外部纹理。所以将SurfaceTexture附加到不同的上下文不应该影响这个。

有人知道吗?

SurfaceTexture的内部名称是"GLConsumer"。表面有一个生产者-消费者关系,而SurfaceTexture是一个消费者,它获取任何它得到的,并使其作为一个GLES纹理可用。

附加到它的表面(通常通过使用以SurfaceTexture作为参数的表面构造函数)是生产者端。虽然在生产者和消费者之间的通信中有一个缓冲区队列,但将Surface描述为"缓冲区"并不准确。它更像是一个向消费者发送图形数据的通信端点。

更改与消费者端相关联的EGL上下文将不会对生产者端产生影响。附加/分离调用不会断开生产者的连接。它们只影响SurfaceTexture对它接收到的数据缓冲区的处理。

需要使用这些调用是相当不寻常的,但是可能会有一些与操作EGL上下文相关的开销,所以请确保它是您所需要的。

最新更新