cyberpunkDisplayBackdrops function
Everything display text of spec may be drawn on: the HUD panel
(surfaces) and the panel under its scanline ink (palette.shadow);
dark themes add every scene sample (bgs; their display text passes on
the bare scene too). Hazard's yellow display text sits only on its
opaque black screen, never on the yellow body.
Implementation
List<int>? cyberpunkDisplayBackdrops(
ThemeSpec spec,
List<int> surfaces,
List<int> bgs,
) {
final scan = spec.palette.shadow;
return [
for (final s in surfaces) ...[s, compositeOver(scan, s)],
if (spec.brightness == ThemeBrightness.dark) ...bgs,
];
}