https://gitlab.synchro.net/main/sbbs/-/commit/4a11464eb46b2fb3fbf317c7
Modified Files:
src/doors/syncmoo1/syncmoo1_io.c
Log Message:
syncmoo1: clear on geometry change, and center with a fractional cell
Two rendering bugs on a maximized Windows Terminal, both latent in the sibling doors too (only syncretro was fixed, via the shared termgfx_geom_center_ex).
The black box. Nothing wiped the screen when the geometry changed. The door starts on the default 80x25/640x400 assumption; when the terminal's
grid/canvas
probe reply lands mid-intro it recomputes a different image position and size, but the previous frame's footprint -- and 1oom's pre-sixel "Loading Master of Orion" text -- were never cleared, so a stale black rectangle sat in the background behind the new frame. Emit ESC[2J when the drawn geometry differs from the last frame sent (guarded off the first frame, which term_enter
already
cleared). Same fix the sibling doors' tier-change path applies; here the trigger
is the probe-driven geometry change.
The off-center image. Centering used cw = canvas / grid_cols, an integer that truncates. On a window whose pixels-per-cell isn't an exact 8x16, the lost fraction of a cell put the image a cell or two off ("kind of centered"). Adopt termgfx_geom_center_ex with the true fractional cell so the column/row round correctly.
Verified: the geometry-change ESC[2J now fires on the wire when a probe reply changes the grid, and the door renders correctly on a real WT sixel session (user-confirmed). ctest 4/4.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net