freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master 306d2f6: [truetype] Draw glyphs without deltas in var


From: Werner LEMBERG
Subject: [freetype2] master 306d2f6: [truetype] Draw glyphs without deltas in variation font (#56374).
Date: Thu, 23 May 2019 08:42:18 -0400 (EDT)

branch: master
commit 306d2f6ccb5a05eb54c8de7ef07fc5b46f1649a1
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    [truetype] Draw glyphs without deltas in variation font (#56374).
    
    * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Always fill
    `unrounded' array.
---
 ChangeLog              |  7 +++++++
 src/truetype/ttgxvar.c | 12 ++++++++----
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 716a0a3..fd57ade 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-05-23  Werner Lemberg  <address@hidden>
+
+       [truetype] Draw glyphs without deltas in variation font (#56374).
+
+       * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Always fill
+       `unrounded' array.
+
 2019-05-21  Werner Lemberg  <address@hidden>
 
        * src/truetype/ttinterp.c (opcode_name): Improve mnemonics.
diff --git a/src/truetype/ttgxvar.c b/src/truetype/ttgxvar.c
index 1c24bc2..33aec98 100644
--- a/src/truetype/ttgxvar.c
+++ b/src/truetype/ttgxvar.c
@@ -3755,6 +3755,12 @@
     if ( !face->doblend || !blend )
       return FT_THROW( Invalid_Argument );
 
+    for ( i = 0; i < n_points; i++ )
+    {
+      unrounded[i].x = INT_TO_F26DOT6( outline->points[i].x );
+      unrounded[i].y = INT_TO_F26DOT6( outline->points[i].y );
+    }
+
     if ( glyph_index >= blend->gv_glyphcnt      ||
          blend->glyphoffsets[glyph_index] ==
            blend->glyphoffsets[glyph_index + 1] )
@@ -4101,10 +4107,8 @@
 
     for ( i = 0; i < n_points; i++ )
     {
-      unrounded[i].x = INT_TO_F26DOT6( outline->points[i].x ) +
-                         FT_fixedToFdot6( point_deltas_x[i] );
-      unrounded[i].y = INT_TO_F26DOT6( outline->points[i].y ) +
-                         FT_fixedToFdot6( point_deltas_y[i] );
+      unrounded[i].x += FT_fixedToFdot6( point_deltas_x[i] );
+      unrounded[i].y += FT_fixedToFdot6( point_deltas_y[i] );
 
       outline->points[i].x += FT_fixedToInt( point_deltas_x[i] );
       outline->points[i].y += FT_fixedToInt( point_deltas_y[i] );



reply via email to

[Prev in Thread] Current Thread [Next in Thread]