Rezi
    Preparing search index...

    Interface DrawlistBuilderV1

    ZRDL v1 drawlist builder interface.

    Usage pattern:

    1. Call drawing commands (clear, fillRect, drawText, pushClip, popClip)
    2. Call build() to produce the final ZRDL binary
    3. Call reset() to reuse the builder for the next frame

    Error handling: Commands record errors internally; build() returns failure if any command failed. This allows batching commands without per-call checks.

    Ownership: The Uint8Array returned by build() is owned by the caller.

    interface DrawlistBuilderV1 {
        addBlob(bytes: Uint8Array): number | null;
        addTextRunBlob(
            segments: readonly Readonly<
                {
                    style?: Readonly<
                        {
                            bg?: Readonly<{ b: number; g: number; r: number }>;
                            bold?: boolean;
                            dim?: boolean;
                            fg?: Readonly<{ b: number; g: number; r: number }>;
                            inverse?: boolean;
                            italic?: boolean;
                            underline?: boolean;
                        },
                    >;
                    text: string;
                },
            >[],
        ): number
        | null;
        build(): DrawlistBuildResult;
        clear(): void;
        clearTo(
            cols: number,
            rows: number,
            style?: Readonly<
                {
                    bg?: Readonly<{ b: number; g: number; r: number }>;
                    bold?: boolean;
                    dim?: boolean;
                    fg?: Readonly<{ b: number; g: number; r: number }>;
                    inverse?: boolean;
                    italic?: boolean;
                    underline?: boolean;
                },
            >,
        ): void;
        drawText(
            x: number,
            y: number,
            text: string,
            style?: Readonly<
                {
                    bg?: Readonly<{ b: number; g: number; r: number }>;
                    bold?: boolean;
                    dim?: boolean;
                    fg?: Readonly<{ b: number; g: number; r: number }>;
                    inverse?: boolean;
                    italic?: boolean;
                    underline?: boolean;
                },
            >,
        ): void;
        drawTextRun(x: number, y: number, blobIndex: number): void;
        fillRect(
            x: number,
            y: number,
            w: number,
            h: number,
            style?: Readonly<
                {
                    bg?: Readonly<{ b: number; g: number; r: number }>;
                    bold?: boolean;
                    dim?: boolean;
                    fg?: Readonly<{ b: number; g: number; r: number }>;
                    inverse?: boolean;
                    italic?: boolean;
                    underline?: boolean;
                },
            >,
        ): void;
        popClip(): void;
        pushClip(x: number, y: number, w: number, h: number): void;
        reset(): void;
    }

    Hierarchy (View Summary)

    Index

    Methods

    • Append a blob payload to the blob table and return its index.

      Notes:

      • The blob span length MUST be 4-byte aligned.
      • Blob content is not deduplicated; callers may cache returned indices.

      Parameters

      • bytes: Uint8Array

      Returns number | null

    • Convenience helper that encodes a ZRDL v1 DRAW_TEXT_RUN blob payload from segments and appends it via addBlob().

      Parameters

      • segments: readonly Readonly<
            {
                style?: Readonly<
                    {
                        bg?: Readonly<{ b: number; g: number; r: number }>;
                        bold?: boolean;
                        dim?: boolean;
                        fg?: Readonly<{ b: number; g: number; r: number }>;
                        inverse?: boolean;
                        italic?: boolean;
                        underline?: boolean;
                    },
                >;
                text: string;
            },
        >[]

      Returns number | null

    • Clear framebuffer and fill the viewport with a style.

      Why: ZRDL v1 CLEAR carries no style payload. This helper provides a deterministic "clear with background" that works in both raw and widget render modes by emitting CLEAR + FILL_RECT.

      Parameters

      • cols: number
      • rows: number
      • Optionalstyle: Readonly<
            {
                bg?: Readonly<{ b: number; g: number; r: number }>;
                bold?: boolean;
                dim?: boolean;
                fg?: Readonly<{ b: number; g: number; r: number }>;
                inverse?: boolean;
                italic?: boolean;
                underline?: boolean;
            },
        >

      Returns void

    • Draw text at (x,y). Strings are interned and deduplicated. Emits OP_DRAW_TEXT (opcode 3).

      Parameters

      • x: number
      • y: number
      • text: string
      • Optionalstyle: Readonly<
            {
                bg?: Readonly<{ b: number; g: number; r: number }>;
                bold?: boolean;
                dim?: boolean;
                fg?: Readonly<{ b: number; g: number; r: number }>;
                inverse?: boolean;
                italic?: boolean;
                underline?: boolean;
            },
        >

      Returns void

    • Draw a pre-measured text run blob at (x,y). Emits OP_DRAW_TEXT_RUN (opcode 6).

      Parameters

      • x: number
      • y: number
      • blobIndex: number

      Returns void

    • Fill rectangle at (x,y) with size (w,h). Emits OP_FILL_RECT (opcode 2).

      Parameters

      • x: number
      • y: number
      • w: number
      • h: number
      • Optionalstyle: Readonly<
            {
                bg?: Readonly<{ b: number; g: number; r: number }>;
                bold?: boolean;
                dim?: boolean;
                fg?: Readonly<{ b: number; g: number; r: number }>;
                inverse?: boolean;
                italic?: boolean;
                underline?: boolean;
            },
        >

      Returns void

    • Push clipping rectangle onto clip stack. Emits OP_PUSH_CLIP (opcode 4).

      Parameters

      • x: number
      • y: number
      • w: number
      • h: number

      Returns void