https://gitlab.synchro.net/main/sbbs/-/commit/3cd36459f8ead141a6ce36fe
Modified Files:
src/doors/syncdoom/syncdoom.c src/doors/syncduke/syncduke_io.c
Log Message:
syncduke/syncdoom: sixel image centering + full-res sixel option
Two SyncTERM sixel improvements, tested live:
Centering (SyncDuke): the sixel image hugged the left edge on SyncTERM while SyncDOOM centered. Cause -- SyncTERM answers the graphics-canvas probe
(?2;1S) but not the cell-size probe (ESC[16t), so syncduke_term_cell_w()
stays 0 and termgfx_geom_center() can't turn the centered pixel offset into a text column, falling back to column 1. Give the centering the same 8x16 cell-size fallback the bottom-row reserve already uses (SyncDOOM always has), so the image centers; also drop the stale is-SyncTERM special case in the mouse-steer center (SyncTERM honors the sixel cursor like other terminals).
Full-res sixel (both doors): the default sixel encodes at half the display
size and lets SyncTERM nearest-neighbor-double it -- lean on the wire but
soft. Add a "sixel-full" tier that encodes 1:1 at the display size on
SyncTERM too (it was gated to non-SyncTERM), for a sharper image at ~4x the bytes. In SyncDOOM the JXL-start F4 cycle now offers both the half- and full-res sixel stops, so "sixel-full" is actually reachable.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)