WebGL:INVALID_OPERATION:useProgram:程序无效

WebGL: INVALID_OPERATION: useProgram: program not valid

我正在学习 WebGl 并尝试将 Web 挖掘脚本转换为执行椭圆曲线加法。我首先用来自 vanitygen-plus 的代码替换了工作 GL 代码,尽管它比我做的更多 need/want。我也开始替换传递给预期变量的变量,并删除了一堆不需要的 JavaScript。 我现在收到错误“glminer.js:54 WebGL: INVALID_OPERATION: useProgram: program not valid” currently testing in chrome 91 on windows 10. 不幸的是,这对我没有多大帮助,因为它没有告诉我什么是无效的。

        var program = gl.createProgram();
        vShader = gl.createShader(gl.VERTEX_SHADER);
        gl.shaderSource(vShader,vShaderQuellcode);
        gl.compileShader(vShader);
        
            // Check for any compilation error
         if (!gl.getShaderParameter(vShader, gl.COMPILE_STATUS)) {
            console.log(gl.getShaderInfoLog(vShader));
        }
        gl.attachShader(program,vShader);
       gl.linkProgram(program);
        gl.useProgram(program); // error here

我会发布 shader-fs.js 这是从 vanitygen-plus 替换的代码,但它让我有 7K 个字符。超限

要获取有关程序失败原因的更多信息,您可以输出程序信息日志。在链接和使用程序之间添加以下调试代码:

gl.linkProgram(program);

// add this for extra debugging
if ( !gl.getProgramParameter( program, gl.LINK_STATUS) ) {
  var info = gl.getProgramInfoLog(program);
  throw new Error('Could not compile WebGL program. \n\n' + info);
}

gl.useProgram(program); // error here