pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
45 lines (42 loc) • 1.64 kB
JavaScript
;
;
function logPrettyShaderError(gl, shader) {
const shaderSrc = gl.getShaderSource(shader).split("\n").map((line, index) => `${index}: ${line}`);
const shaderLog = gl.getShaderInfoLog(shader);
const splitShader = shaderLog.split("\n");
const dedupe = {};
const lineNumbers = splitShader.map((line) => parseFloat(line.replace(/^ERROR\: 0\:([\d]+)\:.*$/, "$1"))).filter((n) => {
if (n && !dedupe[n]) {
dedupe[n] = true;
return true;
}
return false;
});
const logArgs = [""];
lineNumbers.forEach((number) => {
shaderSrc[number - 1] = `%c${shaderSrc[number - 1]}%c`;
logArgs.push("background: #FF0000; color:#FFFFFF; font-size: 10px", "font-size: 10px");
});
const fragmentSourceToLog = shaderSrc.join("\n");
logArgs[0] = fragmentSourceToLog;
console.error(shaderLog);
console.groupCollapsed("click to view full shader code");
console.warn(...logArgs);
console.groupEnd();
}
function logProgramError(gl, program, vertexShader, fragmentShader) {
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
logPrettyShaderError(gl, vertexShader);
}
if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
logPrettyShaderError(gl, fragmentShader);
}
console.error("PixiJS Error: Could not initialize shader.");
if (gl.getProgramInfoLog(program) !== "") {
console.warn("PixiJS Warning: gl.getProgramInfoLog()", gl.getProgramInfoLog(program));
}
}
}
exports.logProgramError = logProgramError;
//# sourceMappingURL=logProgramError.js.map