UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

102 lines 6.15 kB
import { debug, highlightEnum } from "./../../debug/debug.js"; import { WebglEnumDepthFunction } from "./../../types/webgl.js"; export const webglPresetDepth = { off: { enabled: false, func: WebglEnumDepthFunction.ALWAYS, mask: false, rangeMin: 0, rangeMax: 1, }, always: { enabled: true, func: WebglEnumDepthFunction.ALWAYS, mask: true, rangeMin: 0, rangeMax: 1, }, writeOnly: { enabled: false, func: WebglEnumDepthFunction.ALWAYS, mask: true, rangeMin: 0, rangeMax: 1, }, less: { enabled: true, func: WebglEnumDepthFunction.LESS, mask: true, rangeMin: 0, rangeMax: 1, }, lessOrEqual: { enabled: true, func: WebglEnumDepthFunction.LEQUAL, mask: true, rangeMin: 0, rangeMax: 1, }, lessReadOnly: { enabled: true, func: WebglEnumDepthFunction.LESS, mask: false, rangeMin: 0, rangeMax: 1, }, lessOrEqualReadOnly: { enabled: true, func: WebglEnumDepthFunction.LEQUAL, mask: false, rangeMin: 0, rangeMax: 1, }, }; export function webglDepthSet(context, depth) { const p = context.webglParams; p.depthTest = depth.enabled; p.depthFunc = depth.func; p.depthWriteMask = depth.mask; p.depthRange = [depth.rangeMin, depth.rangeMax]; } export function webglDepthGet(context) { const p = context.webglParams; const [rangeMin, rangeMax] = p.depthRange; return { enabled: p.depthTest, func: p.depthFunc, mask: p.depthWriteMask, rangeMin, rangeMax, }; } export function webglDepthExec(context, depth, action) { const currentState = webglDepthGet(context); webglDepthSet(context, depth); try { action(); } finally { webglDepthSet(context, currentState); } } export function webglDebugDepth(context, caption = "Depth enabled:") { console.debug(caption); const depth = webglDepthGet(context); debug([ [caption, depth.enabled, "\n"], [ { cls: "code" }, ["gl.", depth.enabled ? "enable" : "disable", "(", highlightEnum("DEPTH_FUNC"), ")\n"], [ "gl.depthFunc(", highlightEnum(depth.func), ")\n", "gl.depthMask(", depth.mask, ")\n", `gl.depthRange(${depth.rangeMin}, ${depth.rangeMax})\n`, ], ], ]); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc3RhdGUvZGVwdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQVV6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FLekI7SUFDQSxHQUFHLEVBQUU7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxNQUFNO1FBQ25DLElBQUksRUFBRSxLQUFLO1FBQ1gsUUFBUSxFQUFFLENBQUM7UUFDWCxRQUFRLEVBQUUsQ0FBQztLQUNkO0lBQ0QsTUFBTSxFQUFFO1FBQ0osT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtRQUNuQyxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxDQUFDO1FBQ1gsUUFBUSxFQUFFLENBQUM7S0FDZDtJQUNELFNBQVMsRUFBRTtRQUNQLE9BQU8sRUFBRSxLQUFLO1FBQ2QsSUFBSSxFQUFFLHNCQUFzQixDQUFDLE1BQU07UUFDbkMsSUFBSSxFQUFFLElBQUk7UUFDVixRQUFRLEVBQUUsQ0FBQztRQUNYLFFBQVEsRUFBRSxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEVBQUU7UUFDRixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO1FBQ2pDLElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLENBQUM7UUFDWCxRQUFRLEVBQUUsQ0FBQztLQUNkO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsT0FBTyxFQUFFLElBQUk7UUFDYixJQUFJLEVBQUUsc0JBQXNCLENBQUMsTUFBTTtRQUNuQyxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxDQUFDO1FBQ1gsUUFBUSxF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