Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...
    RenderReason:
        | "wake"
        | "event"
        | "once"
        | "camera"
        | "continuous"
        | "idleRestore"
        | "audit"
        | `cb:${string}`

    Why a frame was rendered — the render.byReason.<reason> counter it lands in. Exactly one per render, taken in this precedence:

    • wake — AnimationController.startAnimation (any input or state handler that wakes the loop), event — AnimationController.requestRender (a commit, a resize, a sort landing …), once — AnimationController.renderOnce; whichever marked the frame dirty FIRST since the last render;
    • cb:<id> — a per-frame callback returned true (it changed what is drawn);
    • camera — the view signature (camera matrices, drawing-buffer size) differs from the last rendered frame's;
    • continuous — something needs every frame drawn (cinematic detector noise, a real-time recording, ?renderAlways);
    • idleRestore — the idle pause's one ceiling-DPR frame;
    • audit — a ?renderAudit frame the scheduler would have skipped.