Performs an arbitrary shape masking of the filtered Object.

See also:


@:value({ smoothAlpha : false, maskVisible : false })new(mask:Object, maskVisible:Bool = false, smoothAlpha:Bool = false)

Create new Mask filter.



An Object that will be used for masking. See AbstractMask.mask for limitations.


When enabled, masking Object will be visible. Hidden otherwise.


Enables masking Object alpha merging. Otherwise causes unsmoothed masking of non-zero alpha areas.



Enables masking Object alpha merging. Otherwise causes unsmoothed masking of non-zero alpha areas.


Inherited Variables

Defined by AbstractMask


The Object contents of which serve as a mask to the filtered Object.

Masking Objects have following limitations: It cannot be a parent of the filtered Object. It should not contain any filters. It should be present in the object tree and precede the Object it masks in the rendering order (rendered before it). Same masking Object cannot be used by multiple mask filters.


When enabled, masking Object will be visible to the user. Hidden otherwise. ( default : false )

Defined by Filter

@:value(true)autoBounds:Bool = true

When enabled, rendering bounds of the filter will be expanded by Filter.boundsExtend in all directions. Otherwise filter should provide custom bounds through Filter.getBounds call.
Default : true.

@:value(0.)boundsExtend:Float = 0.

Rendering texture boundaries extent. Increases the rendering area by twice the Filter.boundsExtend value.
Automatically applied to object bounds when autoBounds = true or Filter.getBounds is not overridden.
Does not affect boundaries when autoBounds = true and boundsExtend is less than 0.

@:value(true)@:isVarenable:Bool = true

When filter is disabled, attached object will render as usual.

@:value(false)smooth:Bool = false

When enabled, some filters will use bilinear filtering on temporary textures.
Does not affect the majority of filters.

See also:

Inherited Methods

Defined by AbstractMask

Defined by Filter

getBounds(s:Object, bounds:Bounds):Void

Method should populate bounds with rendering boundaries of the Filter for Object s. Initial bounds contents are undefined and it's recommended to either clear them or call s.getBounds(s, bounds). Only used when Filter.autoBounds is false. By default uses given Object bounds and extends them with Filter.boundsExtend. Compared to autoBounds = true, negative boundsExtend is still applied, causing rendering area to shrink.