API reference

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

C

classHTMLText

@codexo/exojs / rendering / stable

Text node that renders arbitrary HTML+CSS into a canvas texture via an SVG `<foreignObject>` pass and displays the result as a textured quad. Full CSS typography and rich markup are supported. External resources (`<img src>`, `background-image: url(...)`) are **blocked** by browsers when loading SVG blob-URIs — inline those as base-64 data URIs. Custom web fonts must be registered with addFont before use; pass the raw font bytes (from BinaryAsset or a plain `fetch`): ```ts const bytes = await loader.load(BinaryAsset, 'roboto.woff2'); htmlText.addFont('Roboto', bytes, 'woff2'); ``` The HTML must be valid XHTML (tags closed, `&amp;` for `&`, etc.) because it is embedded inside an XML document.

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

Text node that renders arbitrary HTML+CSS into a canvas texture via an SVG `\<foreignObject>` pass and displays the result as a textured quad.

Full CSS typography and rich markup are supported. External resources (`\<img src>`, `background-image: url(...)`) are **blocked** by browsers when loading SVG blob-URIs — inline those as base-64 data URIs.

Custom web fonts must be registered with addFont before use; pass the raw font bytes (from BinaryAsset or a plain `fetch`):

```ts const bytes = await loader.load(BinaryAsset, 'roboto.woff2'); htmlText.addFont('Roboto', bytes, 'woff2'); ```

The HTML must be valid XHTML (tags closed, `&amp;` for `&`, etc.) because it is embedded inside an XML document.

Constructors 1
new(html: string, options: HTMLTextOptions): HTMLText
Methods 43
_invalidateBoundsCascade(): void
_invalidateChildrenTransform(): void
_invalidateSubtreeTransform(): void
addChild(children: RenderNode[]): this
addChildAt(child: RenderNode, index: number): this
addFilter(filter: Filter): this
addFont(family: string, data: ArrayBuffer, format: FontFormat): this
clearFilters(): this
collidesWith(target: Collidable): CollisionResponse | null
contains(x: number, y: number): boolean
destroy(): void
getBounds(): Rectangle
getChildAt(index: number): RenderNode
getChildIndex(child: RenderNode): number
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
removeChild(child: RenderNode): this
removeChildAt(index: number): this
removeChildren(begin: number, end: number): this
removeFilter(filter: Filter): this
removeFont(family: string): this
render(backend: RenderBackend): this
resize(width: number, height: number): this
rotate(degrees: number): this
setAnchor(x: number, y: number): this
setChildIndex(child: RenderNode, index: number): this
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
swapChildren(firstChild: RenderNode, secondChild: RenderNode): this
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
bottom: number
cacheAsBitmap: boolean
children: RenderNode[]
css: string
cullable: boolean
filters: readonly Filter[]
height: number
html: string
interactive: boolean
isAlignedBox: boolean
left: number
mask: MaskSource
origin: ObservableVector
parent: Container | null
position: ObservableVector
ready: Promise<void>
resolution: number
right: number
rotation: number
scale: ObservableVector
skewX: number
skewY: number
top: number
visible: boolean
width: number
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