JSPM

gl-format-compiler-error

1.0.3
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 33446
  • Score
    100M100P100Q153558F
  • License Unlicense

Formats a webgl glsl compiler error.

Package Exports

  • gl-format-compiler-error

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gl-format-compiler-error) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

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"
}