Sorry for the late response. > The original code translates the points so that the origin (pp1) has > integral coordinates and rounds pp2 and pp4, before hinting. I > think the translation is not necessary. When bytecode interpreter > is enabled, we move points relative to reference point or to itself. > Thus the translation has no effect. When disabled, the translation > doesn't help make other points having integral coordinates. > > And for rounding pp2 and pp4, doesn't it make the result of hinting > inaccurate? Plus, pp2 and pp4 are rounded when calculating metrics > later.
Whether this improves the rendering process can only be decided in direct comparison with the Windows hinting engine. Whether it becomes worse is hopefully visible immediately... > ================================================================== > @@ -1479,7 +1465,7 @@ > int n = c > d ? c : d; > > > - if ( a - b <= 33 && a - b >= -33 ) > + if ( a - c <= 33 && a - c >= -33 ) > m *= 2; > if ( c - d <= 33 && c - d >= -33 ) > n *= 2; > ================================================================== > > This snippet is in deciding the mac scale of component offsets. It > is commented out because the result is bad. But in this page > http://developer.apple.com/fonts/TTRefMan/RM06/Chap6glyf.html, the > algorithm described is slightly different (typo?) from what we use > here. I have no idea whether this makes any difference. George? Werner _______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype-devel