UNPKG

1.81 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var math = require('@pixi/math');
6var TextureMatrix = require('../../textures/TextureMatrix.js');
7var Filter = require('../Filter.js');
8var spriteMaskFilter$1 = require('./spriteMaskFilter2.js');
9var spriteMaskFilter = require('./spriteMaskFilter3.js');
10
11class 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
52exports.SpriteMaskFilter = SpriteMaskFilter;
53//# sourceMappingURL=SpriteMaskFilter.js.map