UNPKG

3.32 kBTypeScriptView Raw
1import { MASK_TYPES } from '@pixi/constants';
2import type { COLOR_MASK_BITS, MSAA_QUALITY } from '@pixi/constants';
3import type { Matrix, Rectangle } from '@pixi/math';
4import type { IFilterTarget } from '../filters/IFilterTarget';
5import type { ISpriteMaskFilter } from '../filters/spriteMask/SpriteMaskFilter';
6import type { Renderer } from '../Renderer';
7export interface IMaskTarget extends IFilterTarget {
8 renderable: boolean;
9 isSprite?: boolean;
10 worldTransform: Matrix;
11 isFastRect?(): boolean;
12 getBounds(skipUpdate?: boolean, rect?: Rectangle): Rectangle;
13 render(renderer: Renderer): void;
14}
15/**
16 * Component for masked elements.
17 *
18 * Holds mask mode and temporary data about current mask.
19 * @memberof PIXI
20 */
21export declare class MaskData {
22 /** Mask type */
23 type: MASK_TYPES;
24 /**
25 * Whether we know the mask type beforehand
26 * @default true
27 */
28 autoDetect: boolean;
29 /**
30 * Which element we use to mask
31 * @member {PIXI.DisplayObject}
32 */
33 maskObject: IMaskTarget;
34 /** Whether it belongs to MaskSystem pool */
35 pooled: boolean;
36 /** Indicator of the type (always true for {@link PIXI.MaskData} objects) */
37 isMaskData: boolean;
38 /**
39 * Resolution of the sprite mask filter.
40 * If set to `null` or `0`, the resolution of the current render target is used.
41 * @default null
42 */
43 resolution: number;
44 /**
45 * Number of samples of the sprite mask filter.
46 * If set to `null`, the sample count of the current render target is used.
47 * @default PIXI.Filter.defaultMultisample
48 */
49 multisample: MSAA_QUALITY;
50 /** If enabled is true the mask is applied, if false it will not. */
51 enabled: boolean;
52 /** Color mask. */
53 colorMask: COLOR_MASK_BITS;
54 /**
55 * The sprite mask filter wrapped in an array.
56 * @private
57 */
58 _filters: ISpriteMaskFilter[];
59 /**
60 * Stencil counter above the mask in stack
61 * @private
62 */
63 _stencilCounter: number;
64 /**
65 * Scissor counter above the mask in stack
66 * @private
67 */
68 _scissorCounter: number;
69 /**
70 * Scissor operation above the mask in stack.
71 * Null if _scissorCounter is zero, rectangle instance if positive.
72 * @private
73 */
74 _scissorRect: Rectangle;
75 /**
76 * pre-computed scissor rect
77 * does become _scissorRect when mask is actually pushed
78 * @private
79 */
80 _scissorRectLocal: Rectangle;
81 /**
82 * pre-computed color mask
83 * @private
84 */
85 _colorMask: number;
86 /**
87 * Targeted element. Temporary variable set by MaskSystem
88 * @member {PIXI.DisplayObject}
89 * @private
90 */
91 _target: IMaskTarget;
92 /**
93 * Create MaskData
94 * @param {PIXI.DisplayObject} [maskObject=null] - object that describes the mask
95 */
96 constructor(maskObject?: IMaskTarget);
97 /**
98 * The sprite mask filter.
99 * If set to `null`, the default sprite mask filter is used.
100 * @default null
101 */
102 get filter(): ISpriteMaskFilter;
103 set filter(value: ISpriteMaskFilter);
104 /** Resets the mask data after popMask(). */
105 reset(): void;
106 /**
107 * Copies counters from maskData above, called from pushMask().
108 * @param maskAbove
109 */
110 copyCountersOrReset(maskAbove?: MaskData): void;
111}