> Thanks for the explanation. The source code needs comments like > that :)
I'm awaiting your patches :-) > In my first prototype, I tried to get a face-wide stdVW and modified > af_latin_metrics_init_widths to upload whatever is computed to > AF_FaceGlobals. Then I found that when displaying all glyphs in a > font with ftview, the first few glyphs don't produce anything > (spoiler: af_cjk_metrics_init_widths was here, maybe because #define > AF_STYLE_FALLBACK AF_STYLE_HANI_DFLT), and later runs produced > different standard_widths (for different scripts). Yes, we have lazy evaluation of the standard widths, and as I've written earlier, there are different standard widths depending on the script. > So by "in a controlled way", I mean run all script analyzers from > af_face_globals_get_standard_widths() upon metrics initialization > and do something meaningful with the produced standard_widths, ONCE > PER SIZE before anything else is done. Why `once per size'? The auto-hinter computes the standard widths in *font units*, this is, the values are unscaled! > And "hard-to-follow" was a general comment. I find the excessive > preprocessor use in FT difficult to follow and it took me a while to > understand how the different parts of the autohinter click together > and what is done in what order... This is true, unfortunately. Werner _______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/freetype-devel