freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master e339d70: Separate color support from sbit handl


From: Werner LEMBERG
Subject: [freetype2-demos] master e339d70: Separate color support from sbit handling.
Date: Sun, 27 May 2018 15:13:04 -0400 (EDT)

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

    Separate color support from sbit handling.
    
    * src/ftcommon.h (FTDemo_Handle): New boolean field `use_color'.
    
    * src/ftcommon.c (FTDemo_New, FTDemo_Update_Current_Flags): Updated.
    
    * src/ftview.c (Process_Event): Use key `c' to toggle color support.
    (write_header, event_help): Updated.
---
 ChangeLog      | 11 +++++++++++
 src/ftcommon.c |  8 +++++---
 src/ftcommon.h |  1 +
 src/ftview.c   | 53 +++++++++++++++++++++++++++++++----------------------
 4 files changed, 48 insertions(+), 25 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index baab704..c3ae4bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2018-05-27  Werner Lemberg  <address@hidden>
+
+       Separate color support from sbit handling.
+
+       * src/ftcommon.h (FTDemo_Handle): New boolean field `use_color'.
+
+       * src/ftcommon.c (FTDemo_New, FTDemo_Update_Current_Flags): Updated.
+
+       * src/ftview.c (Process_Event): Use key `c' to toggle color support.
+       (write_header, event_help): Updated.
+
 2018-05-25  Werner Lemberg  <address@hidden>
 
        Update manpages.
diff --git a/src/ftcommon.c b/src/ftcommon.c
index b8780ff..bf380ef 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -312,7 +312,8 @@
     handle->encoding = FT_ENCODING_ORDER;
 
     handle->hinted    = 1;
-    handle->use_sbits = 2;  /* including color bitmaps */
+    handle->use_sbits = 1;
+    handle->use_color = 1;
     handle->autohint  = 0;
     handle->lcd_mode  = LCD_MODE_AA;
 
@@ -669,9 +670,10 @@
     if ( handle->autohint )
       flags |= FT_LOAD_FORCE_AUTOHINT;
 
-    if ( handle->use_sbits == 0 )
+    if ( !handle->use_sbits )
       flags |= FT_LOAD_NO_BITMAP;
-    else if ( handle->use_sbits == 2 )
+
+    if ( handle->use_color )
       flags |= FT_LOAD_COLOR;
 
     if ( handle->hinted )
diff --git a/src/ftcommon.h b/src/ftcommon.h
index e793de6..1bc4c33 100644
--- a/src/ftcommon.h
+++ b/src/ftcommon.h
@@ -193,6 +193,7 @@
     /* call FTDemo_Update_Current_Flags after setting any of the following 
fields */
     int             hinted;            /* is glyph hinting active?    */
     int             use_sbits;         /* do we use embedded bitmaps? */
+    int             use_color;         /* do we use coloured glyphs?  */
     int             autohint;          /* force auto-hinting          */
     int             lcd_mode;          /* mono, aa, light, vrgb, ...  */
     int             preload;           /* force font file preloading  */
diff --git a/src/ftview.c b/src/ftview.c
index 2430b49..a289801 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -737,27 +737,27 @@
     grWriteln( "                                                               
             " );
     grWriteln( "b           toggle embedded bitmaps     x, X        adjust 
horizontal       " );
     grWriteln( "                                                     
emboldening (in mode 2)" );
-    grWriteln( "K           toggle cache modes          y, Y        adjust 
vertical         " );
+    grWriteln( "c           toggle coloured glyphs      y, Y        adjust 
vertical         " );
     grWriteln( "                                                     
emboldening (in mode 2)" );
-    grWriteln( "p, n        previous/next font          s, S        adjust 
slanting         " );
+    grWriteln( "K           toggle cache modes          s, S        adjust 
slanting         " );
     grWriteln( "                                                     (in mode 
2)            " );
-    grWriteln( "Up, Down    adjust size by 1 unit       r, R        adjust 
stroking radius  " );
-    grWriteln( "PgUp, PgDn  adjust size by 10 units                  (in mode 
3)            " );
-    grWriteln( "                                                               
             " );
-    grWriteln( "Left, Right adjust index by 1           L           cycle 
through           " );
-    grWriteln( "F7, F8      adjust index by 16                       LCD 
filtering          " );
-    grWriteln( "F9, F10     adjust index by 256         [, ]        select 
custom LCD       " );
-    grWriteln( "F11, F12    adjust index by 4096                      filter 
weight         " );
-    grWriteln( "                                                      (if 
custom filtering) " );
-    grWriteln( "h           toggle hinting              -, +(=)     adjust 
selected custom  " );
-    grWriteln( "H           cycle through hinting                    LCD 
filter weight      " );
+    grWriteln( "p, n        previous/next font          r, R        adjust 
stroking radius  " );
+    grWriteln( "                                                     (in mode 
3)            " );
+    grWriteln( "Up, Down    adjust size by 1 unit                              
             " );
+    grWriteln( "PgUp, PgDn  adjust size by 10 units     L           cycle 
through           " );
+    grWriteln( "                                                     LCD 
filtering          " );
+    grWriteln( "Left, Right adjust index by 1           [, ]        select 
custom LCD       " );
+    grWriteln( "F7, F8      adjust index by 16                        filter 
weight         " );
+    grWriteln( "F9, F10     adjust index by 256                       (if 
custom filtering) " );
+    grWriteln( "F11, F12    adjust index by 4096        -, +(=)     adjust 
selected custom  " );
+    grWriteln( "                                                     LCD 
filter weight      " );
+    grWriteln( "h           toggle hinting                                     
             " );
+    grWriteln( "H           cycle through hinting       g, v        adjust 
gamma value      " );
     grWriteln( "             engines (if available)                            
             " );
-    grWriteln( "f           toggle forced auto-         g, v        adjust 
gamma value      " );
+    grWriteln( "f           toggle forced auto-         Tab         cycle 
through charmaps  " );
     grWriteln( "             hinting (if hinting)                              
             " );
-    grWriteln( "w           toggle warping              Tab         cycle 
through charmaps  " );
-    grWriteln( "             (if available)                                    
             " );
-    grWriteln( "                                                               
             " );
-    grWriteln( "                                        q, ESC      quit 
ftview             " );
+    grWriteln( "w           toggle warping                                     
             " );
+    grWriteln( "             (if available)             q, ESC      quit 
ftview             " );
     /*          |----------------------------------|    
|----------------------------------| */
     grLn();
     grLn();
@@ -1063,9 +1063,13 @@
       break;
 
     case grKEY( 'b' ):
-      handle->use_sbits++;
-      if ( handle->use_sbits > 2)
-        handle->use_sbits = 0;
+      handle->use_sbits = !handle->use_sbits;
+      FTDemo_Update_Current_Flags( handle );
+      status.update = 1;
+      break;
+
+    case grKEY( 'c' ):
+      handle->use_color = !handle->use_color;
       FTDemo_Update_Current_Flags( handle );
       status.update = 1;
       break;
@@ -1559,8 +1563,13 @@
 
     /* embedded bitmaps */
     sprintf( buf, "bitmaps: %s",
-                  handle->use_sbits == 2 ? "color" :
-                  handle->use_sbits == 1 ? "gray" : "off" );
+                  handle->use_sbits ? "on" : "off" );
+    grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
+                       buf, display->fore_color );
+
+    /* color */
+    sprintf( buf, "color: %s",
+                  handle->use_color ? "on" : "off" );
     grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
                        buf, display->fore_color );
 



reply via email to

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