freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master f38e0e7: * src/ftgrid.c (bitmap_scale): Gray al


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master f38e0e7: * src/ftgrid.c (bitmap_scale): Gray alternative to LCD bitmap...
Date: Tue, 25 Jun 2019 22:38:51 -0400 (EDT)

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

    * src/ftgrid.c (bitmap_scale): Gray alternative to LCD bitmap...
    (Process_Event): ... after repeated bitmap toggles.
---
 ChangeLog    |  5 +++++
 src/ftgrid.c | 23 ++++++++++++++++-------
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index be8a20a..7b5b668 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2019-06-25  Alexei Podtelezhnikov  <address@hidden>
+
+       * src/ftgrid.c (bitmap_scale): Gray alternative to LCD bitmap...
+       (Process_Event): ... after repeated bitmap toggles.
+
 2019-06-20  Alexei Podtelezhnikov  <address@hidden>
 
        [ftgrid] Tweak direct rendering.
diff --git a/src/ftgrid.c b/src/ftgrid.c
index def21f1..bc720b1 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -88,10 +88,11 @@
 
 #define BUFSIZE  256
 
-#define DO_BITMAP      1
-#define DO_OUTLINE     2
-#define DO_DOTS        4
-#define DO_DOTNUMBERS  8
+#define DO_BITMAP       1
+#define DO_GRAY_BITMAP  2
+#define DO_OUTLINE      4
+#define DO_DOTS         8
+#define DO_DOTNUMBERS  16
 
   typedef struct  GridStatusRec_
   {
@@ -459,8 +460,9 @@
 
 
   static void
-  bitmap_scale( grBitmap*  bit,
-                int        scale )
+  bitmap_scale( GridStatus  st,
+                grBitmap*   bit,
+                int         scale )
   {
     unsigned char*  s = bit->buffer;
     unsigned char*  t;
@@ -503,6 +505,7 @@
         break;
 
       case gr_pixel_mode_gray:
+      Gray:
         for ( i = 0; i < bit->rows; i++ )
         {
           for ( j = 0; j < pitch; j++ )
@@ -516,6 +519,8 @@
 
       case gr_pixel_mode_lcd:
       case gr_pixel_mode_lcd2:
+        if ( st->work & DO_GRAY_BITMAP )
+          goto Gray;
         for ( i = 0; i < bit->rows; i++ )
         {
           for ( j = 0; j < width; j += 3 )
@@ -534,6 +539,8 @@
 
       case gr_pixel_mode_lcdv:
       case gr_pixel_mode_lcdv2:
+        if ( st->work & DO_GRAY_BITMAP )
+          goto Gray;
         for ( i = 0; i < bit->rows; i += 3 )
         {
           for ( j = 0; j < pitch; j++ )
@@ -636,7 +643,7 @@
 
       if ( !error )
       {
-        bitmap_scale( &bitg, scale );
+        bitmap_scale( st, &bitg, scale );
 
         grBlitGlyphToBitmap( display->bitmap, &bitg,
                              ox + left * scale, oy - top * scale,
@@ -1510,6 +1517,8 @@
 
     case grKEY( 'b' ):
       status.work ^= DO_BITMAP;
+      if ( status.work & DO_BITMAP )
+        status.work ^= DO_GRAY_BITMAP;
       break;
 
     case grKEY( 'p' ):



reply via email to

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