1.4.0beta6版本中使用shader报错

var glProgram_state = cc.GLProgramState.getOrCreateWithGLProgram(this._program);
glProgram_state.setUniformFloat(“u_dH”, h);
glProgram_state.setUniformFloat(“u_dS”, s);
glProgram_state.setUniformFloat(“u_dL”, l);

native平台上会出现
glProgram_state.setUniformFloat is not a function,但也不是每次都必现,有人遇到过吗。 之前版本都没这个问题

getOrCreateWithGLProgram 的返回值判断一下,可能呢传入的参数有问题

        h = 0;
        s = -1;
        l = 0;
        glProgram_state.setUniformFloat("u_dH", h);
        glProgram_state.setUniformFloat("u_dS", s);
        glProgram_state.setUniformFloat("u_dL", l);

我把参数固定了。有时候还是会报错。

我是说 cc.GLProgramState.getOrCreateWithGLProgram 这个函数的参数 this._program

this._program = new cc.GLProgram(); 这个不对吗?关键是1.4之前没出现过这个问题,1.4beta版本才出现的

版本之间内部实现有变化是正常的

还是先确定问题吧,首先看 glProgram_state 是不是为空,然后看为空的时候传入的 this.program 有没有问题,如果能定位到问题,可以在原生层断点到 cc.GLProgramState.getOrCreateWithGLProgram 函数,再继续判断错误的原因