1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function 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 | }
|
29 | function 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 |
|
44 | exports.logProgramError = logProgramError;
|
45 |
|