[truetype] Fix positioning of composite glyphs.

Problem reported by Nigel Tao <nigeltao@golang.org>.

* src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
the glyph (component) by a fractional value computed from the LSB
phantom point.  This is wrong, since the horizontal phantom points
get rounded horizontally later on.
2.6.5
Werner Lemberg 11 years ago
parent dd8050aa79
commit 05c786d990
  1. 10
      ChangeLog
  2. 12
      src/truetype/ttgload.c

@ -1,3 +1,13 @@
2013-12-10 Werner Lemberg <wl@gnu.org>
[truetype] Fix positioning of composite glyphs.
Problem reported by Nigel Tao <nigeltao@golang.org>.
* src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
the glyph (component) by a fractional value computed from the LSB
phantom point. This is wrong, since the horizontal phantom points
get rounded horizontally later on.
2013-12-08 Werner Lemberg <wl@gnu.org>
* Version 2.5.2 released.

@ -738,7 +738,6 @@
#endif
TT_GlyphZone zone = &loader->zone;
FT_Pos origin;
#ifdef TT_USE_BYTECODE_INTERPRETER
FT_UInt n_ins;
@ -755,14 +754,7 @@
loader->glyph->control_len ));
}
n_ins = (FT_UInt)( loader->glyph->control_len );
#endif
origin = zone->cur[zone->n_points - 4].x;
origin = FT_PIX_ROUND( origin ) - origin;
if ( origin )
translate_array( zone->n_points, zone->cur, origin, 0 );
#ifdef TT_USE_BYTECODE_INTERPRETER
/* save original point position in org */
if ( n_ins > 0 )
FT_ARRAY_COPY( zone->org, zone->cur, zone->n_points );
@ -1286,8 +1278,8 @@
* pp1 = (round(xmin - lsb), 0) ,
* pp2 = (round(pp1 + aw), 0) .
*
* Note that the rounding to the grid is not documented currently in the
* specification.
* Note that the rounding to the grid (in the device space) is not
* documented currently in the specification.
*
* However, the specification lacks the precise definition of vertical
* phantom points. Greg Hitchcock provided the following explanation.

Loading…
Cancel
Save