Files
nothoughts/node_modules/pixi.js/lib/rendering/renderers/shared/state/State.mjs.map
2025-08-04 18:57:35 +02:00

1 line
9.6 KiB
Plaintext

{"version":3,"file":"State.mjs","sources":["../../../../../src/rendering/renderers/shared/state/State.ts"],"sourcesContent":["/* eslint-disable max-len */\nimport type { BLEND_MODES, CULL_MODES } from './const';\n\nconst blendModeIds = {\n normal: 0,\n add: 1,\n multiply: 2,\n screen: 3,\n overlay: 4,\n erase: 5,\n 'normal-npm': 6,\n 'add-npm': 7,\n 'screen-npm': 8,\n min: 9,\n max: 10,\n};\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\n\n/**\n * This is a WebGL state, and is is passed to {@link StateSystem}.\n *\n * Each mesh rendered may require WebGL to be in a different state.\n * For example you may want different blend mode or to enable polygon offsets\n * @memberof rendering\n */\nexport class State\n{\n /**\n * The data is a unique number based on the states settings.\n * This lets us quickly compare states with a single number rather than looking\n * at all the individual settings.\n */\n public data: number;\n public _blendModeId: number;\n private _blendMode: BLEND_MODES;\n private _polygonOffset: number;\n\n constructor()\n {\n this.data = 0;\n\n this.blendMode = 'normal';\n this.polygonOffset = 0;\n\n this.blend = true;\n this.depthMask = true;\n }\n\n /**\n * Activates blending of the computed fragment color values.\n * @default true\n */\n get blend(): boolean\n {\n return !!(this.data & (1 << BLEND));\n }\n\n set blend(value: boolean)\n {\n if (!!(this.data & (1 << BLEND)) !== value)\n {\n this.data ^= (1 << BLEND);\n }\n }\n\n /**\n * Activates adding an offset to depth values of polygon's fragments\n * @default false\n */\n get offsets(): boolean\n {\n return !!(this.data & (1 << OFFSET));\n }\n\n set offsets(value: boolean)\n {\n if (!!(this.data & (1 << OFFSET)) !== value)\n {\n this.data ^= (1 << OFFSET);\n }\n }\n\n /** The culling settings for this state none - No culling back - Back face culling front - Front face culling */\n set cullMode(value: CULL_MODES)\n {\n if (value === 'none')\n {\n this.culling = false;\n\n return;\n }\n\n this.culling = true;\n this.clockwiseFrontFace = value === 'front';\n }\n\n get cullMode(): CULL_MODES\n {\n if (!this.culling)\n {\n return 'none';\n }\n\n return this.clockwiseFrontFace ? 'front' : 'back';\n }\n\n /**\n * Activates culling of polygons.\n * @default false\n */\n get culling(): boolean\n {\n return !!(this.data & (1 << CULLING));\n }\n\n set culling(value: boolean)\n {\n if (!!(this.data & (1 << CULLING)) !== value)\n {\n this.data ^= (1 << CULLING);\n }\n }\n\n /**\n * Activates depth comparisons and updates to the depth buffer.\n * @default false\n */\n get depthTest(): boolean\n {\n return !!(this.data & (1 << DEPTH_TEST));\n }\n\n set depthTest(value: boolean)\n {\n if (!!(this.data & (1 << DEPTH_TEST)) !== value)\n {\n this.data ^= (1 << DEPTH_TEST);\n }\n }\n\n /**\n * Enables or disables writing to the depth buffer.\n * @default true\n */\n get depthMask(): boolean\n {\n return !!(this.data & (1 << DEPTH_MASK));\n }\n\n set depthMask(value: boolean)\n {\n if (!!(this.data & (1 << DEPTH_MASK)) !== value)\n {\n this.data ^= (1 << DEPTH_MASK);\n }\n }\n\n /**\n * Specifies whether or not front or back-facing polygons can be culled.\n * @default false\n */\n get clockwiseFrontFace(): boolean\n {\n return !!(this.data & (1 << WINDING));\n }\n\n set clockwiseFrontFace(value: boolean)\n {\n if (!!(this.data & (1 << WINDING)) !== value)\n {\n this.data ^= (1 << WINDING);\n }\n }\n\n /**\n * The blend mode to be applied when this state is set. Apply a value of `normal` to reset the blend mode.\n * Setting this mode to anything other than NO_BLEND will automatically switch blending on.\n * @default 'normal'\n */\n get blendMode(): BLEND_MODES\n {\n return this._blendMode;\n }\n\n set blendMode(value: BLEND_MODES)\n {\n this.blend = (value !== 'none');\n this._blendMode = value;\n this._blendModeId = blendModeIds[value as keyof typeof blendModeIds] || 0;\n }\n\n /**\n * The polygon offset. Setting this property to anything other than 0 will automatically enable polygon offset fill.\n * @default 0\n */\n get polygonOffset(): number\n {\n return this._polygonOffset;\n }\n\n set polygonOffset(value: number)\n {\n this.offsets = !!value;\n this._polygonOffset = value;\n }\n\n // #if _DEBUG\n public toString(): string\n {\n return `[pixi.js/core:State `\n + `blendMode=${this.blendMode} `\n + `clockwiseFrontFace=${this.clockwiseFrontFace} `\n + `culling=${this.culling} `\n + `depthMask=${this.depthMask} `\n + `polygonOffset=${this.polygonOffset}`\n + `]`;\n }\n // #endif\n\n /**\n * A quickly getting an instance of a State that is configured for 2d rendering.\n * @returns a new State with values set for 2d rendering\n */\n public static for2d(): State\n {\n const state = new State();\n\n state.depthTest = false;\n state.blend = true;\n\n return state;\n }\n\n public static default2d = State.for2d();\n}\n\n"],"names":[],"mappings":"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"}