summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2016-07-14 06:08:39 +0200
committerWerner Lemberg <wl@gnu.org>2016-07-14 06:08:39 +0200
commit0f9ddf20c89fd38bec244d431340d1d67d4dbfd5 (patch)
tree739f68484636dfc4d1f14b41282f7a2a043d33db
parent4261103e355f632a609a23f24a8fcafdeac20237 (diff)
downloadfreetype2-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--ChangeLog11
-rw-r--r--src/truetype/ttgxvar.c6
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index a3d78f6c7..40560ea40 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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++ )
{