PIXI.MaskSystem
class MaskSystem implements PIXI.ISystem
System plugin to the renderer to manage masks.
There are three built-in types of masking: Scissor Masking: Scissor masking discards pixels that are outside of a rectangle called the scissor box. It is the most performant as the scissor test is inexpensive. However, it can only be used when the mask is rectangular. Stencil Masking: Stencil masking discards pixels that don't overlap with the pixels rendered into the stencil buffer. It is the next fastest option as it does not require rendering into a separate framebuffer. However, it does cause the mask to be rendered twice for each masking operation; hence, minimize the rendering cost of your masks. Sprite Mask Filtering: Sprite mask filtering discards pixels based on the red channel of the sprite-mask's texture. (Generally, the masking texture is grayscale). Using advanced techniques, you might be able to embed this type of masking in a custom shader - and hence, bypassing the masking system fully for performance wins.
The best type of masking is auto-detected when you push
one. To use scissor masking, you must pass in a Graphics
object with just a rectangle drawn.
Mask Stacks
In the scene graph, masks can be applied recursively, i.e. a mask can be applied during a masking operation. The mask stack stores the currently applied masks in order. Each PIXI.BaseRenderTexture holds its own mask stack, i.e. when you switch render-textures, the old masks only applied when you switch back to rendering to the old render-target.
Constructor
new PIXI.MaskSystem(renderer: PIXI.Renderer) → {}
Name | Type | Description |
---|---|---|
renderer | PIXI.Renderer |
The renderer this System works for. |
Summary
Properties from MaskSystem
boolean |
|
number |
|
Array<PIXI.SpriteMaskFilter[]> |
Pool of used sprite mask filters. |
Methods from MaskSystem
void |
|
void |
Removes the last mask from the mask stack and doesn't return it. |
void |
|
void |
|
void |
Enables the mask and appends it to the current mask stack. |
void |
|
void |
|
void |
|
Public Properties
Protected Properties
protected alphaMaskIndex: number = 0
Current index of alpha mask pool.
protected alphaMaskPool: Array<PIXI.SpriteMaskFilter[]>
Pool of used sprite mask filters.
Public Methods
detect(maskData: PIXI.MaskData) → {void}
Sets type of MaskData based on its maskObject.
Name | Type | Description |
---|---|---|
maskData | PIXI.MaskData |
Type | Description |
---|---|
void |
pop(target: PIXI.IMaskTarget) → {void}
Removes the last mask from the mask stack and doesn't return it.
NOTE: The batch renderer should be flushed beforehand to render the masked contents before the mask is removed.
Name | Type | Description |
---|---|---|
target | PIXI.IMaskTarget |
Display Object to pop the mask from |
Type | Description |
---|---|
void |
popColorMask(maskData: PIXI.MaskData) → {void}
Pops the color mask.
Name | Type | Description |
---|---|---|
maskData | PIXI.MaskData |
The mask data |
Type | Description |
---|---|
void |
popSpriteMask(maskData: PIXI.MaskData) → {void}
Removes the last filter from the filter stack and doesn't return it.
Name | Type | Description |
---|---|---|
maskData | PIXI.MaskData |
Sprite to be used as the mask. |
Type | Description |
---|---|
void |
push(target: PIXI.DisplayObject, maskDataOrTarget: PIXI.MaskData | PIXI.Sprite | PIXI.Graphics | PIXI.DisplayObject) → {void}
Enables the mask and appends it to the current mask stack.
NOTE: The batch renderer should be flushed beforehand to prevent pending renders from being masked.
Name | Type | Description |
---|---|---|
target | PIXI.DisplayObject |
Display Object to push the mask to |
maskDataOrTarget | PIXI.MaskData | PIXI.Sprite | PIXI.Graphics | PIXI.DisplayObject |
The masking data. |
Type | Description |
---|---|
void |
pushColorMask(maskData: PIXI.MaskData) → {void}
Pushes the color mask.
Name | Type | Description |
---|---|---|
maskData | PIXI.MaskData |
The mask data |
Type | Description |
---|---|
void |
pushSpriteMask(maskData: PIXI.MaskData) → {void}
Applies the Mask and adds it to the current filter stack.
Name | Type | Description |
---|---|---|
maskData | PIXI.MaskData |
Sprite to be used as the mask. |
Type | Description |
---|---|
void |
setMaskStack(maskStack: Array<PIXI.MaskData>) → {void}
Changes the mask stack that is used by this System.
Name | Type | Description |
---|---|---|
maskStack | Array<PIXI.MaskData> |
The mask stack |
Type | Description |
---|---|
void |