freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 5e62baaa: * src/ftgrid.c (grid_status_draw_outl


From: Werner Lemberg
Subject: [freetype2-demos] master 5e62baaa: * src/ftgrid.c (grid_status_draw_outline): Improve left crop.
Date: Wed, 18 Dec 2024 21:03:46 -0500 (EST)

branch: master
commit 5e62baaa4cf43d281eb744b2d650b0233a4b7dc8
Author: Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov (Алексей Подтележников) <apodtele@gmail.com>

    * src/ftgrid.c (grid_status_draw_outline): Improve left crop.
---
 src/ftgrid.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/ftgrid.c b/src/ftgrid.c
index c12a27ab..434e75c1 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -603,9 +603,6 @@
           rows  /= 3;
           piy    = 3;
           break;
-        case gr_pixel_mode_bgra:
-          pix = 4;
-          break;
         default:
           break;
         }
@@ -633,12 +630,23 @@
         bitg.rows  = rows * piy;
 
         delta = ox + left * scale;
-        if ( delta < 0 && bitg.mode != gr_pixel_mode_mono )
+        if ( delta < 0 )
         {
-          delta /= scale;
-          width += delta;
-          left  -= delta;
-          bitg.buffer -= delta * pix;
+          if ( bitg.mode == gr_pixel_mode_mono )
+          {
+            delta /= 8 * scale;
+            width += 8 * delta;
+            left  -= 8 * delta;
+            bitg.buffer -= delta;
+          }
+          else
+          {
+            delta /= scale;
+            width += delta;
+            left  -= delta;
+            bitg.buffer -= bitg.mode == gr_pixel_mode_bgra ? delta * 4
+                                                           : delta * pix;
+          }
         }
 
         delta = ox + ( left + width ) * scale - display->bitmap->width;
@@ -648,9 +656,6 @@
           width -= delta;
         }
 
-        if ( bitg.mode == gr_pixel_mode_bgra )
-          pix = 1;
-
         bitg.width = width * pix;
 
         if ( width > 0 && rows > 0 )



reply via email to

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