On Sat, Apr 29, 2017 at 9:33 PM Markus Trippelsdorf <[email protected]> wrote:
> On 2017.04.29 at 18:11 +0200, Markus Trippelsdorf wrote: > > On 2017.04.29 at 17:50 +0200, Werner LEMBERG wrote: > > > > > > >> But strangely is see no issue related to slight auto-hinting in > > > >> Chromium at all. > > > > > > Interesting. > > > > > > > Here is another example which uses webfonts: > > > > http://ilovetypography.com/2016/04/18/the-first-roman-fonts/ > > > > Chromium above, Firefox below: http://imgur.com/a/WNR1R > > > > > > Ouch. However, I think it is *impossible* to get such a bad result > > > with my change. Are you sure that Firefox's font cache was refreshed? > > > > Yes. I have deleted the cache, but it make no difference. > > > > > Unfortunately, on my openSUSE box, Firefox seems to use a compiled-in > > > FreeType version, since `ldd' shows nothing (and testing with > > > `LD_PRELOAD' doesn't show a difference). > > > > The firefox binary is just a small wrapper that loads libxul.so. > > On my system: > > > > % ldd /usr/lib/firefox/libxul.so | grep freety > > libfreetype.so.6 => /usr/lib/libfreetype.so.6 > (0x00007fd9a5aeb000) > > Hard setting the autohint_mode to FT_RENDER_MODE_SLIGHT "fixes" the > Firefox problem for me: > > diff --git a/src/autofit/afloader.c b/src/autofit/afloader.c > index b3269d10b839..8cc860093d60 100644 > --- a/src/autofit/afloader.c > +++ b/src/autofit/afloader.c > @@ -249,7 +249,7 @@ > /* different scaling values; this later on enforces recomputation > of */ > /* everything related to the current size > */ > > - size_internal->autohint_mode = FT_LOAD_TARGET_MODE( load_flags ); > + size_internal->autohint_mode = FT_RENDER_MODE_SLIGHT; > size_internal->autohint_metrics = size->metrics; > > #ifdef AF_CONFIG_OPTION_TT_SIZE_METRICS > > Setting it to FT_RENDER_MODE_LIGHT makes the problem return. > Firefox should never set _SLIGHT. Perhaps what your change does is ensure the preceding check (`size_internal->autohint_mode != FT_LOAD_TARGET_MODE( load_flags )`) always succeeds. Is the problem also gone after you replace the condition with `if (1)`? Maybe face->size->metrics changes between calls to af_loader_load_glyph, and autohint_metrics is no longer correct.
_______________________________________________ Freetype-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype-devel
