feat(render): fullscreen headless receiver with letterboxing
A headless receiver has no window manager, so a windowed window is meaningless there — the screencast should simply fill the screen. The renderer now goes borderless fullscreen automatically when SDL runs the KMSDRM backend, and --fullscreen forces the same behavior in desktop sessions. The video keeps its aspect ratio via SDL_SetRenderLogicalPresentation(LETTERBOX): a 4:3 desktop on a 16:9 TV renders with black bars instead of a stretched picture, the cursor is hidden, and the clear-before-draw keeps the bars black. Verified live on a 3440x1440 monitor: the --fullscreen receiver window covered the entire display while a 4:3 synthetic feed rendered with pure-black pillarbox bars (Y=0/SAT=0) and a saturated-red center (V=254). meson test 5/5 in both build configurations.
This commit is contained in:
@@ -102,6 +102,11 @@ the recommended setup for small boards (Raspberry Pi OS **Lite**):
|
||||
3. Disable console blanking: append `consoleblank=0` to
|
||||
`/boot/firmware/cmdline.txt` and reboot.
|
||||
|
||||
Under KMSDRM the receiver goes **fullscreen automatically**, with
|
||||
aspect-preserving letterboxing (a 4:3 desktop on a 16:9 TV shows black
|
||||
bars, not a stretched picture) and no mouse cursor. On desktop sessions
|
||||
`--fullscreen` forces the same behavior.
|
||||
|
||||
A window manager only comes with the desktop-session alternative, where
|
||||
the receiver runs inside it (uncomment the `Environment=` lines in the
|
||||
service file as described above).
|
||||
|
||||
Reference in New Issue
Block a user