freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master f403f20: [ftview, ftstring, ftgrid] Remove anti


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master f403f20: [ftview, ftstring, ftgrid] Remove anti-aliasing toggle.
Date: Sun, 26 Mar 2017 23:32:45 -0400 (EDT)

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

    [ftview, ftstring, ftgrid] Remove anti-aliasing toggle.
    
    * src/ftcommon.h (FTDemo_Handle): Replace `antialias' field with
    `LCD_MODE_MONO' enumerator.
    * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap,
    FTDemo_Index_To_Bitmap): Updated.
    * src/ftgrid.c (Process_Event, event_help, event_lcd_mode_change,
    event_lcd_filter_change): Ditto.
    * src/ftstring.c (Process_Event, event_help, event_lcdmode_change):
    Ditto.
    * src/ftview.c (Process_Event, event_help, write_header): Ditto.
---
 ChangeLog      | 14 ++++++++++
 src/ftcommon.c | 82 ++++++++++++++++++++++++++++++++-------------------------
 src/ftcommon.h |  6 ++---
 src/ftgrid.c   | 78 ++++++++++++++++++++++++------------------------------
 src/ftstring.c | 17 ++++--------
 src/ftview.c   | 83 ++++++++++++++++++++++++----------------------------------
 6 files changed, 136 insertions(+), 144 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 514b97b..c577b23 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2017-03-26  Alexei Podtelezhnikov  <address@hidden>
+
+       [ftview, ftstring, ftgrid] Remove anti-aliasing toggle.
+
+       * src/ftcommon.h (FTDemo_Handle): Replace `antialias' field with
+       `LCD_MODE_MONO' enumerator.
+       * src/ftcommon.c (FTDemo_Update_Current_Flags, FTDemo_Glyph_To_Bitmap,
+       FTDemo_Index_To_Bitmap): Updated.
+       * src/ftgrid.c (Process_Event, event_help, event_lcd_mode_change,
+       event_lcd_filter_change): Ditto.
+       * src/ftstring.c (Process_Event, event_help, event_lcdmode_change):
+       Ditto.
+       * src/ftview.c (Process_Event, event_help, write_header): Ditto.
+
 2017-03-24  Alexei Podtelezhnikov  <address@hidden>
 
        * src/ftview.c (Render_*): Improve readability.
diff --git a/src/ftcommon.c b/src/ftcommon.c
index bbcfd37..3c37952 100644
--- a/src/ftcommon.c
+++ b/src/ftcommon.c
@@ -297,10 +297,9 @@
     handle->encoding = FT_ENCODING_NONE;
 
     handle->hinted    = 1;
-    handle->antialias = 1;
     handle->use_sbits = 1;
     handle->autohint  = 0;
-    handle->lcd_mode  = 0;
+    handle->lcd_mode  = 1;
     handle->color     = 1;
 
     handle->use_sbits_cache = 1;
@@ -613,30 +612,29 @@
     {
       target = 0;
 
-      if ( handle->antialias )
+      switch ( handle->lcd_mode )
       {
-        switch ( handle->lcd_mode )
-        {
-        case LCD_MODE_LIGHT:
-          target = FT_LOAD_TARGET_LIGHT;
-          break;
+      case LCD_MODE_MONO:
+        target = FT_LOAD_TARGET_MONO;
+        break;
 
-        case LCD_MODE_RGB:
-        case LCD_MODE_BGR:
-          target = FT_LOAD_TARGET_LCD;
-          break;
+      case LCD_MODE_LIGHT:
+        target = FT_LOAD_TARGET_LIGHT;
+        break;
 
-        case LCD_MODE_VRGB:
-        case LCD_MODE_VBGR:
-          target = FT_LOAD_TARGET_LCD_V;
-          break;
+      case LCD_MODE_RGB:
+      case LCD_MODE_BGR:
+        target = FT_LOAD_TARGET_LCD;
+        break;
 
-        default:
-          target = FT_LOAD_TARGET_NORMAL;
-        }
+      case LCD_MODE_VRGB:
+      case LCD_MODE_VBGR:
+        target = FT_LOAD_TARGET_LCD_V;
+        break;
+
+      default:
+        target = FT_LOAD_TARGET_NORMAL;
       }
-      else
-        target = FT_LOAD_TARGET_MONO;
 
       flags |= target;
     }
