class Filter
package h2d.filter
extended by AbstractMask, Blur, ColorMatrix, Displacement, Group, Nothing, Outline, Shader, ToneMapping
The base filter class, you can extend it in order to define your own filters, although ShaderFilter will be the most straightforward way to define simple custom filter.
Keep in mind that filters use internal Object resolution to render its content, hence scaling of the filtered object would not increase the rendering resolution.
For example, 20x20px Bitmap
with scale = 2
will render onto 20x20 filter texture if filter is attached to it directly,
but if filter is attached to the parent of that bitmap, filter will render 40x40 texture.
Another thing to be aware of, is that Scene.scaleMode
does not affect filter resolution either,
and upscaling contents with scaleMode
would not upscale the resolution of filtered content.
Filters limit their render area dictated by bound object boundaries, Filter.autoBounds
and Filter.boundsExtend
variables and Filter.getBounds
method.
See their respective docs for details.
For optimization purposes, rendering boundaries are clipped by scene viewport and nothing will be rendered offscreen.
Static variables
Variables
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.
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.
resolutionScale:Float = 1
Custom rendering resolution scaling of the filter.
Stacks with additional scaling from Filter.useResolutionScaling
if enabled.
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.
useScreenResolution:Bool = defaultUseScreenResolution
Use the screen resolution to upscale/downscale the filter rendering resolution.
Stacks with additional scaling from Filter.resolutionScale
if enabled.
Methods
bind(s:Object):Void
Sent when filter is bound to an Object s
.
If Object was not yet allocated, method will be called when it's added to allocated Scene.
getBounds(s:Object, bounds:Bounds, scale:Point):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
are still applied, causing rendering area to shrink.
Parameters:
s | The Object instance to which the filter is applied. |
---|---|
bounds | The Bounds instance which should be populated by the filter boundaries. |
scale | Contains the desired rendering resolution scaling which should be accounted when constructing the bounds. Can be edited to override provided scale values. |