Files
sx/library/vendors/kb_text_shape/kb_text_shape.sx
agra b06776d6e9 library: vendors/kb_text_shape + vendors/file_utils; modules/ffi/stb_truetype.sx retired
kb_text_shape (v2.10, JimmyLefevre) had been LOST from the sx tree —
ffi/stb_truetype.sx referenced repo paths that no longer existed (and
nothing runs glyph_cache, so the dangling unit never fired). The
trimmed copy returns from the m3te project as a proper vendor:
curated c/kbts_api.h decls over the full upstream header, README with
provenance, and examples/1627 pinning context + font creation so the
unit compiles and runs in-suite. file_utils (in-house asset-read
helper with the Android AAssetManager hook) gets the same unit shape.

modules/ffi/stb_truetype.sx is gone: glyph_cache imports the three
vendored units (stb_truetype, kb_text_shape, file_utils) directly.
2026-06-12 17:58:23 +03:00

19 lines
858 B
Plaintext

// =====================================================================
// vendors/kb_text_shape — Jimmy Lefevre's kb_text_shape (OpenType text
// shaping) as a `#import c` unit (c/, see README.md for version +
// provenance).
//
// `#import "vendors/kb_text_shape/kb_text_shape.sx"` gives any sx
// program text shaping with no system dependency. The decls come from
// c/kbts_api.h — a hand-curated MINIMAL declaration header covering
// only the bound surface (the full upstream header is ~30k lines and
// is included only by the implementation unit). Shape contexts, fonts,
// runs, and glyphs are opaque pointers on the sx side; see
// modules/ui/glyph_cache.sx for the reference consumer.
// =====================================================================
#import c {
#include "c/kbts_api.h";
#source "c/kb_text_shape_impl.c";
};