GL10.GL_SRC_COLOR在Android上引发无效的枚举

时间:2014-06-30 20:44:13

标签: android opengl-es

我有一个工作的Opengl ES 1.0 Android程序,其中包含如下所示的混合功能代码:

public void draw(GL10 gl) {

    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    gl.glEnable(GL10.GL_TEXTURE_2D);
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
    gl.glEnable(GL10.GL_BLEND);
    gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
    ...

但是,这个混合函数并不能满足我的需求,我想用GL_SRC_COLOR替换glBlendFunc的第一个参数GL_SRC_ALPHA。不幸的是,这导致了一个GLException"无效的枚举。"这通常表示我给它的参数不是该对象的有效参数,但根据OpenGL ES文档,此参数是此函数的可接受值之一。知道为什么会产生这个错误吗?

1 个答案:

答案 0 :(得分:2)

  

但根据OpenGL ES文档,此参数是此函数的可接受值之一

不,不是。来自GLES 1.1 spec:

  

函数DST_COLORONE_MINUS_DST_COLORSRC_ALPHA_SATURATE仅对src函数SRC_COLORONE_MINUS_SRC_COLOR有效仅对dst 有效。所有其他功能   适用于srcdst

GLES 1.x在这方面非常有限,但事情就是如此。