gl-format-compiler-error

Formats a webgl glsl compiler error.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gl-format-compiler-error
631.0.35 years ago7 years agoMinified + gzip package size for gl-format-compiler-error in KB

Readme

gl-format-compiler-error
Formats a webgl glsl compiler error. Use in conjunction with glsl-shader-name to include your shader's name in the formatted error string.

Example

var formatCompilerError = require('gl-format-compiler-error');

...

var shader = gl.createShader(type)
gl.shaderSource(shader, src)
gl.compileShader(shader)
if(!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
    var errLog = gl.getShaderInfoLog(shader)
    var fmt = formatCompilerError(errLog, src, type);
    console.warn(fmt.long);
    throw new Error(fmt.short);
}

yields warning:
Error in vertex shader generic:
  13: 
  14: void main() {
  15:     bug;
^^^^: 'bug' : undeclared identifier

  17:     vUV = aUV;
  18:     vPos = vec3(uModel * vec4(aPosition, 1.0))
  19: }
^^^^: '}' : syntax error

and error:
Uncaught Error: Error in vertex shader generic:
ERROR: 0:15: 'bug' : undeclared identifier 
ERROR: 0:19: '}' : syntax error 

Usage

Install

npm install gl-format-compiler-error --save

API

var formatCompilerError = require('gl-format-compiler-error');

fmt = formatCompilerError(errLog, source, type)

Takes errLog result from gl.getShaderInfoLog, the shader source string, and the type of shader, either gl.VERTEX_SHADER or gl.FRAGMENT_SHADER. Returns an object that contains the long and short form of the formatted error:
{
    long: "long form error with code snippets",
    short: "short form error, similar to the original error log"
}