mirror of
https://github.com/storytold/cadcraft.git
synced 2026-10-30 22:06:49 -06:00
TrueType and OpenType outlines are defined with the nonzero rule, but glyph meshes were tessellated even-odd, so any area covered by two contours came out empty. Arial Unicode (the macOS fallback CADCraft picks for Hangul) builds 진 (U+C9C4) from a component that already contains the final ㄴ plus a second copy of that ㄴ; even-odd cancelled the pair and 진 rendered as 지. Overlapping contours in other fonts lost their overlaps the same way. Tessellate glyph outlines with FillOptions::non_zero(). Outlines placed in drawing coordinates without a TextGlyph (complex-script runs) go through the same tessellator, offset to their first point to keep f32 precision, instead of the even-odd slab filler.