从GL_TEXTURE_EXTERNAL_OES

时间:2016-05-16 16:02:29

标签: android opengl-es android-graphics

我有一个纹理,绑定到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]);提供了错误

1 个答案:

答案 0 :(得分:3)

你做不到。纹理目标是纹理对象的基本部分。如果您有external texture,则无法将其视为GL_TEXTURE_2D。完全没有。

这意味着如果要绑定它,则必须将其绑定为GL_TEXTURE_EXTERNAL_OES纹理。如果要在采样器中使用它,则该采样器必须是samplerExternalOES类型而不是sampler2D(并且着色器必须启用相应的扩展名)。等等。