• src/doors/termgfx/CMakeLists.txt sbbs_node.c sbbs_node.h sixel.c sixel

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Fri Jun 26 01:24:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c74d9fab1eda7ecccf82e850
    Added Files:
    src/doors/termgfx/CMakeLists.txt sbbs_node.c sbbs_node.h sixel.c sixel.h
    Modified Files:
    src/doors/syncdoom/CMakeLists.txt syncdoom.c
    Log Message:
    syncdoom: extract reusable bits into shared libtermgfx

    First slice of the door-library extraction: move the two already-standalone, engine-agnostic modules out of the SyncDOOM door into a new shared static library, src/doors/termgfx/, so future framebuffer doors (e.g. a Duke Nukem 3D port) can link them instead of copy/pasting.

    - sixel.{c,h} -- the indexed DECSIXEL encoder (was render_sixel)
    - sbbs_node.{c,h} -- door-native node list / paging / who's-online

    Files in the dedicated termgfx/ dir carry no redundant prefix (the directory is the namespace); the lib keeps sbbs_node's meaningful prefix. libtermgfx exposes its own dir as a PUBLIC include (so the door gets the headers) and keeps the sbbs3/xpdev header paths sbbs_node needs PRIVATE (headers only -- xpdev symbols still resolve at the door's final link). SyncDOOM drops the two sources + the now-orphaned sbbs3 include and links the lib. No logic change; builds clean.

    More of syncdoom.c's renderer/pacing/caps/overlay/input will move into termgfx behind a termgfx.h engine interface over time (exported symbols there prefixed termgfx_).

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