@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
53 lines • 4.4 kB
JavaScript
export class TgdLogger {
constructor() {
this.level = 0;
this.lookupTable = new Map();
}
lookup(gl, value) {
if (typeof value !== "number")
return JSON.stringify(value);
const { lookupTable } = this;
if (lookupTable.size === 0) {
// initialize lookup table.
for (const key in gl) {
const value_ = gl[key];
if (typeof value_ === "number") {
lookupTable.set(value_, `gl.${key}`);
}
}
}
return lookupTable.get(value) ?? `gl[${value}]`;
}
call(name, function_) {
const indent = " ".repeat(this.level);
console.log(`${indent}>>>`, name);
this.level++;
const time = Date.now();
try {
return function_();
}
catch (error) {
console.error(error);
throw error;
}
finally {
this.level--;
console.log(`${indent}<<<`, name, `(${Date.now() - time} ms)`);
}
}
stateDepth(gl) {
console.log("// [State] Depth");
const enabled = gl.getParameter(gl.DEPTH_TEST);
if (enabled) {
console.log("gl.enable( gl.DEPTH_TEST )");
console.log("gl.depthFunc(", this.lookup(gl, gl.getParameter(gl.DEPTH_FUNC)), ")");
console.log("gl.depthMask(", this.lookup(gl, gl.getParameter(gl.DEPTH_WRITEMASK)), ")");
const [rangeMin, rangeMax] = gl.getParameter(gl.DEPTH_RANGE);
console.log("gl.depthRange(", rangeMin, ",", rangeMax, ")");
}
else {
console.log("gl.disable( gl.DEPTH_TEST )");
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQUNZLFVBQUssR0FBRyxDQUFDLENBQUE7UUFDQSxnQkFBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBK0M1RCxDQUFDO0lBN0NHLE1BQU0sQ0FBQyxFQUEwQixFQUFFLEtBQWM7UUFDN0MsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTNELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUE7UUFDNUIsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLDJCQUEyQjtZQUMzQixLQUFLLE1BQU0sR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNuQixNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUMsR0FBbUMsQ0FBQyxDQUFBO2dCQUMvRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM3QixXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUE7Z0JBQ3hDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLEtBQUssR0FBRyxDQUFBO0lBQ25ELENBQUM7SUFFRCxJQUFJLENBQUksSUFBWSxFQUFFLFNBQWtCO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDWixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUE7UUFDdkIsSUFBSSxDQUFDO1lBQ0QsT0FBTyxTQUFTLEVBQUUsQ0FBQTtRQUN0QixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDcEIsTUFBTSxLQUFLLENBQUE7UUFDZixDQUFDO2dCQUFTLENBQUM7WUFDUCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksTUFBTSxDQUFDLENBQUE7UUFDbEUsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsRUFBMEI7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO1FBQy9CLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFBO1FBQ3pELElBQUksT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUE7WUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNsRixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1lBQ3ZGLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFpQixDQUFBO1lBQzVFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUE7UUFDOUMsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9