@@ -644,7 +642,7 @@
     {
       flags |= FT_LOAD_NO_HINTING;
 
-      if ( !handle->antialias )
+      if ( handle->lcd_mode == 0 )
         flags |= FT_LOAD_MONOCHROME;
     }
 
@@ -707,19 +705,31 @@
 
     if ( glyf->format == FT_GLYPH_FORMAT_OUTLINE )
     {
-      FT_Render_Mode  render_mode = FT_RENDER_MODE_MONO;
+      FT_Render_Mode  render_mode;
 
 
-      if ( handle->antialias )
+      switch ( handle->lcd_mode )
       {
-        if ( handle->lcd_mode == 0 )
-          render_mode = FT_RENDER_MODE_NORMAL;
-        else if ( handle->lcd_mode == 1 )
-          render_mode = FT_RENDER_MODE_LIGHT;
-        else if ( handle->lcd_mode <= 3 )
-          render_mode = FT_RENDER_MODE_LCD;
-        else
-          render_mode = FT_RENDER_MODE_LCD_V;
+      case LCD_MODE_MONO:
+        render_mode = FT_RENDER_MODE_MONO;
+        break;
+
+      case LCD_MODE_LIGHT:
+        render_mode = FT_RENDER_MODE_LIGHT;
+        break;
+
+      case LCD_MODE_RGB:
+      case LCD_MODE_BGR:
+        render_mode = FT_RENDER_MODE_LCD;
+        break;
+
+      case LCD_MODE_VRGB:
+      case LCD_MODE_VBGR:
+        render_mode = FT_RENDER_MODE_LCD_V;
+        break;
+
+      default:
+        render_mode = FT_RENDER_MODE_NORMAL;
       }
 
       /* render the glyph to a bitmap, don't destroy original */
@@ -763,13 +773,13 @@
       break;
 
     case FT_PIXEL_MODE_LCD:
-      target->mode  = handle->lcd_mode == 2 ? gr_pixel_mode_lcd
+      target->mode  = handle->lcd_mode == 3 ? gr_pixel_mode_lcd
                                             : gr_pixel_mode_lcd2;
       target->grays = source->num_grays;
       break;
 
     case FT_PIXEL_MODE_LCD_V:
-      target->mode  = handle->lcd_mode == 4 ? gr_pixel_mode_lcdv
+      target->mode  = handle->lcd_mode == 5 ? gr_pixel_mode_lcdv
                                             : gr_pixel_mode_lcdv2;
       target->grays = source->num_grays;
       break;
@@ -872,12 +882,12 @@
           break;
 
         case FT_PIXEL_MODE_LCD:
-          target->mode  = handle->lcd_mode == 2 ? gr_pixel_mode_lcd
+          target->mode  = handle->lcd_mode == 3 ? gr_pixel_mode_lcd
                                                 : gr_pixel_mode_lcd2;
           break;
 
         case FT_PIXEL_MODE_LCD_V:
-          target->mode  = handle->lcd_mode == 4 ? gr_pixel_mode_lcdv
+          target->mode  = handle->lcd_mode == 5 ? gr_pixel_mode_lcdv
                                                 : gr_pixel_mode_lcdv2;
           break;
 
diff --git a/src/ftcommon.h b/src/ftcommon.h
index 21d0490..f8e642f 100644
--- a/src/ftcommon.h
+++ b/src/ftcommon.h
@@ -134,7 +134,8 @@
   } TFont, *PFont;
 
   enum {
-    LCD_MODE_AA = 0,
+    LCD_MODE_MONO = 0,
+    LCD_MODE_AA,
     LCD_MODE_LIGHT,
     LCD_MODE_RGB,
     LCD_MODE_BGR,
@@ -189,10 +190,9 @@
 
     /* call FTDemo_Update_Current_Flags after setting any of the following 
fields */
     int             hinted;            /* is glyph hinting active?    */
-    int             antialias;         /* is anti-aliasing active?    */
     int             use_sbits;         /* do we use embedded bitmaps? */
     int             autohint;          /* force auto-hinting          */
-    int             lcd_mode;
+    int             lcd_mode;          /* mono, aa, light, vrgb, ...  */
     int             preload;           /* force font file preloading  */
     int             color;             /* load color bitmaps          */
 
diff --git a/src/ftgrid.c b/src/ftgrid.c
index e9ec6d6..55a9482 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -984,7 +984,7 @@
     grWriteln( "f           toggle forced auto-         d           toggle dot 
display      " );
     grWriteln( "             hinting (if hinting)       o           toggle 
outline display  " );
     grWriteln( "                                        D           toggle 
dotnumber display" );
-    grWriteln( "a           toggle anti-aliasing                               
             " );
+    grWriteln( "                                                               
             " );
     grWriteln( "F5, F6      cycle through               if Multiple Master or 
GX font:      " );
     grWriteln( "             anti-aliasing modes          F2        cycle 
through axes      " );
     grWriteln( "L           cycle through LCD             F3, F4    adjust 
current axis by  " );
@@ -1156,52 +1156,50 @@
   static void
   event_lcd_mode_change( int  delta )
   {
-    if ( handle->antialias )
-    {
-      const char*  lcd_mode = NULL;
+    const char*  lcd_mode = NULL;
 
 
-      handle->lcd_mode = ( handle->lcd_mode +
-                           delta            +
-                           N_LCD_MODES      ) % N_LCD_MODES;
+    handle->lcd_mode = ( handle->lcd_mode +
+                         delta            +
+                         N_LCD_MODES      ) % N_LCD_MODES;
 
-      switch ( handle->lcd_mode )
-      {
-      case LCD_MODE_AA:
-        lcd_mode = "normal AA";
-        break;
-      case LCD_MODE_LIGHT:
-        lcd_mode = "light AA";
-        break;
-      case LCD_MODE_RGB:
-        lcd_mode = "LCD (horiz. RGB)";
-        break;
-      case LCD_MODE_BGR:
-        lcd_mode = "LCD (horiz. BGR)";
-        break;
-      case LCD_MODE_VRGB:
-        lcd_mode = "LCD (vert. RGB)";
-        break;
-      case LCD_MODE_VBGR:
-        lcd_mode = "LCD (vert. BGR)";
-        break;
-      }
-      sprintf( status.header_buffer, "rendering mode changed to %s",
-               lcd_mode );
+    switch ( handle->lcd_mode )
+    {
+    case LCD_MODE_MONO:
+      lcd_mode = "monochrome";
+      break;
+    case LCD_MODE_AA:
+      lcd_mode = "normal AA";
+      break;
+    case LCD_MODE_LIGHT:
+      lcd_mode = "light AA";
+      break;
+    case LCD_MODE_RGB:
+      lcd_mode = "LCD (horiz. RGB)";
+      break;
+    case LCD_MODE_BGR:
+      lcd_mode = "LCD (horiz. BGR)";
+      break;
+    case LCD_MODE_VRGB:
+      lcd_mode = "LCD (vert. RGB)";
+      break;
+    case LCD_MODE_VBGR:
+      lcd_mode = "LCD (vert. BGR)";
+      break;
+    }
+    sprintf( status.header_buffer, "rendering mode changed to %s",
+             lcd_mode );
 
-      status.header = (const char *)status.header_buffer;
+    status.header = (const char *)status.header_buffer;
 
-      FTDemo_Update_Current_Flags( handle );
-    }
-    else
-      status.header = "need anti-aliasing to change rendering mode";
+    FTDemo_Update_Current_Flags( handle );
   }
 
 
   static void
   event_lcd_filter_change( void )
   {
-    if ( handle->antialias && handle->lcd_mode > 1 )
+    if ( handle->lcd_mode > 2 )
     {
       const char*  lcd_filter = NULL;
 
@@ -1490,14 +1488,6 @@
       event_help();
       break;
 
-    case grKEY( 'a' ):
-      handle->antialias = !handle->antialias;
-      status.header     = handle->antialias ? "anti-aliasing is now on"
-                                            : "anti-aliasing is now off";
-
-      FTDemo_Update_Current_Flags( handle );
-      break;
-
     case grKEY( 'f' ):
       handle->autohint = !handle->autohint;
       status.header    = handle->autohint ? "forced auto-hinting is now on"
diff --git a/src/ftstring.c b/src/ftstring.c
index 7f026d6..5224d9c 100644
--- a/src/ftstring.c
+++ b/src/ftstring.c
@@ -154,13 +154,12 @@
     grLn();
     grWriteln( "  F1 or ?   : display this help screen" );
     grLn();
-    grWriteln( "  a         : toggle anti-aliasing" );
     grWriteln( "  b         : toggle embedded bitmaps (and disable rotation)" 
);
     grWriteln( "  f         : toggle forced auto-hinting" );
     grWriteln( "  h         : toggle outline hinting" );
     grLn();
     grWriteln( "  1-2       : select rendering mode" );
-    grWriteln( "  l         : cycle through LCD modes" );
+    grWriteln( "  l         : cycle through anti-aliasing modes" );
     grWriteln( "  k         : cycle through kerning modes" );
     grWriteln( "  t         : cycle through kerning degrees" );
     grWriteln( "  Space     : cycle through color" );
@@ -252,6 +251,9 @@
 
     switch ( handle->lcd_mode )
     {
+    case LCD_MODE_AA:
+      lcd_mode = " normal AA";
+      break;
     case LCD_MODE_LIGHT:
       lcd_mode = " light AA";
       break;
@@ -269,7 +271,7 @@
       break;
     default:
       handle->lcd_mode = 0;
-      lcd_mode = " normal AA";
+      lcd_mode = " monochrome";
     }
 
     sprintf( status.header_buffer, "mode changed to %s", lcd_mode );
@@ -391,15 +393,6 @@
       event_help();
       break;
 
-    case grKEY( 'a' ):
-      handle->antialias = !handle->antialias;
-      status.header     = handle->antialias
-                          ? (char *)"anti-aliasing is now on"
-                          : (char *)"anti-aliasing is now off";
-
-      FTDemo_Update_Current_Flags( handle );
-      break;
-
     case grKEY( 'b' ):
       handle->use_sbits = !handle->use_sbits;
       status.header     = handle->use_sbits
diff --git a/src/ftview.c b/src/ftview.c
index 9e5f7a0..7148c25 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -717,14 +717,14 @@
     grWriteln( "F1, ?       display this help screen                           
             " );
     grWriteln( "                                                               
             " );
     grWriteln( "render modes:                           anti-aliasing modes:   
             " );
-    grWriteln( "  1         all glyphs                    A         normal     
             " );
-    grWriteln( "  2         all glyphs fancy              B         light      
             " );
-    grWriteln( "             (emboldened / slanted)       C         horizontal 
RGB (LCD)    " );
-    grWriteln( "  3         all glyphs stroked            D         horizontal 
BGR (LCD)    " );
-    grWriteln( "  4         text string                   E         vertical 
RGB (LCD)      " );
-    grWriteln( "  5         waterfall                     F         vertical 
BGR (LCD)      " );
-    grWriteln( "  space     cycle forwards                k         cycle 
forwards          " );
-    grWriteln( "  backspace cycle backwards               l         cycle 
backwards         " );
+    grWriteln( "  1         all glyphs                    A         monochrome 
             " );
+    grWriteln( "  2         all glyphs fancy              B         normal     
             " );
+    grWriteln( "             (emboldened / slanted)       C         light      
             " );
+    grWriteln( "  3         all glyphs stroked            D         horizontal 
RGB (LCD)    " );
+    grWriteln( "  4         text string                   E         horizontal 
BGR (LCD)    " );
+    grWriteln( "  5         waterfall                     F         vertical 
RGB (LCD)      " );
+    grWriteln( "  space     cycle forwards                G         vertical 
BGR (LCD)      " );
+    grWriteln( "  backspace cycle backwards             k, l        cycle back 
and forth    " );
     grWriteln( "                                                               
             " );
     grWriteln( "b           toggle embedded bitmaps     x, X        adjust 
horizontal       " );
     grWriteln( "c           toggle color glyphs                      
emboldening (in mode 2)" );
@@ -748,7 +748,7 @@
     grWriteln( "w           toggle warping (in light    Tab         cycle 
through charmaps  " );
     grWriteln( "             AA mode, if available)                            
             " );
     grWriteln( "                                                               
             " );
-    grWriteln( "a           toggle anti-aliasing        q, ESC      quit 
ftview             " );
+    grWriteln( "                                        q, ESC      quit 
ftview             " );
     /*          |----------------------------------|    
|----------------------------------| */
     grLn();
     grLn();
@@ -1064,17 +1064,14 @@
       return ret;
     }
 
-    if ( handle->antialias )
+    if ( handle->lcd_mode == (int)( event->key - 'A' ) )
+      return ret;
+    if ( event->key >= 'A' && event->key < 'A' + N_LCD_MODES )
     {
-      if ( handle->lcd_mode == (int)( event->key - 'A' ) )
-        return ret;
-      if ( event->key >= 'A' && event->key < 'A' + N_LCD_MODES )
-      {
-        handle->lcd_mode = event->key - 'A';
-        FTDemo_Update_Current_Flags( handle );
-        status.update = 1;
-        return ret;
-      }
+      handle->lcd_mode = event->key - 'A';
+      FTDemo_Update_Current_Flags( handle );
+      status.update = 1;
+      return ret;
     }
 
     switch ( event->key )
@@ -1090,12 +1087,6 @@
       status.update = 1;
       break;
 
-    case grKEY( 'a' ):
-      handle->antialias = !handle->antialias;
-      FTDemo_Update_Current_Flags( handle );
-      status.update = 1;
-      break;
-
     case grKEY( 'b' ):
       handle->use_sbits = !handle->use_sbits;
       FTDemo_Update_Current_Flags( handle );
@@ -1152,18 +1143,15 @@
 
     case grKEY( 'l' ):
     case grKEY( 'k' ):
-      if ( handle->antialias )
-      {
-        handle->lcd_mode = ( event->key == grKEY( 'l' ) )
-                           ? ( ( handle->lcd_mode == ( N_LCD_MODES - 1 ) )
-                               ? 0
-                               : handle->lcd_mode + 1 )
-                           : ( ( handle->lcd_mode == 0 )
-                               ? ( N_LCD_MODES - 1 )
-                               : handle->lcd_mode - 1 );
-        FTDemo_Update_Current_Flags( handle );
-        status.update = 1;
-      }
+      handle->lcd_mode = ( event->key == grKEY( 'l' ) )
+                         ? ( ( handle->lcd_mode == ( N_LCD_MODES - 1 ) )
+                             ? 0
+                             : handle->lcd_mode + 1 )
+                         : ( ( handle->lcd_mode == 0 )
+                             ? ( N_LCD_MODES - 1 )
+                             : handle->lcd_mode - 1 );
+      FTDemo_Update_Current_Flags( handle );
+      status.update = 1;
       break;
 
     case grKEY( 'w' ):
@@ -1587,36 +1575,33 @@
     line++;
 
     /* anti-aliasing */
-    sprintf( buf, "anti-alias: %s",
-                  handle->antialias ? "on" : "off" );
-    grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
-                       buf, display->fore_color );
-
-    if ( handle->antialias )
     {
       const char*  lcd_mode;
 
 
       switch ( handle->lcd_mode )
       {
+      case LCD_MODE_AA:
+        lcd_mode = "normal AA";
+        break;
       case LCD_MODE_LIGHT:
-        lcd_mode = " light AA";
+        lcd_mode = "light AA";
         break;
       case LCD_MODE_RGB:
-        lcd_mode = " LCD (horiz. RGB)";
+        lcd_mode = "LCD (horiz. RGB)";
         break;
       case LCD_MODE_BGR:
-        lcd_mode = " LCD (horiz. BGR)";
+        lcd_mode = "LCD (horiz. BGR)";
         break;
       case LCD_MODE_VRGB:
-        lcd_mode = " LCD (vert. RGB)";
+        lcd_mode = "LCD (vert. RGB)";
         break;
       case LCD_MODE_VBGR:
-        lcd_mode = " LCD (vert. BGR)";
+        lcd_mode = "LCD (vert. BGR)";
         break;
       default:
         handle->lcd_mode = 0;
-        lcd_mode = " normal AA";
+        lcd_mode = "monochrome";
       }
       grWriteCellString( display->bitmap, 0, (line++) * HEADER_HEIGHT,
                          lcd_mode, display->fore_color );



reply via email to

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