• src/doors/termgfx/test/test_termgfx_termio_tiercycle.csrc/doors/syncsc

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Jul 25 23:10:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0b7911f4534019ede60ff740
    Added Files:
    src/doors/termgfx/test/test_termgfx_termio_tiercycle.c
    Modified Files:
    src/doors/syncscumm/door/syncscumm.cpp src/doors/termgfx/termgfx_termio.c termgfx_termio.h src/doors/termgfx/test/unit_termgfx_termio.sh
    Log Message:
    termgfx: let a door step the graphics tier, and give syncscumm F4

    SyncTERM is the only terminal that reaches the JXL tier, which makes it the only one that never draws a sixel -- including the sixel code written specifically FOR SyncTERM, where a dirty box carries no colour registers because they persist, so a palette change has to ride a delta on the first
    box. That path could only run on a SyncTERM talked out of JXL, and nothing could do the talking. It has been shipped and measured but never once
    exercised live on the terminal it exists for.

    termgfx_termio_tier_cycle() steps to the next tier the client can actually
    draw and invalidates the frame cache, because the client is holding a
    picture drawn by the other encoder and the two share none of the state a
    dirty patch assumes. A no-op where only one tier is available, rather than
    a confusing reset.

    It is exposed for the door to bind, NOT taken as a hotkey here. The obvious
    key is F4 -- it is what the sibling doors use -- but syncrpg already spends
    F4 on its resolution toggle and prints it on its help card, and this file is shared with syncrpg. Ctrl-S can be global because no door wants it; this one has an owner already. Taking it here would have broken syncrpg silently.

    syncscumm binds F4 and stops forwarding it to ScummVM, swallowing both
    edges so a release cannot reach the engine alone. F4 is not a ScummVM global (F5 is the menu); if a game turns out to want it, the note there says to
    move the binding rather than forward it, or the tier becomes unreachable
    again.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)