freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 8b35ed8: * src/ftmulti.c (Process_Event, main):


From: Werner LEMBERG
Subject: [freetype2-demos] master 8b35ed8: * src/ftmulti.c (Process_Event, main): Fix rounding.
Date: Thu, 23 Mar 2017 08:09:08 -0400 (EDT)

branch: master
commit 8b35ed8c76f8a0d672f20b13c9a0574e1606318b
Author: Werner Lemberg <address@hidden>
Commit: Werner Lemberg <address@hidden>

    * src/ftmulti.c (Process_Event, main): Fix rounding.
---
 ChangeLog     |  7 ++++++-
 src/ftmulti.c | 10 ++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 4c2ab3a..3689c5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,18 @@
 2017-03-23  Werner Lemberg  <address@hidden>
 
+       * src/ftmulti.c (Process_Event, main): Fix rounding.
+
+2017-03-23  Werner Lemberg  <address@hidden>
+
        [ftmulti] Show PS name.
 
        * src/ftmulti.c (Render_All): Adjust vertical start position.
        (Render_Text): Make arguments similar to `Render_All'.
        Adjust vertical start position.
+       (Process_Event): Round non-integer axis values to two decimal
+       digits.
        (main): Updated.
        Print PostScript name.
-       Round non-integer axis values to two decimal digits.
 
 2017-03-20  Brian Nixon  <address@hidden>
 
diff --git a/src/ftmulti.c b/src/ftmulti.c
index a865972..05a3f97 100644
--- a/src/ftmulti.c
+++ b/src/ftmulti.c
@@ -697,7 +697,10 @@
       /* for MM fonts, round the design coordinates to integers,         */
       /* otherwise round to two decimal digits to make the PS name short */
       if ( !FT_IS_SFNT( face ) )
-        design_pos[axis] = ( design_pos[axis] + 0x8000 ) & 0xFFFF0000L;
+      {
+        design_pos[axis] += design_pos[axis] < 0 ? -0x8000 : 0x8000;
+        design_pos[axis] &= 0xFFFF0000L;
+      }
       else
       {
         double  x;
@@ -950,7 +953,10 @@
 
       /* for MM fonts, round the design coordinates to integers */
       if ( !FT_IS_SFNT( face ) )
-        design_pos[n] &= (FT_Fixed)0xFFFF0000L;
+      {
+        design_pos[n] += design_pos[n] < 0 ? -0x8000 : 0x8000;
+        design_pos[n] &= 0xFFFF0000L;
+      }
     }
 
     error = FT_Set_Var_Design_Coordinates( face, used_num_axis, design_pos );



reply via email to

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