>> The only other solution that comes to mind is doing an extra pass >> just to build the initial hintmap, after which hint moves should >> presumably work right. > > I like your first suggestion better.
I would prefer changing the logic too, but that doesn't seem feasible. Look at this output from another font (ztm-Reg): T1_Load_Glyph: glyph index 86 | cff_glyph_load: glyph index 86 Initial hintmap Initial hintmap csCoord dsCoord scale flags csCoord dsCoord scale flags 0.00 0.00 655 gbLS | -10.00 0.00 655 pbL > 48.00 58.00 655 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL (adjusted) (adjusted) csCoord dsCoord scale flags csCoord dsCoord scale flags 0.00 0.00 731 gbLS | -10.00 0.00 655 pbL > 48.00 52.54 723 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL Hints: Hints: csCoord dsCoord scale flags csCoord dsCoord scale flags 36.00 40.99 655 pb | 36.00 46.00 655 pb 50.00 54.99 655 pt | 50.00 60.00 655 pt 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL (adjusted) (adjusted) csCoord dsCoord scale flags csCoord dsCoord scale flags 36.00 0.00 655 pb | 36.00 86.05 655 pb 50.00 11.45 801 pt | 50.00 100.05 655 pt 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL Hints: Hints: csCoord dsCoord scale flags csCoord dsCoord scale flags -10.00 0.00 655 pbL -10.00 0.00 655 pbL 48.00 58.00 655 ptL 48.00 58.00 655 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL (adjusted) (adjusted) csCoord dsCoord scale flags csCoord dsCoord scale flags -10.00 0.00 655 pbL -10.00 0.00 655 pbL 48.00 52.54 723 ptL 48.00 52.54 723 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL Hints: Hints: csCoord dsCoord scale flags csCoord dsCoord scale flags 36.00 40.99 655 pb | 36.00 86.05 655 pbL 50.00 54.99 655 pt | 50.00 100.05 655 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL (adjusted) (adjusted) csCoord dsCoord scale flags csCoord dsCoord scale flags 36.00 0.00 655 pb | 36.00 86.05 655 pbL 50.00 11.45 801 pt | 50.00 100.05 655 ptL 436.00 486.27 655 pbL 436.00 486.27 655 pbL 450.00 500.27 655 ptL 450.00 500.27 655 ptL ptsize =10 ptsize =10 Execution completed successfully. Execution completed successfully. The initial hintmap is wrong, affecting the first set of hints. Because the (-10,48) pair is not in the first hint group, but is in a blue zone (hence locked and in the initial map). For Type 1, the interpreter cannot know this until later in the charstring when that pair is actually inserted, and hence cannot possibly build the correct initial hintmap unless a preliminary pass is made to collate all the hints. Ewald
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel