UNPKG

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.42 kB
{"version":3,"file":"FilterPipe.mjs","sources":["../../src/filters/FilterPipe.ts"],"sourcesContent":["import { ExtensionType } from '../extensions/Extensions';\n\nimport type { InstructionSet } from '../rendering/renderers/shared/instructions/InstructionSet';\nimport type { InstructionPipe } from '../rendering/renderers/shared/instructions/RenderPipe';\nimport type { Renderer } from '../rendering/renderers/types';\nimport type { Container } from '../scene/container/Container';\nimport type { Effect } from '../scene/container/Effect';\nimport type { FilterInstruction } from './FilterSystem';\n\n/** @internal */\nexport class FilterPipe implements InstructionPipe<FilterInstruction>\n{\n public static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'filter',\n } as const;\n\n private _renderer: Renderer;\n\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n public push(filterEffect: Effect, container: Container, instructionSet: InstructionSet): void\n {\n const renderPipes = this._renderer.renderPipes;\n\n renderPipes.batch.break(instructionSet);\n\n instructionSet.add({\n renderPipeId: 'filter',\n canBundle: false,\n action: 'pushFilter',\n container,\n filterEffect,\n } as FilterInstruction);\n }\n\n public pop(_filterEffect: Effect, _container: Container, instructionSet: InstructionSet): void\n {\n this._renderer.renderPipes.batch.break(instructionSet);\n\n instructionSet.add({\n renderPipeId: 'filter',\n action: 'popFilter',\n canBundle: false,\n });\n }\n\n public execute(instruction: FilterInstruction)\n {\n if (instruction.action === 'pushFilter')\n {\n this._renderer.filter.push(instruction);\n }\n else if (instruction.action === 'popFilter')\n {\n this._renderer.filter.pop();\n }\n }\n\n public destroy(): void\n {\n this._renderer = null;\n }\n}\n"],"names":[],"mappings":";;;AAUO,MAAM,UACb,CAAA;AAAA,EAYI,YAAY,QACZ,EAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,QAAA,CAAA;AAAA,GACrB;AAAA,EAEO,IAAA,CAAK,YAAsB,EAAA,SAAA,EAAsB,cACxD,EAAA;AACI,IAAM,MAAA,WAAA,GAAc,KAAK,SAAU,CAAA,WAAA,CAAA;AAEnC,IAAY,WAAA,CAAA,KAAA,CAAM,MAAM,cAAc,CAAA,CAAA;AAEtC,IAAA,cAAA,CAAe,GAAI,CAAA;AAAA,MACf,YAAc,EAAA,QAAA;AAAA,MACd,SAAW,EAAA,KAAA;AAAA,MACX,MAAQ,EAAA,YAAA;AAAA,MACR,SAAA;AAAA,MACA,YAAA;AAAA,KACkB,CAAA,CAAA;AAAA,GAC1B;AAAA,EAEO,GAAA,CAAI,aAAuB,EAAA,UAAA,EAAuB,cACzD,EAAA;AACI,IAAA,IAAA,CAAK,SAAU,CAAA,WAAA,CAAY,KAAM,CAAA,KAAA,CAAM,cAAc,CAAA,CAAA;AAErD,IAAA,cAAA,CAAe,GAAI,CAAA;AAAA,MACf,YAAc,EAAA,QAAA;AAAA,MACd,MAAQ,EAAA,WAAA;AAAA,MACR,SAAW,EAAA,KAAA;AAAA,KACd,CAAA,CAAA;AAAA,GACL;AAAA,EAEO,QAAQ,WACf,EAAA;AACI,IAAI,IAAA,WAAA,CAAY,WAAW,YAC3B,EAAA;AACI,MAAK,IAAA,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,WAAW,CAAA,CAAA;AAAA,KAC1C,MAAA,IACS,WAAY,CAAA,MAAA,KAAW,WAChC,EAAA;AACI,MAAK,IAAA,CAAA,SAAA,CAAU,OAAO,GAAI,EAAA,CAAA;AAAA,KAC9B;AAAA,GACJ;AAAA,EAEO,OACP,GAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAAA,GACrB;AACJ,CAAA;AA5Da,UAAA,CAEK,SAAY,GAAA;AAAA,EACtB,IAAM,EAAA;AAAA,IACF,aAAc,CAAA,UAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA,QAAA;AACV,CAAA;;;;"}