The LCARS theme grows two new widgets: lcars_progress (right-justified fill bar) and lcars_data_strip (N-segment status readout). A capstone demo test combines all primitives into a full LCARS panel scene. GPU-first with Pi 3 software-2D floor on both. LCARS-PROG-PASS + LCARS-DEMO-PASS x86. (sigil-video 64ec1fb, 2264795)
lcars_progress
Commit 64ec1fb. A right-justified fill bar with a black track. value/max drives fill width; the fill grows from right — unlike conventional progress bars, the bar fills toward the left margin, following the LCARS convention used across all Trek-era displays.
Signature: lcars_progress(x, y, w, h, value, max, color)
GPU path: gpu_submit rect-fill (CAP_ACCEL; Apple Silicon pending). Software-2D floor: fill_span rows via lcars_fill_rect — functional on Pi 3 with no acceleration.
lcars_data_strip
Commit 64ec1fb. N equal-width segments separated by 1px gaps, each an independent progress bar — the classic LCARS system-status readout used for multi-channel monitoring. Each segment takes its own value/max pair from a pointer array, making the strip composable over any N channels without additional API surface.
Signature: lcars_data_strip(x, y, w, h, n, values_ptr, max, color)
Test: lcars_progress + lcars_data_strip
Single bar 75% fill — fill_start=ok fill_end=ok track_black=ok. Data strip n=4 [100, 50, 0, 75]: strip_full=ok strip_half=ok strip_empty=ok. LCARS-PROG-PASS.
lcars_demo capstone
Commit 2264795. 160×120 framebuffer showing the full LCARS panel — panel_header(hh=18, sw=36) + progress bar (80% gold fill) + data-strip (3 segments blue, values 100/66/33). Seven pixel oracles verify the output:
- top_bar=ok — LCARS tan header strip at expected pixel coords
- tan=ok — tan color value in the header region
- gold=ok — gold fill color present in the progress bar
- blue=ok — blue present in data strip segments
- progress_fill=ok — fill pixel at 80% width position
- content_area=ok — black content region below header
- data_strip_seg0=ok — first segment at 100% fill
LCARS-DEMO-PASS.
The LCARS API surface
Nine public functions in core/lcars_theme.sg. GPU-first with software-2D floor on all paths.
| Function | Description |
|---|---|
lcars_fill_rect | Solid rectangle fill — base primitive |
lcars_fill_circle | Filled circle (Bresenham spans) |
lcars_fill_qcircle_br | Bottom-right quarter-circle fill (elbow corner) |
lcars_hbar | Horizontal bar with rounded end caps |
lcars_elbow | L-shaped elbow connector (header left element) |
lcars_panel_header | Full LCARS panel header (elbow + top bar + sidebar) |
lcars_label | Right-aligned text label using the 8×16 glyph atlas |
lcars_progress | Right-justified fill bar with black track |
lcars_data_strip | N-segment independent progress strip |