https://gitlab.synchro.net/main/sbbs/-/commit/6512285c1be7fcf8528fecb2
Added Files:
src/doors/syncscumm/test/test_sixel_palette_used.c
Modified Files:
src/doors/termgfx/README.md sixel.c sixel.h
Log Message:
termgfx sixel: add SIXEL_PAL_USED to emit only referenced registers
Replace sixel_encode()'s boolean emit_palette with a tri-state: SIXEL_PAL_NONE/FULL (the legacy 0/1, byte-identical output) and a new SIXEL_PAL_USED that (re)defines only the color registers an image
actually references, at their original index. Register-resetting
terminals (xterm/foot/Windows Terminal) must carry a palette on every
image, and all 256 is mostly wasted bytes; USED cuts a typical dirty
box from ~3.8KB of palette to a few hundred bytes with no wrong-color
risk, since every referenced index is in the emitted set by
construction. Persistent terminals keep FULL/NONE so a palette-less
box can still rely on a prior frame's registers.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net