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.55 kB
Source Map (JSON)
{"version":3,"file":"BlendModeFilter.mjs","sources":["../../../src/filters/blend-modes/BlendModeFilter.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 { Texture } from '../../rendering/renderers/shared/texture/Texture';\nimport { Filter } from '../Filter';\nimport blendTemplateFrag from './blend-template.frag';\nimport blendTemplateVert from './blend-template.vert';\nimport blendTemplate from './blend-template.wgsl';\n\n/** @internal */\nexport interface BlendModeFilterOptions\n{\n source?: string;\n gpu?: {\n functions?: string;\n main?: string;\n }\n gl?: {\n functions?: string;\n main?: string;\n }\n}\n\n/** @internal */\nexport class BlendModeFilter extends Filter\n{\n constructor(options: BlendModeFilterOptions)\n {\n const gpuOptions = options.gpu;\n\n const gpuSource = compileBlendModeShader({ source: blendTemplate, ...gpuOptions });\n\n const gpuProgram = GpuProgram.from({\n vertex: {\n source: gpuSource,\n entryPoint: 'mainVertex',\n },\n fragment: {\n source: gpuSource,\n entryPoint: 'mainFragment',\n },\n });\n\n const glOptions = options.gl;\n\n const glSource = compileBlendModeShader({ source: blendTemplateFrag, ...glOptions });\n\n const glProgram = GlProgram.from({\n vertex: blendTemplateVert,\n fragment: glSource\n });\n\n const uniformGroup = new UniformGroup({\n uBlend: {\n value: 1,\n type: 'f32'\n }\n });\n\n super({\n gpuProgram,\n glProgram,\n blendRequired: true,\n resources: {\n blendUniforms: uniformGroup,\n uBackTexture: Texture.EMPTY\n }\n });\n }\n}\n\nfunction compileBlendModeShader(options: {source: string, functions?: string, main?: string}): string\n{\n const { source, functions, main } = options;\n\n return source.replace('{FUNCTIONS}', functions).replace('{MAIN}', main);\n}\n"],"names":[],"mappings":";;;;;;;;;;AAwBO,MAAM,wBAAwB,MACrC,CAAA;AAAA,EACI,YAAY,OACZ,EAAA;AACI,IAAA,MAAM,aAAa,OAAQ,CAAA,GAAA,CAAA;AAE3B,IAAA,MAAM,YAAY,sBAAuB,CAAA,EAAE,QAAQ,aAAe,EAAA,GAAG,YAAY,CAAA,CAAA;AAEjF,IAAM,MAAA,UAAA,GAAa,WAAW,IAAK,CAAA;AAAA,MAC/B,MAAQ,EAAA;AAAA,QACJ,MAAQ,EAAA,SAAA;AAAA,QACR,UAAY,EAAA,YAAA;AAAA,OAChB;AAAA,MACA,QAAU,EAAA;AAAA,QACN,MAAQ,EAAA,SAAA;AAAA,QACR,UAAY,EAAA,cAAA;AAAA,OAChB;AAAA,KACH,CAAA,CAAA;AAED,IAAA,MAAM,YAAY,OAAQ,CAAA,EAAA,CAAA;AAE1B,IAAA,MAAM,WAAW,sBAAuB,CAAA,EAAE,QAAQ,iBAAmB,EAAA,GAAG,WAAW,CAAA,CAAA;AAEnF,IAAM,MAAA,SAAA,GAAY,UAAU,IAAK,CAAA;AAAA,MAC7B,MAAQ,EAAA,iBAAA;AAAA,MACR,QAAU,EAAA,QAAA;AAAA,KACb,CAAA,CAAA;AAED,IAAM,MAAA,YAAA,GAAe,IAAI,YAAa,CAAA;AAAA,MAClC,MAAQ,EAAA;AAAA,QACJ,KAAO,EAAA,CAAA;AAAA,QACP,IAAM,EAAA,KAAA;AAAA,OACV;AAAA,KACH,CAAA,CAAA;AAED,IAAM,KAAA,CAAA;AAAA,MACF,UAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAe,EAAA,IAAA;AAAA,MACf,SAAW,EAAA;AAAA,QACP,aAAe,EAAA,YAAA;AAAA,QACf,cAAc,OAAQ,CAAA,KAAA;AAAA,OAC1B;AAAA,KACH,CAAA,CAAA;AAAA,GACL;AACJ,CAAA;AAEA,SAAS,uBAAuB,OAChC,EAAA;AACI,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAW,EAAA,IAAA,EAAS,GAAA,OAAA,CAAA;AAEpC,EAAA,OAAO,OAAO,OAAQ,CAAA,aAAA,EAAe,SAAS,CAAE,CAAA,OAAA,CAAQ,UAAU,IAAI,CAAA,CAAA;AAC1E;;;;"}