API reference

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

C

classBitmapText

@codexo/exojs / rendering / stable

Text node that renders from an offline-generated atlas — either a BMFont (AngelCode .fnt + .png) or an MSDF atlas (msdf-atlas-gen + .json). The atlas is pre-built so there is no runtime Canvas 2D rasterisation. All layout features (alignment, word-wrap, justify, leading, breakWords, whiteSpace, letterSpacing) and kerning pairs from the descriptor are fully supported. Outline effects are handled as shader uniforms — no extra draw calls, no atlas rebuilds. ## Usage ```ts const font = await loader.load('fonts/ui.fnt'); // BmFont, no setup needed const label = new BitmapText('Score: 0', font, { msdf: true }); scene.addChild(label); label.text = 'Score: 42'; // instant geometry rebuild label.style.align = 'center'; // immediate rebuild ```

36
props
36
methods
9
events
Import
import { BitmapText } from '@codexo/exojs'

Text node that renders from an offline-generated atlas — either a BMFont (AngelCode .fnt + .png) or an MSDF atlas (msdf-atlas-gen + .json).

The atlas is pre-built so there is no runtime Canvas 2D rasterisation. All layout features (alignment, word-wrap, justify, leading, breakWords, whiteSpace, letterSpacing) and kerning pairs from the descriptor are fully supported. Outline effects are handled as shader uniforms — no extra draw calls, no atlas rebuilds.

Usage

```ts const font = await loader.load('fonts/ui.fnt'); // BmFont, no setup needed const label = new BitmapText('Score: 0', font, { msdf: true }); scene.addChild(label);

label.text = 'Score: 42'; // instant geometry rebuild label.style.align = 'center'; // immediate rebuild ```

Constructors 1
new(text: string, font: BmFont, options: BitmapTextOptions): BitmapText
Methods 36
_invalidateBoundsCascade(): void
_invalidateChildrenTransform(): void
_invalidateSubtreeTransform(): void
addFilter(filter: Filter): this
clearFilters(): this
collidesWith(target: Collidable): CollisionResponse | null
contains(x: number, y: number): boolean
destroy(): void
getBounds(): Rectangle
getGlobalTransform(): Matrix
getLocalBounds(): Rectangle
getNormals(): Vector[]
getTransform(): Matrix
intersectsWith(target: Collidable): boolean
invalidateCache(): this
inView(view: View): boolean
move(x: number, y: number): this
project(axis: Vector, result: Interval): Interval
removeFilter(filter: Filter): this
render(backend: RenderBackend): this
rotate(degrees: number): this
setAnchor(x: number, y: number): this
setBlendMode(blendMode: BlendModes): this
setFont(font: BmFont): void
setOrigin(x: number, y: number): this
setPosition(x: number, y: number): this
setRotation(degrees: number): this
setScale(x: number, y: number): this
setSkew(x: number, y: number): this
setTint(color: Color): this
syncDirty(): void
update(_dt: number): void
updateBounds(): this
updateParentTransform(): this
updateTransform(): this
setInternalSpriteFactory(factory: object | null): void
Properties 36
clip: boolean
clipShape: Rectangle | Geometry | null
collisionType: CollisionType
cursor: string | null
draggable: boolean
flags: Flags<SceneNodeTransformFlags>
preserveDrawOrder: boolean
anchor: ObservableVector
blendMode: BlendModes
cacheAsBitmap: boolean
cullable: boolean
filters: readonly Filter[]
fontScale: number
interactive: boolean
isAlignedBox: boolean
layout: LayoutOptions
mask: MaskSource
msdf: boolean
origin: ObservableVector
pageQuads: readonly TextPageQuads[]
parent: Container | null
pixelSnapMode: PixelSnapMode
position: ObservableVector
rotation: number
scale: ObservableVector
skewX: number
skewY: number
style: TextStyle
text: string
textBounds: TextSize
textures: readonly Texture[]
tint: Color
visible: boolean
x: number
y: number
zIndex: number
Events 9
onDrag: Signal<[InteractionEvent]>
onDragEnd: Signal<[InteractionEvent]>
onDragStart: Signal<[InteractionEvent]>
onPointerDown: Signal<[InteractionEvent]>
onPointerMove: Signal<[InteractionEvent]>
onPointerOut: Signal<[InteractionEvent]>
onPointerOver: Signal<[InteractionEvent]>
onPointerTap: Signal<[InteractionEvent]>
onPointerUp: Signal<[InteractionEvent]>
Source