UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

53 lines 4.4 kB
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