adobe-type-tools / afdko

Adobe Font Development Kit for OpenType
https://adobe-type-tools.github.io/afdko/
Other
1.06k stars 167 forks source link

Fix a couple otfautohint bugs found by testing with Momochidori #1751

Closed skef closed 4 months ago

skef commented 4 months ago

This fixes two bugs found by hinting Momochidori. One fix removes a misguided rounding, the other fixes the use of an index variable.

This also adds a new "loose-overlap-mapping" to make the reverse mapping of path-elements-with-overlap-removed back onto original-path-elements less strict. This helps with path elements that are big "loops", which booleanOperations doesn't always preserve the shape of as well.

There are some other things we could try to avoid these kinds of heuristics, including switching from booleanOperations to Skia PathOps for overlap removal. However, the autohinter is just sort of OK, so I'm wary of putting hours into part A for superficial reasons just to avoid "formal" errors that may not have much of an impact on output. This flag was easy to add and mostly works around the problem. (You'll still get some missed mappings with the flag, just fewer of them. They're mostly harmless -- a bunch of things have to stack up for a given unmapped segment to make a difference.)

Checklist: