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 • 5.1 kB
Source Map (JSON)
{"version":3,"file":"AlphaFilter.mjs","sources":["../../../../src/filters/defaults/alpha/AlphaFilter.ts"],"sourcesContent":["import { GlProgram } from '../../../rendering/renderers/gl/shader/GlProgram';\nimport { GpuProgram } from '../../../rendering/renderers/gpu/shader/GpuProgram';\nimport { UniformGroup } from '../../../rendering/renderers/shared/shader/UniformGroup';\nimport { Filter } from '../../Filter';\nimport vertex from '../defaultFilter.vert';\nimport fragment from './alpha.frag';\nimport source from './alpha.wgsl';\n\nimport type { FilterOptions } from '../../Filter';\n\n/**\n * Options for AlphaFilter\n * @category filters\n * @standard\n */\nexport interface AlphaFilterOptions extends FilterOptions\n{\n /**\n * Amount of alpha from 0 to 1, where 0 is transparent\n * @default 1\n */\n alpha: number;\n}\n\n/**\n * Simplest filter - applies alpha.\n *\n * Use this instead of Container's alpha property to avoid visual layering of individual elements.\n * AlphaFilter applies alpha evenly across the entire display object and any opaque elements it contains.\n * If elements are not opaque, they will blend with each other anyway.\n *\n * Very handy if you want to use common features of all filters:\n *\n * 1. Assign a blendMode to this filter, blend all elements inside display object with background.\n *\n * 2. To use clipping in display coordinates, assign a filterArea to the same container that has this filter.\n * @category filters\n * @standard\n * @noInheritDoc\n * @example\n * import { AlphaFilter } from 'pixi.js';\n *\n * const filter = new AlphaFilter({ alpha: 0.5 });\n * sprite.filters = filter;\n *\n * // update alpha\n * filter.alpha = 0.8;\n */\nexport class AlphaFilter extends Filter\n{\n /**\n * Default options for the AlphaFilter.\n * @example\n * ```ts\n * AlphaFilter.defaultOptions = {\n * alpha: 0.5, // Default alpha value\n * };\n * // Use default options\n * const filter = new AlphaFilter(); // Uses default alpha of 0.5\n * ```\n */\n public static defaultOptions: AlphaFilterOptions = {\n /**\n * Amount of alpha transparency to apply.\n * - 0 = fully transparent\n * - 1 = fully opaque (default)\n * @default 1\n */\n alpha: 1,\n };\n\n constructor(options?: AlphaFilterOptions)\n {\n options = { ...AlphaFilter.defaultOptions, ...options };\n\n const gpuProgram = GpuProgram.from({\n vertex: {\n source,\n entryPoint: 'mainVertex',\n },\n fragment: {\n source,\n entryPoint: 'mainFragment',\n },\n });\n\n const glProgram = GlProgram.from({\n vertex,\n fragment,\n name: 'alpha-filter'\n });\n\n const { alpha, ...rest } = options;\n\n const alphaUniforms = new UniformGroup({\n uAlpha: { value: alpha, type: 'f32' },\n });\n\n super({\n ...rest,\n gpuProgram,\n glProgram,\n resources: {\n alphaUniforms\n },\n });\n }\n\n /**\n * The alpha value of the filter.\n * Controls the transparency of the filtered display object.\n * @example\n * ```ts\n * // Create filter with initial alpha\n * const filter = new AlphaFilter({ alpha: 0.5 });\n *\n * // Update alpha value dynamically\n * filter.alpha = 0.8;\n * ```\n * @default 1\n * @remarks\n * - 0 = fully transparent\n * - 1 = fully opaque\n * - Values are clamped between 0 and 1\n */\n get alpha(): number { return this.resources.alphaUniforms.uniforms.uAlpha; }\n set alpha(value: number) { this.resources.alphaUniforms.uniforms.uAlpha = value; }\n}\n"],"names":[],"mappings":";;;;;;;;;AAgDO,MAAM,YAAA,GAAN,MAAM,YAAA,SAAoB,MAAA,CACjC;AAAA,EAsBI,YAAY,OAAA,EACZ;AACI,IAAA,OAAA,GAAU,EAAE,GAAG,YAAA,CAAY,cAAA,EAAgB,GAAG,OAAA,EAAQ;AAEtD,IAAA,MAAM,UAAA,GAAa,WAAW,IAAA,CAAK;AAAA,MAC/B,MAAA,EAAQ;AAAA,QACJ,MAAA;AAAA,QACA,UAAA,EAAY;AAAA,OAChB;AAAA,MACA,QAAA,EAAU;AAAA,QACN,MAAA;AAAA,QACA,UAAA,EAAY;AAAA;AAChB,KACH,CAAA;AAED,IAAA,MAAM,SAAA,GAAY,UAAU,IAAA,CAAK;AAAA,MAC7B,MAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,GAAG,IAAA,EAAK,GAAI,OAAA;AAE3B,IAAA,MAAM,aAAA,GAAgB,IAAI,YAAA,CAAa;AAAA,MACnC,MAAA,EAAQ,EAAE,KAAA,EAAO,KAAA,EAAO,MAAM,KAAA;AAAM,KACvC,CAAA;AAED,IAAA,KAAA,CAAM;AAAA,MACF,GAAG,IAAA;AAAA,MACH,UAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA,EAAW;AAAA,QACP;AAAA;AACJ,KACH,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBA,IAAI,KAAA,GAAgB;AAAE,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,QAAA,CAAS,MAAA;AAAA,EAAQ;AAAA,EAC3E,IAAI,MAAM,KAAA,EAAe;AAAE,IAAA,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,QAAA,CAAS,MAAA,GAAS,KAAA;AAAA,EAAO;AACrF,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA/Ea,YAAA,CAaK,cAAA,GAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO/C,KAAA,EAAO;AACX,CAAA;AArBG,IAAM,WAAA,GAAN;;;;"}