API reference

Every public class, method, and event in @codexo/exojs. Generated from source.

C

classRenderPass

@codexo/exojs / rendering / stable

One high-level phase of a frame. Subclass and implement execute, or use a stock subclass (RenderNodePass, CallbackRenderPass, RenderPipeline). `enabled`, `label`, resize, and destroy are part of the contract so every pass - including resource-owning effect passes - composes uniformly inside a RenderPipeline. **Exclusive ownership:** a `RenderPass` belongs to at most one RenderPipeline at a time (tracked via an internal slot). `removePass`/`clear`/`destroy` release it. This is what makes add-time cycle detection and safe cascade-destroy possible, and prevents a pass's `enabled`/`resize`/`destroy` state from being shared.

2
props
3
methods
0
events
Import
import { RenderPass } from '@codexo/exojs'

One high-level phase of a frame. Subclass and implement execute, or use a stock subclass (RenderNodePass, CallbackRenderPass, RenderPipeline).

`enabled`, `label`, resize, and destroy are part of the contract so every pass - including resource-owning effect passes - composes uniformly inside a RenderPipeline.

**Exclusive ownership:** a `RenderPass` belongs to at most one RenderPipeline at a time (tracked via an internal slot). `removePass`/`clear`/`destroy` release it. This is what makes add-time cycle detection and safe cascade-destroy possible, and prevents a pass's `enabled`/`resize`/`destroy` state from being shared.

Constructors1
Methods3
destroy(): void
Release resources this pass allocated internally. No-op by default; idempotent. Never frees injected scene nodes or caller-provided RenderTextures - those are owned by the caller / scene.
Run this pass against context. The active render target is the canvas unless a parent redirected it. Called directly, this runs **regardless of enabled** - enabled is evaluated by the containing RenderPipeline, not self-checked here. Subclasses must not begin execute with if (!this.enabled).
resize(_width: number, _height: number): void
React to a surface / target size change. No-op by default; size-dependent passes (effects with scratch targets) override. Called by RenderPipeline.resize, which the caller wires to app.onResize.
Properties2
enabled: boolean
When false, the containing RenderPipeline skips this pass during execute. Default true. Evaluated by the parent - a direct execute call runs the pass regardless.
label: string
Debug label (inspector / logging). Defaults to the constructor name. Display only - not an identity.
Source