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.



Create a new filter Group.



Optional list of the Filters bound to the group.



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


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(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