UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

58 lines 3.68 kB
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(gl, cull) { if (cull.enabled) gl.enable(gl.CULL_FACE); else gl.disable(gl.CULL_FACE); gl.cullFace(cull.cullFace); } export function webglCullGet(gl) { return { enabled: Boolean(gl.getParameter(gl.CULL_FACE)), cullFace: gl.getParameter(gl.CULL_FACE_MODE), }; } export function webglCullExec(gl, cull, action) { const currentState = webglCullGet(gl); webglCullSet(gl, cull); try { action(); } finally { webglCullSet(gl, currentState); } } export function webglDebugCull(gl, caption = "Cull test:") { console.log(caption); const cull = webglCullGet(gl); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9zdGF0ZS9jdWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBTzlDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FHeEI7SUFDQSxHQUFHLEVBQUU7UUFDRCxPQUFPLEVBQUUsS0FBSztRQUNkLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO0tBQ25DO0lBQ0QsSUFBSSxFQUFFO1FBQ0YsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtLQUNuQztJQUNELEtBQUssRUFBRTtRQUNILE9BQU8sRUFBRSxJQUFJO1FBQ2IsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEtBQUs7S0FDcEM7Q0FDSixDQUFBO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FDeEIsRUFBMEIsRUFDMUIsSUFBc0I7SUFFdEIsSUFBSSxJQUFJLENBQUMsT0FBTztRQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBOztRQUNwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM3QixFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxFQUEwQjtJQUNuRCxPQUFPO1FBQ0gsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFXO0tBQ3pELENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDekIsRUFBMEIsRUFDMUIsSUFBc0IsRUFDdEIsTUFBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3JDLFlBQVksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDdEIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxFQUFFLENBQUE7SUFDWixDQUFDO1lBQVMsQ0FBQztRQUNQLFlBQVksQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDbEMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUMxQixFQUEwQixFQUMxQixPQUFPLEdBQUcsWUFBWTtJQUV0QixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3BCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM3QixLQUFLLENBQUM7UUFDRixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztRQUM3QjtZQUNJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTtZQUNmO2dCQUNJLEtBQUs7Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO2dCQUNuQyxHQUFHO2dCQUNILGFBQWEsQ0FBQyxXQUFXLENBQUM7Z0JBQzFCLEtBQUs7YUFDUjtZQUNELENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDO1NBQ3hEO0tBQ0osQ0FBQyxDQUFBO0FBQ04sQ0FBQyJ9