#pragma once //########################################################################### // // L4PLASMAWIN -- the desktop plasma display (BT_GLASS only). // // PlasmaWindow renders the pod's 128x32 serial plasma marquee (pilot-name / // rank display) into a small orange-on-black desktop window instead of a // serial device. It derives from Video8BitBuffered exactly like the serial // PlasmaDisplay, so the L4GaugeRenderer draws into its 8-bit pixelBuffer // with the same code path; Update() (the per-frame external-display flush) // blits the buffer to the window at L4PLASMASCALE x zoom (default 4). // Selected with L4PLASMA=SCREEN (the gated branch in L4GREND.cpp); any // other L4PLASMA value keeps the serial device. // //########################################################################### #include "l4vb8.h" class PlasmaWindow : public Video8BitBuffered { public: enum { plasmaWidth = 128, plasmaHeight = 32 }; PlasmaWindow(); ~PlasmaWindow(); Logical Update(Logical force_all); void WaitForUpdate(); protected: void EnsureWindow(); void *window; // HWND (kept void* -- no in headers) int scale; unsigned long *blitBuffer; // plasmaWidth*plasmaHeight BGRA staging };