* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.

Up to now, we simply took a snapshot of the Graphics State after the
`prep' table has been executed, and right before a glyph's bytecode
was run it got reloaded.  However, as Greg Hitchcock has told us in
private communication, reference points get reset to zero in the MS
rasterizer and we follow in due course.  While reasonable, this is
undocumented behaviour.

Most notably, this fixes the rendering of Arial's `x' glyph in
subpixel hinting mode.
2.6.5
Werner Lemberg 12 years ago
parent 00dfa3304e
commit bfcc375b06
  1. 14
      ChangeLog
  2. 5
      src/truetype/ttobjs.c

@ -1,3 +1,17 @@
2013-02-06 Werner Lemberg <wl@gnu.org>
* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.
Up to now, we simply took a snapshot of the Graphics State after the
`prep' table has been executed, and right before a glyph's bytecode
was run it got reloaded. However, as Greg Hitchcock has told us in
private communication, reference points get reset to zero in the MS
rasterizer and we follow in due course. While reasonable, this is
undocumented behaviour.
Most notably, this fixes the rendering of Arial's `x' glyph in
subpixel hinting mode.
2013-02-05 Werner Lemberg <wl@gnu.org>
[truetype] A better fix for Savannah bug #38211.

@ -878,6 +878,11 @@
else
error = TT_Err_Ok;
/* UNDOCUMENTED! Reference points are reset to zero. */
exec->GS.rp0 = 0;
exec->GS.rp1 = 0;
exec->GS.rp2 = 0;
/* save as default graphics state */
size->GS = exec->GS;

Loading…
Cancel
Save