UNPKG

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