API

Interface SpriteRenderer

A SpriteRenderer — pure data, plugs into engine._renderingContexts. Inherits clearColor, _drawCallsPre, _update, _record from RenderingContext; adds only its discriminator tag and the renderer-owned layer list.

Lifecycle. A SpriteRenderer is independent of any SceneContext — it is registered directly on the engine, opens its own sampleCount=1 swapchain pass, and must be disposed by the caller. Two patterns:

  1. Standalone (no scene, or one or more renderers alongside a scene): registerSpriteRenderer after createSpriteRenderer, disposeSpriteRenderer on shutdown. Caller owns the lifetime end-to-end.
  2. HUD-on-3D (renderer overlaid on a scene): same register step, then tie disposal to the scene with onSceneDispose(scene, () => disposeSpriteRenderer(hud)) — disposeScene then cleans it up automatically. Register the renderer after registerScene so it draws on top.

Scene 52 demonstrates pattern (2). For depth-hosted sprites that should sort against 3D meshes, use addDepthHostedSpriteLayer(scene, layer) with a depth-enabled Sprite2DLayer instead — that route is fully owned by the scene.

interface SpriteRenderer {
    clearColor: GPUColorDict;
    layers: readonly Sprite2DLayer[];
}

Hierarchy (View Summary)

Index
clearColor: GPUColorDict

Clear color used when this context is the first active one in a frame.

layers: readonly Sprite2DLayer[]

Renderer-owned layer membership. Use addSpriteRendererLayer / removeSpriteRendererLayer to mutate.