Displays: on-screen cockpit buttons + desktop plasma + the glass preset (steps 2d/2e)

NEW gated TUs: L4PADPANEL (GDI top-level window, all-W APIs: the pod button
banks -- upper/lower aux, 12 secondary, specials/hat/handle, 63 buttons --
clickable via PadRIO::SetScreenButton with lamp-lit faces from GetLampState,
10 Hz repaint; created by the PadRIO ctor on BT_PAD_PANEL=1) and L4PLASMAWIN
(PlasmaWindow : Video8BitBuffered -- the gauge renderer draws the 128x32
plasma into its pixelBuffer through the SAME code path as the serial device;
Update() blits orange-on-black at L4PLASMASCALE, default x4).  Gated seams:
L4GREND.cpp L4PLASMA=SCREEN branch; btl4main.cpp -platform glass preset
(PAD,KEYBOARD + BT_DEV_GAUGES + SCREEN plasma + panel; env always overrides;
non-glass builds log+fall back to DEV); run.cmd glass token.  MFD surfaces
need NO new code: the existing dock-bottom / BT_DEV_GAUGES_WINDOW=1 /
BT_DEV_GAUGES_DOCK=1 modes are the display story.

Verified live: -platform glass boots GLASS profile, panel + plasma windows
up, pad detected, dev gauges awake, mission loop clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-17 22:21:22 -05:00
co-authored by Claude Fable 5
parent 9f35a8034a
commit db9ac947f7
9 changed files with 629 additions and 8 deletions
+11
View File
@@ -8,6 +8,7 @@
//###########################################################################
#include "l4padrio.h"
#include "l4padpanel.h"
#include "l4ctrl.h"
#include <windows.h>
@@ -121,10 +122,20 @@ PadRIO::PadRIO():
activeInstance = this;
DEBUG_STREAM << "[padrio] PadRIO up (XInput probe pending; keyboard "
<< "live on focus; L4PADFLIP=" << flipStickAxes << ")\n" << std::flush;
//
// The on-screen cockpit button panel (step 2d) rides the device: the
// glass preset sets BT_PAD_PANEL=1.
//
if (getenv("BT_PAD_PANEL") != NULL && *getenv("BT_PAD_PANEL") != '0')
{
BTPadPanel_Create();
}
}
PadRIO::~PadRIO()
{
BTPadPanel_Destroy();
if (activeInstance == this)
{
activeInstance = NULL;