UNPKG

1.69 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function logPrettyShaderError(gl, shader) {
6 const shaderSrc = gl.getShaderSource(shader).split("\n").map((line, index) => `${index}: ${line}`);
7 const shaderLog = gl.getShaderInfoLog(shader);
8 const splitShader = shaderLog.split("\n");
9 const dedupe = {};
10 const lineNumbers = splitShader.map((line) => parseFloat(line.replace(/^ERROR\: 0\:([\d]+)\:.*$/, "$1"))).filter((n) => {
11 if (n && !dedupe[n]) {
12 dedupe[n] = true;
13 return true;
14 }
15 return false;
16 });
17 const logArgs = [""];
18 lineNumbers.forEach((number) => {
19 shaderSrc[number - 1] = `%c${shaderSrc[number - 1]}%c`;
20 logArgs.push("background: #FF0000; color:#FFFFFF; font-size: 10px", "font-size: 10px");
21 });
22 const fragmentSourceToLog = shaderSrc.join("\n");
23 logArgs[0] = fragmentSourceToLog;
24 console.error(shaderLog);
25 console.groupCollapsed("click to view full shader code");
26 console.warn(...logArgs);
27 console.groupEnd();
28}
29function logProgramError(gl, program, vertexShader, fragmentShader) {
30 if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
31 if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
32 logPrettyShaderError(gl, vertexShader);
33 }
34 if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
35 logPrettyShaderError(gl, fragmentShader);
36 }
37 console.error("PixiJS Error: Could not initialize shader.");
38 if (gl.getProgramInfoLog(program) !== "") {
39 console.warn("PixiJS Warning: gl.getProgramInfoLog()", gl.getProgramInfoLog(program));
40 }
41 }
42}
43
44exports.logProgramError = logProgramError;
45//# sourceMappingURL=logProgramError.js.map