freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master f26d577: * src/base/ftobjs.c (ft_glyphslot_reset_bima


From: Alexei Podtelezhnikov
Subject: [freetype2] master f26d577: * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Further tweak.
Date: Fri, 21 Sep 2018 20:36:31 -0400 (EDT)

branch: master
commit f26d57753fe1a6ab61796fbd816fefd6c103720b
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>

    * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Further tweak.
---
 ChangeLog         |  4 ++++
 src/base/ftobjs.c | 30 ++++++++++++++++++------------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 584f860..c39f08f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-20  Alexei Podtelezhnikov  <address@hidden>
+
+       * src/base/ftobjs.c (ft_glyphslot_reset_bimap): Further tweak.
+
 2018-09-21  Ben Wagner  <address@hidden>
 
        Improve auto-hinter handling of bitmap fonts (#54681).
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 34aedbf..874a3a1 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -395,15 +395,18 @@
 
       /* undocumented but confirmed: bbox values get rounded;  */
       /* for narrow glyphs bbox is extended to one pixel first */
-      if ( pbox.xMax - pbox.xMin <= 1 )
+      switch ( pbox.xMax - pbox.xMin )
       {
-        if ( pbox.xMax - pbox.xMin == 0 )
+      case 1:
+        pbox.xMax -= 1;
+        cbox.xMax += 64;
+        /* fall through */
+      case 0:
+        if ( cbox.xMax - cbox.xMin < 63 )
         {
-          cbox.xMin = ( cbox.xMin + cbox.xMax ) / 2 - 32;
-          cbox.xMax = cbox.xMin + 64;
+          cbox.xMin = ( cbox.xMin + cbox.xMax ) / 2 - 31;
+          cbox.xMax = cbox.xMin + 63;
         }
-        else if ( cbox.xMax - cbox.xMin < 0 )
-          cbox.xMin = cbox.xMax = ( cbox.xMin + cbox.xMax ) / 2;
       }
 
       /* we do asymmetric rounding so that the center */
@@ -414,15 +417,18 @@
 
       /* y */
 
-      if ( pbox.yMax - pbox.yMin <= 1 )
+      switch ( pbox.yMax - pbox.yMin )
       {
-        if ( pbox.yMax - pbox.yMin == 0 )
+      case 1:
+        pbox.yMax -= 1;
+        cbox.yMax += 64;
+        /* fall through */
+      case 0:
+        if ( cbox.yMax - cbox.yMin < 63 )
         {
-          cbox.yMin = ( cbox.yMin + cbox.yMax ) / 2 - 32;
-          cbox.yMax = cbox.yMin + 64;
+          cbox.yMin = ( cbox.yMin + cbox.yMax ) / 2 - 31;
+          cbox.yMax = cbox.yMin + 63;
         }
-        else if ( cbox.yMax - cbox.yMin < 0 )
-          cbox.yMin = cbox.yMax = ( cbox.yMin + cbox.yMax ) / 2;
       }
 
       pbox.yMin += ( cbox.yMin + 31 ) >> 6;



reply via email to

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