我有一个纹理,绑定到GL_TEXTURE_EXTERNAL_OES目标
GLES20.glBindTexture(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, textures[0]);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES11Ext.GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
如何将其重新绑定到GL_TEXTURE_2D目标?
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
提供了错误
答案 0 :(得分:3)
你做不到。纹理目标是纹理对象的基本部分。如果您有external texture,则无法将其视为GL_TEXTURE_2D
。完全没有。
这意味着如果要绑定它,则必须将其绑定为GL_TEXTURE_EXTERNAL_OES
纹理。如果要在采样器中使用它,则该采样器必须是samplerExternalOES
类型而不是sampler2D
(并且着色器必须启用相应的扩展名)。等等。