pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 3.26 kB
Source Map (JSON)
{"version":3,"file":"GpuStateSystem.mjs","sources":["../../../../../src/rendering/renderers/gpu/state/GpuStateSystem.ts"],"sourcesContent":["import { ExtensionType } from '../../../../extensions/Extensions';\nimport { State } from '../../shared/state/State';\nimport { GpuBlendModesToPixi } from './GpuBlendModesToPixi';\n\nimport type { BLEND_MODES } from '../../shared/state/const';\nimport type { System } from '../../shared/system/System';\nimport type { GPU } from '../GpuDeviceSystem';\n\n/**\n * System plugin to the renderer to manage WebGL state machines.\n * @category rendering\n * @advanced\n */\nexport class GpuStateSystem implements System\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGPUSystem,\n ],\n name: 'state',\n } as const;\n /**\n * State ID\n * @readonly\n */\n public stateId: number;\n\n /**\n * Polygon offset\n * @readonly\n */\n public polygonOffset: number;\n\n /**\n * Blend mode\n * @default 'none'\n * @readonly\n */\n public blendMode: BLEND_MODES;\n\n /** Whether current blend equation is different */\n protected _blendEq: boolean;\n\n /**\n * GL context\n * @type {WebGLRenderingContext}\n * @readonly\n */\n protected gpu: GPU;\n\n /**\n * Default WebGL State\n * @readonly\n */\n protected defaultState: State;\n\n constructor()\n {\n this.defaultState = new State();\n this.defaultState.blend = true;\n }\n\n protected contextChange(gpu: GPU): void\n {\n this.gpu = gpu;\n }\n\n /**\n * Gets the blend mode data for the current state\n * @param state - The state to get the blend mode from\n * @param count - The number of color targets to create\n */\n public getColorTargets(state: State, count: number): GPUColorTargetState[]\n {\n const blend = GpuBlendModesToPixi[state.blendMode] || GpuBlendModesToPixi.normal;\n\n const targets: GPUColorTargetState[] = [];\n const target = {\n format: 'bgra8unorm',\n writeMask: 0,\n blend,\n } as GPUColorTargetState;\n\n for (let i = 0; i < count; i++)\n {\n targets[i] = target;\n }\n\n return targets;\n }\n\n public destroy(): void\n {\n this.gpu = null;\n }\n}\n"],"names":[],"mappings":";;;;;AAaO,MAAM,cAAA,CACb;AAAA,EA2CI,WAAA,GACA;AACI,IAAA,IAAA,CAAK,YAAA,GAAe,IAAI,KAAA,EAAM;AAC9B,IAAA,IAAA,CAAK,aAAa,KAAA,GAAQ,IAAA;AAAA,EAC9B;AAAA,EAEU,cAAc,GAAA,EACxB;AACI,IAAA,IAAA,CAAK,GAAA,GAAM,GAAA;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,eAAA,CAAgB,OAAc,KAAA,EACrC;AACI,IAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,KAAA,CAAM,SAAS,KAAK,mBAAA,CAAoB,MAAA;AAE1E,IAAA,MAAM,UAAiC,EAAC;AACxC,IAAA,MAAM,MAAA,GAAS;AAAA,MACX,MAAA,EAAQ,YAAA;AAAA,MACR,SAAA,EAAW,CAAA;AAAA,MACX;AAAA,KACJ;AAEA,IAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,KAAA,EAAO,CAAA,EAAA,EAC3B;AACI,MAAA,OAAA,CAAQ,CAAC,CAAA,GAAI,MAAA;AAAA,IACjB;AAEA,IAAA,OAAO,OAAA;AAAA,EACX;AAAA,EAEO,OAAA,GACP;AACI,IAAA,IAAA,CAAK,GAAA,GAAM,IAAA;AAAA,EACf;AACJ;AAAA;AAnFa,cAAA,CAGK,SAAA,GAAY;AAAA,EACtB,IAAA,EAAM;AAAA,IACF,aAAA,CAAc;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AACV,CAAA;;;;"}