diff options
| author | eunhhu <[email protected]> | 2026-09-28 15:03:30 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-09-28 15:03:30 +0100 |
| commit | 5788d7e5bd6a26421346d69ae517502527940a0b (patch) | |
| tree | ee540bf287a41bef4b052f43b4fe9c9c48099776 /README.md | |
| parent | b5659615bd770fd641f389e5fde8ae97be505fca (diff) | |
| download | vega-5788d7e5bd6a26421346d69ae517502527940a0b.tar.gz vega-5788d7e5bd6a26421346d69ae517502527940a0b.zip | |
Shape the Universal Shaping Engine's scripts as HarfBuzz does
The USE shaper, from HarfBuzz 10.2's source, for Sinhala, Tibetan,
Javanese, Balinese, Mongolian and the rest of its eighty-odd scripts
(and Indic fonts with the new dev3-style tags). The syllable machine
reads past CGJs and ZWNJs that marks follow; rphf goes on each
syllable's first glyphs and records the repha it made, pref records its
pre-base glyph, with substitution marks cleared between; a repha moves
before the first post-base glyph and pre-base vowels move back. Scripts
that join like Arabic take Arabic's forms (Mongolian's free variation
selectors their base's), the others join syllable to syllable. Marks
lose their advances before GPOS.
text/syllabic.py carries HarfBuzz's compressed USE table over as it is,
compiles the USE grammar with the others (100,000 random runs against
Ragel's machine: no syllable differs), and checks at compile time that
the categories syllabic.h names are the machines' own.
Noto Sans Sinhala, Javanese, Balinese, Mongolian, Noto Serif Tibetan,
FreeSerif's Sinhala and Unifont's five shape as HarfBuzz does at 5,000
runs a plan; all installed fonts (1,748 plans) and 21 Noto fonts too.
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions
