Applies an array of Filters to a single Object with several limitations.

If all filters in the Group are disabled - Filter.enable will report false even if Group itself is enabled.
Filter.boundsExtend and Filter.autoBounds are automatically managed by Group instance. boundsExtend is a sum of all filter extends and autoBounds enabled only when all filters have it enabled.

When `autoBounds` is disabled, bounds are a result of calling `Filter.getBounds` on children filters, but most likely
will contain only the bounds filled by last filter, because `Object.getBounds` clears the `Bounds` instance.

Ensure that all relevant filters are added to Group prior binding it to any Object. Behavior is undefined otherwise.

Constructor

new(?filters:Array<Filter>)

Create a new filter Group.

Parameters:

filters

Optional list of the Filters bound to the group.

Methods

add(f:Filter):Void

Adds new Filter f to the Group.
Due to implementation specifics, if Group was already bound, new filters won't receive a bind call.

remove(f:Filter):Bool

Removes the Filter f from the Group. Due to implementation specifics, removed filter won't receive an unbind call even if it was bound previously.

Inherited Variables

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(1)resolutionScale:Float = 1

Custom rendering resolution scaling of the filter.

Stacks with additional scaling from Filter.useResolutionScaling if enabled.

@:value(false)smooth:Bool = false

When enabled, filters on not Object which are not Drawable will use bilinear filtering when displayed and some filter will also use bilinear filtering on intermediate textures.

@:value(defaultUseScreenResolution)useScreenResolution:Bool = defaultUseScreenResolution

Use the screen resolution to upscale/downscale the filter rendering resolution.

Stacks with additional scaling from Filter.resolutionScale if enabled.

Inherited Methods