Filters
Visual effects applied to a node's rendered output.
ts
import { Filter, DrawFilter, BlurFilter, ColorMatrixFilter, OutlineFilter, PixelPerfectOutlineFilter, PixelPerfectInlineFilter, PaletteFilter, CustomShaderFilter, CustomDrawShaderFilter } from "willow";Filter
ts
class FilterBase class for visual effects applied to a node's rendered output.
Filter: properties
| Member | Description |
|---|---|
readonly padding: int | Extra padding pixels this filter needs around the node's bounds. Defaults to 0. |
DrawFilter
ts
class DrawFilter extends FilterExtends Filter.
Base class for per-pixel filters that can be applied at draw time without an offscreen render target.
BlurFilter
ts
class BlurFilter extends FilterExtends Filter.
Separable gaussian-approximating blur filter.
BlurFilter: constructors
ts
new BlurFilter(radius?: int)Creates a new blur filter with the given radius (in pixels).
BlurFilter: properties
| Member | Description |
|---|---|
radius: int | Blur radius in pixels. Non-negative. |
BlurFilter: static methods
| Member | Description |
|---|---|
static create(radius?: int): BlurFilter | Creates a new blur filter with the given radius (in pixels). |
ColorMatrixFilter
ts
class ColorMatrixFilter extends DrawFilterExtends DrawFilter.
4x5 color matrix transformation filter.
ColorMatrixFilter: constructors
ts
new ColorMatrixFilter()Creates a new color matrix filter initialized to the identity transform.
ColorMatrixFilter: methods
| Member | Description |
|---|---|
setIdentity(): ColorMatrixFilter | Resets the matrix to the identity transform. |
setGrayscale(): ColorMatrixFilter | Sets full grayscale transformation (equivalent to setting saturation to 0). |
setInvert(): ColorMatrixFilter | Inverts the RGB color channels. |
setBrightness(b: float): ColorMatrixFilter | Adjusts brightness by offset in [-1.0, 1.0]. |
setContrast(c: float): ColorMatrixFilter | Adjusts contrast: 1.0 is normal, 0.0 is gray, >1.0 is higher contrast. |
setSaturation(s: float): ColorMatrixFilter | Adjusts saturation: 1.0 is normal, 0.0 is grayscale. |
setHueRotation(radians: float): ColorMatrixFilter | Rotates hue by the given angle in radians. |
OutlineFilter
ts
class OutlineFilter extends FilterExtends Filter.
Multi-pixel outline filter via offset sampling.
OutlineFilter: constructors
ts
new OutlineFilter(thickness: int, color: Color)Creates a new outline filter with the given thickness and tint colour.
OutlineFilter: properties
| Member | Description |
|---|---|
thickness: int | Outline thickness in pixels. |
color: Color | Outline tint colour. |
OutlineFilter: static methods
| Member | Description |
|---|---|
static create(thickness: int, color: Color): OutlineFilter | Creates a new outline filter with the given thickness and tint colour. |
PixelPerfectOutlineFilter
ts
class PixelPerfectOutlineFilter extends DrawFilterExtends DrawFilter.
1-pixel cardinal neighbor outline filter.
PixelPerfectOutlineFilter: constructors
ts
new PixelPerfectOutlineFilter(color: Color)Creates a new pixel-perfect outline filter with the given tint colour.
PixelPerfectOutlineFilter: properties
| Member | Description |
|---|---|
color: Color | Outline tint colour. |
PixelPerfectOutlineFilter: static methods
| Member | Description |
|---|---|
static create(color: Color): PixelPerfectOutlineFilter | Creates a new pixel-perfect outline filter with the given tint colour. |
PixelPerfectInlineFilter
ts
class PixelPerfectInlineFilter extends DrawFilterExtends DrawFilter.
1-pixel edge recoloring filter for pixels bordering transparent areas.
PixelPerfectInlineFilter: constructors
ts
new PixelPerfectInlineFilter(color: Color)Creates a new pixel-perfect inline filter with the given colour.
PixelPerfectInlineFilter: properties
| Member | Description |
|---|---|
color: Color | Inset border colour. |
PixelPerfectInlineFilter: static methods
| Member | Description |
|---|---|
static create(color: Color): PixelPerfectInlineFilter | Creates a new pixel-perfect inline filter with the given colour. |
PaletteFilter
ts
class PaletteFilter extends DrawFilterExtends DrawFilter.
Luminance-based palette remapping filter.
PaletteFilter: constructors
ts
new PaletteFilter()Creates a new palette filter initialized with a grayscale palette.
PaletteFilter: properties
| Member | Description |
|---|---|
cycleOffset: float | Cycle offset for animated palette shifting. |
PaletteFilter: methods
| Member | Description |
|---|---|
setPalette(colors: Color[]): void | Sets the 256-entry palette colors. |
CustomShaderFilter
ts
class CustomShaderFilter extends FilterExtends Filter.
Spatial filter driven by a user-provided prebuilt shader. The shader is a bgfx fragment binary built ahead of time with shaderc; there is no runtime shader compiler. The source image is sampler 0; named uniforms land in u_params1, sorted by name, each on a vec4 boundary.
CustomShaderFilter: constructors
ts
new CustomShaderFilter(shaderPath: string, padding?: int)Loads <shaderPath>.<backend>.bin (spirv, glsl, essl, metal or dxbc, matching the running renderer) from the project assets. Raises an AssetError when the file is missing, is not a bgfx fragment shader, or was built for another backend.
CustomShaderFilter: methods
| Member | Description |
|---|---|
setUniform(name: string, value: float | float[]): CustomShaderFilter | Sets a named uniform to a float or an array of floats; returns this filter. |
CustomShaderFilter: static methods
| Member | Description |
|---|---|
static create(shaderPath: string, padding?: int): CustomShaderFilter | Same as the constructor. |
CustomDrawShaderFilter
ts
class CustomDrawShaderFilter extends DrawFilterExtends DrawFilter.
Per-pixel filter driven by a user-provided prebuilt shader. Same shader format and uniform packing as CustomShaderFilter; the shader must not read neighbouring pixels.
CustomDrawShaderFilter: constructors
ts
new CustomDrawShaderFilter(shaderPath: string)Loads <shaderPath>.<backend>.bin from the project assets. Raises an AssetError when the file is missing, is not a bgfx fragment shader, or was built for another backend.
CustomDrawShaderFilter: methods
| Member | Description |
|---|---|
setUniform(name: string, value: float | float[]): CustomDrawShaderFilter | Sets a named uniform to a float or an array of floats; returns this filter. |
CustomDrawShaderFilter: static methods
| Member | Description |
|---|---|
static create(shaderPath: string): CustomDrawShaderFilter | Same as the constructor. |