Un-pack the 7-display cockpit in-engine (L4MFDSPLIT=1)

The pod drove five monochrome MFDs from the color channels of two video
outputs - SVGA16 packs bit-slices of the shared gauge canvas into R/G/B
of gauge window 3 (upper MFDs) and R/G of window 4 (lower MFDs), with the
map palettized on the secondary and physically mounted portrait. The
desktop reconstruction previously required an external BitBlt-mirror
wrapper.

With L4MFDSPLIT=1, SVGA16 renders each display into its own window
(MFDSplitView, plain GDI) straight from the canvas + port bit-masks:
five green-screen MFD windows and the 90CW-rotated Map, tiled in the pod
grid to the right of the main view (L4MFDSCALE percent, default 50). The
packed D3D windows stay hidden but keep presenting off-screen, leaving
the original path untouched. Handles spanning mode (2-window setups).

Also: the plasma glass now opens directly below the main view (clamped
to the work area; L4PLASMAPOS=x,y overrides) per playtest feedback.

Verified: window grid comes up as main + 5 MFDs + Map + plasma with the
packed windows hidden; screenshots confirm a green MFD score readout and
the portrait tactical map rendering correctly. dist packer and BUILD.md
updated; the launcher wrapper is obsolete for split-mode use.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-12 14:10:52 -05:00
co-authored by Claude Fable 5
parent 7362fd0811
commit 214a8e079c
10 changed files with 497 additions and 8 deletions
+6
View File
@@ -50,6 +50,12 @@ so press-feedback works like the real button field.
`Video8BitBuffered` surface into a desktop "Plasma Display" window in
plasma orange — verified drawing live game content (score readout).
See BUILD.md §4 for bindings and the desktop `environ.ini`.
-**7-display cockpit in-engine** (`L4MFDSPLIT=1`): the five MFDs the pod
packed into the color channels of two video outputs, plus the
portrait-mounted map, now open as their own windows (green-screen MFDs,
90°-rotated map), rendered CPU-side from the shared gauge canvas — the
external BitBlt-mirror wrapper is obsolete. Verified visually (MFD score
readout, full tactical map).
- Next in A: on-screen RIO panel fed by `PadRIO::lampState[]` (the
cockpit-feel layout — vRIO button clusters around the displays); port the
full vRIO bindings-file model (deflect/rate/deadzone per axis, rebinding);