@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
51 lines • 3.48 kB
JavaScript
import { debug, highlightEnum } from "./../../debug/debug.js";
import { WebglEnumCullFace } from "./../../types/index.js";
export const webglPresetCull = {
off: {
enabled: false,
cullFace: WebglEnumCullFace.BACK,
},
back: {
enabled: true,
cullFace: WebglEnumCullFace.BACK,
},
front: {
enabled: true,
cullFace: WebglEnumCullFace.FRONT,
},
};
export function webglCullSet(context, cull) {
const p = context.webglParams;
p.cullFace = cull.enabled;
p.cullFaceMode = cull.cullFace;
}
export function webglCullGet(context) {
const p = context.webglParams;
return {
enabled: p.cullFace,
cullFace: p.cullFaceMode,
};
}
export function webglCullExec(context, cull, action) {
const currentState = webglCullGet(context);
webglCullSet(context, cull);
try {
action();
}
finally {
webglCullSet(context, currentState);
}
}
export function webglDebugCull(context, caption = "Cull test:") {
console.debug(caption);
const cull = webglCullGet(context);
debug([
[caption, cull.enabled, "\n"],
[
{ cls: "code" },
["gl.", cull.enabled ? "enable" : "disable", "(", highlightEnum("CULL_FACE"), ")\n"],
["gl.cullFace(", highlightEnum(cull.cullFace), ")\n"],
],
]);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zdGF0ZS9jdWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTzlDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBdUQ7SUFDL0UsR0FBRyxFQUFFO1FBQ0QsT0FBTyxFQUFFLEtBQUs7UUFDZCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUNuQztJQUNELElBQUksRUFBRTtRQUNGLE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLGlCQUFpQixDQUFDLElBQUk7S0FDbkM7SUFDRCxLQUFLLEVBQUU7UUFDSCxPQUFPLEVBQUUsSUFBSTtRQUNiLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO0tBQ3BDO0NBQ0osQ0FBQTtBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBcUMsRUFBRSxJQUFzQjtJQUN0RixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFBO0lBQzdCLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN6QixDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUE7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBcUM7SUFDOUQsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQTtJQUM3QixPQUFPO1FBQ0gsT0FBTyxFQUFFLENBQUMsQ0FBQyxRQUFRO1FBQ25CLFFBQVEsRUFBRSxDQUFDLENBQUMsWUFBWTtLQUMzQixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBcUMsRUFBRSxJQUFzQixFQUFFLE1BQWtCO0lBQzNHLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUMxQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQztRQUNELE1BQU0sRUFBRSxDQUFBO0lBQ1osQ0FBQztZQUFTLENBQUM7UUFDUCxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFxQyxFQUFFLE9BQU8sR0FBRyxZQUFZO0lBQ3hGLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdEIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xDLEtBQUssQ0FBQztRQUNGLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO1FBQzdCO1lBQ0ksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1lBQ2YsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDcEYsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7U0FDeEQ7S0FDSixDQUFDLENBQUE7QUFDTixDQUFDIn0=