diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2016-07-14 06:08:39 +0200 |
---|---|---|
committer | Werner Lemberg <wl@gnu.org> | 2016-07-14 06:08:39 +0200 |
commit | 0f9ddf20c89fd38bec244d431340d1d67d4dbfd5 (patch) | |
tree | 739f68484636dfc4d1f14b41282f7a2a043d33db | |
parent | 4261103e355f632a609a23f24a8fcafdeac20237 (diff) | |
download | freetype2-0f9ddf20c89fd38bec244d431340d1d67d4dbfd5.tar.gz |
[truetype] Fix gxvar delta interpolation.
The coordinates of the base font should be used for interpolation
purposes, NOT the current points (i.e., the result of accumulation
of previous deltas).
* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize
`points_org' before looping over all tuples.
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | src/truetype/ttgxvar.c | 6 |
2 files changed, 14 insertions, 3 deletions
@@ -1,3 +1,14 @@ +2016-07-14 Behdad Esfahbod <behdad@behdad.org> + + [truetype] Fix gxvar delta interpolation. + + The coordinates of the base font should be used for interpolation + purposes, NOT the current points (i.e., the result of accumulation + of previous deltas). + + * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize + `points_org' before looping over all tuples. + 2016-07-12 Werner Lemberg <wl@gnu.org> * Version 2.6.5 released. diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c index 9a02c5a8c..d771569e2 100644 --- a/src/truetype/ttgxvar.c +++ b/src/truetype/ttgxvar.c @@ -1922,6 +1922,9 @@ FT_TRACE5(( "gvar: there are %d tuples:\n", tupleCount & GX_TC_TUPLE_COUNT_MASK )); + for ( j = 0; j < n_points; j++ ) + points_org[j] = outline->points[j]; + for ( i = 0; i < ( tupleCount & GX_TC_TUPLE_COUNT_MASK ); i++ ) { FT_UInt tupleDataSize; @@ -2057,10 +2060,7 @@ /* we have to interpolate the missing deltas similar to the */ /* IUP bytecode instruction */ for ( j = 0; j < n_points; j++ ) - { - points_org[j] = outline->points[j]; has_delta[j] = FALSE; - } for ( j = 0; j < point_count; j++ ) { |