将GL_TEXTURE_EXTERNAL_OES纹理的内容复制到GL_TEXTURE_2D纹理

时间:2016-05-17 13:36:24

标签: opengl-es texture2d

我有两个纹理,一个绑定到GL_TEXTURE_EXTERNAL_OES目标,YUV格式的像素,第二个是空的并绑定到GL_TEXTURE_2D目标。

如何在第二个纹理中显示第一个纹理的内容?

1 个答案:

答案 0 :(得分:1)

如果您可以访问OpenGL ES 3.2,EXT_copy_imageOES_copy_imageAPPLE_copy_texture_levels,那么您可以使用由这些定义的相应复制命令复制图像数据规格。无法保证能够执行此操作,因为这些规范都没有定义与OES_EGL_image_external提供的格式的交互。

因此,即使您有权访问该命令,它也可能无法用于外部图像。

如果这些都不可用或者它不起作用,那么你唯一的办法是将2D纹理绑定到帧缓冲区并渲染到它,将外部纹理作为片段着色器中的源数据读取。

话虽这么说,外部图像的整点避免这样的副本。你还没有说明你想要做什么,所以没有我真正能给出的建议。您可能希望查看OES_EGL_image而不是外部图像。