1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | var math = require('@pixi/math');
|
6 | var TextureMatrix = require('../../textures/TextureMatrix.js');
|
7 | var Filter = require('../Filter.js');
|
8 | var spriteMaskFilter$1 = require('./spriteMaskFilter2.js');
|
9 | var spriteMaskFilter = require('./spriteMaskFilter3.js');
|
10 |
|
11 | class SpriteMaskFilter extends Filter.Filter {
|
12 | constructor(vertexSrc, fragmentSrc, uniforms) {
|
13 | let sprite = null;
|
14 | if (typeof vertexSrc !== "string" && fragmentSrc === void 0 && uniforms === void 0) {
|
15 | sprite = vertexSrc;
|
16 | vertexSrc = void 0;
|
17 | fragmentSrc = void 0;
|
18 | uniforms = void 0;
|
19 | }
|
20 | super(vertexSrc || spriteMaskFilter["default"], fragmentSrc || spriteMaskFilter$1["default"], uniforms);
|
21 | this.maskSprite = sprite;
|
22 | this.maskMatrix = new math.Matrix();
|
23 | }
|
24 | get maskSprite() {
|
25 | return this._maskSprite;
|
26 | }
|
27 | set maskSprite(value) {
|
28 | this._maskSprite = value;
|
29 | if (this._maskSprite) {
|
30 | this._maskSprite.renderable = false;
|
31 | }
|
32 | }
|
33 | apply(filterManager, input, output, clearMode) {
|
34 | const maskSprite = this._maskSprite;
|
35 | const tex = maskSprite._texture;
|
36 | if (!tex.valid) {
|
37 | return;
|
38 | }
|
39 | if (!tex.uvMatrix) {
|
40 | tex.uvMatrix = new TextureMatrix.TextureMatrix(tex, 0);
|
41 | }
|
42 | tex.uvMatrix.update();
|
43 | this.uniforms.npmAlpha = tex.baseTexture.alphaMode ? 0 : 1;
|
44 | this.uniforms.mask = tex;
|
45 | this.uniforms.otherMatrix = filterManager.calculateSpriteMatrix(this.maskMatrix, maskSprite).prepend(tex.uvMatrix.mapCoord);
|
46 | this.uniforms.alpha = maskSprite.worldAlpha;
|
47 | this.uniforms.maskClamp = tex.uvMatrix.uClampFrame;
|
48 | filterManager.applyFilter(this, input, output, clearMode);
|
49 | }
|
50 | }
|
51 |
|
52 | exports.SpriteMaskFilter = SpriteMaskFilter;
|
53 |
|