API reference
Every public class, method, and event in @codexo/exojs. Generated from source.
classBlurFilter
Gaussian blur Filter, run as two separable passes. The input is swept along X into a scratch target, then that scratch is swept along Y into the output, each sweep sampling a Gaussian kernel of strength standard deviations in ONE draw. Because the two sweeps are chained rather than summed, the effective 2D kernel is their product - a real isotropic blur that reaches diagonally as well as along the axes. (Summing the two sweeps into one target instead, which is what this filter used to do, produces a cross: a pixel diagonally off a corner is touched by neither sweep and stays black at any strength.) ```ts // The same blur as CSS `filter: blur(4px)`. subtree.filters = [new BlurFilter({ strength: 4 })]; ``` The kernel is truncated at three standard deviations, so the filter reaches `strength * 3` logical units outside its input on every edge and the tap count follows the strength without the caller choosing one. Runs on a ShaderFilter carrying both a GLSL and a WGSL source, so it works on either backend without the caller choosing one.
import { BlurFilter } from '@codexo/exojs'Gaussian blur Filter, run as two separable passes.
The input is swept along X into a scratch target, then that scratch is swept along Y into the output, each sweep sampling a Gaussian kernel of strength standard deviations in ONE draw. Because the two sweeps are chained rather than summed, the effective 2D kernel is their product - a real isotropic blur that reaches diagonally as well as along the axes.
(Summing the two sweeps into one target instead, which is what this filter used to do, produces a cross: a pixel diagonally off a corner is touched by neither sweep and stays black at any strength.)
```ts // The same blur as CSS `filter: blur(4px)`. subtree.filters = [new BlurFilter({ strength: 4 })]; ```
The kernel is truncated at three standard deviations, so the filter reaches `strength * 3` logical units outside its input on every edge and the tap count follows the strength without the caller choosing one.
Runs on a ShaderFilter carrying both a GLSL and a WGSL source, so it works on either backend without the caller choosing one.
new(options: BlurFilterOptionsConstruction-time options for a BlurFilter.): BlurFilterapply(backend: RenderBackend, input: RenderTextureAn off-screen render target that can also be sampled as a texture. Combines RenderTarget (framebuffer attachment) with the sampler parameters of a Texture (sca…, output: RenderTextureAn off-screen render target that can also be sampled as a texture. Combines RenderTarget (framebuffer attachment) with the sampler parameters of a Texture (sca…, resolution: number): voiddestroy(): voidgetOutputBounds(input: ReadonlyRectangleRead-only view of a Rectangle: every accessor and non-mutating query a rectangle offers, with none of its writers. Returned by APIs that hand out a LIVE intern…, output: RectangleMutable axis-aligned rectangle defined by a top-left origin `(x, y)` and dimensions `(width, height)`. Implements Collidable with full SAT collision response f…): voidinvalidate(): voidresolution: TargetResolutionquality: numberstrength: number