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)