freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 93e988b: * src/ftgamma.c (event_gamma_grid): Fi


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master 93e988b: * src/ftgamma.c (event_gamma_grid): Fix oscure resizing crash.
Date: Mon, 1 Jun 2020 23:05:35 -0400 (EDT)

branch: master
commit 93e988b2e0fc82fa6c053e6b7a13918a88783219
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    * src/ftgamma.c (event_gamma_grid): Fix oscure resizing crash.
---
 ChangeLog     |  4 ++++
 src/ftgamma.c | 32 +++++++++-----------------------
 2 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ed94bc2..1df3314 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2020-06-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
+
+       * src/ftgamma.c (event_gamma_grid): Fix oscure resizing crash.
+
 2020-05-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
        * src/ftstring.c (Process_Event): Process resizing.
diff --git a/src/ftgamma.c b/src/ftgamma.c
index 088a0fe..8392e32 100644
--- a/src/ftgamma.c
+++ b/src/ftgamma.c
@@ -238,36 +238,22 @@
       double  ggamma = 0.1 * g;
       char    temp[6];
       int     y = y_0 + ( yside + 1 ) * ( g - 1 );
-      int     nx, ny;
+      int     nx;
 
-      unsigned char*  line = display->bitmap->buffer +
-                             y * display->bitmap->pitch;
-
-
-      if ( display->bitmap->pitch < 0 )
-        line -= display->bitmap->pitch * ( display->bitmap->rows - 1 );
-
-      line += x_0 * 3;
-
-      grSetPixelMargin( x_0 - 32, y + ( yside - 8 ) / 2 );
-      grGotoxy( 0, 0 );
 
       sprintf( temp, "%.1f", ggamma );
-      grWrite( temp );
+      grWriteCellString( display->bitmap, x_0 - 32, y + ( yside - 6 ) / 2,
+                         temp, display->fore_color );
 
-      for ( ny = 0; ny < yside; ny++, line += display->bitmap->pitch )
+      for ( nx = 0; nx < levels; nx++ )
       {
-        unsigned char*  dst = line;
-
-
-        for ( nx = 0; nx < levels; nx++, dst += 3 * xside )
-        {
-          double  p   = nx / (double)( levels - 1 );
-          int     gm  = (int)( 255.0 * pow( p, ggamma ) + 0.5 );
+        double   p  = nx / (double)( levels - 1 );
+        int      gm = (int)( 255.0 * pow( p, ggamma ) + 0.5 );
+        grColor  c;
 
 
-          memset( dst, gm, (unsigned int)( xside * 3 ) );
-        }
+        c = grFindColor( display->bitmap, gm, gm, gm, 0xff );
+        grFillRect( display->bitmap, x_0 + nx * xside, y, xside, yside, c );
       }
     }
 



reply via email to

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