freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 1962fa6 2/2: [ftgrid] Teach encodings.


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] master 1962fa6 2/2: [ftgrid] Teach encodings.
Date: Sat, 3 Jun 2017 23:49:04 -0400 (EDT)

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

    [ftgrid] Teach encodings.
    
    * src/ftgrid.c (grid_status_draw_outline): Use encoding.
    (parse_cmdline, usage): New option to specify encoding.
    (Process_Event): Use hexadecimal steps through index.
---
 ChangeLog    |  8 ++++++++
 src/ftgrid.c | 35 +++++++++++++++++++++++++----------
 2 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index dce455a..466a302 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2017-06-03  Alexei Podtelezhnikov  <address@hidden>
 
+       [ftgrid] Teach encodings.
+
+       * src/ftgrid.c (grid_status_draw_outline): Use encoding.
+       (parse_cmdline, usage): New option to specify encoding.
+       (Process_Event): Use hexadecimal steps through index.
+
+2017-06-03  Alexei Podtelezhnikov  <address@hidden>
+
        [ftgrid] Minor.
 
        * src/ftgrid.c (grid_status_draw_outline): Move the stroker
diff --git a/src/ftgrid.c b/src/ftgrid.c
index 98cd2a5..d1cd1a0 100644
--- a/src/ftgrid.c
+++ b/src/ftgrid.c
@@ -640,6 +640,7 @@
   {
     FT_Size       size;
     FT_GlyphSlot  slot;
+    FT_UInt       glyph_idx;
     FT_F26Dot6    scale = st->scale;
     int           ox    = st->x_origin;
     int           oy    = st->y_origin;
@@ -668,7 +669,13 @@
     _af_debug_disable_blue_hints = !st->do_blue_hints;
 #endif
 
-    if ( FT_Load_Glyph( size->face, (FT_UInt)st->Num,
+    if ( handle->encoding == FT_ENCODING_ORDER )
+      glyph_idx = (FT_UInt)st->Num;
+    else
+      glyph_idx = FTDemo_Get_Index( handle, (FT_UInt32)st->Num );
+
+
+    if ( FT_Load_Glyph( size->face, glyph_idx,
                         handle->load_flags | FT_LOAD_NO_BITMAP ) )
       return;
 
@@ -1640,14 +1647,14 @@
       break;
 #endif /* FT_DEBUG_AUTOFIT */
 
-    case grKeyLeft:     event_index_change(    -1 ); break;
-    case grKeyRight:    event_index_change(     1 ); break;
-    case grKeyF7:       event_index_change(   -10 ); break;
-    case grKeyF8:       event_index_change(    10 ); break;
-    case grKeyF9:       event_index_change(  -100 ); break;
-    case grKeyF10:      event_index_change(   100 ); break;
-    case grKeyF11:      event_index_change( -1000 ); break;
-    case grKeyF12:      event_index_change(  1000 ); break;
+    case grKeyLeft:     event_index_change(      -1 ); break;
+    case grKeyRight:    event_index_change(       1 ); break;
+    case grKeyF7:       event_index_change(   -0x10 ); break;
+    case grKeyF8:       event_index_change(    0x10 ); break;
+    case grKeyF9:       event_index_change(  -0x100 ); break;
+    case grKeyF10:      event_index_change(   0x100 ); break;
+    case grKeyF11:      event_index_change( -0x1000 ); break;
+    case grKeyF12:      event_index_change(  0x1000 ); break;
 
     case grKeyUp:       event_size_change(  32 ); break;
     case grKeyDown:     event_size_change( -32 ); break;
@@ -1749,6 +1756,9 @@
     fprintf( stderr,
       "  -r R      Use resolution R dpi (default: 72dpi).\n"
       "  -f index  Specify first index to display (default: 0).\n"
+      "  -e enc    Specify encoding tag (default: no encoding).\n"
+      "            Common values: `unic' (Unicode), `symb' (symbol),\n"
+      "            `ADOB' (Adobe standard), `ADBC' (Adobe custom).\n"
       "  -d \"axis1 axis2 ...\"\n"
       "            Specify the design coordinates for each\n"
       "            Multiple Master axis at start-up.\n"
@@ -1772,7 +1782,7 @@
 
     while ( 1 )
     {
-      option = getopt( *argc, *argv, "d:f:h:r:vw:" );
+      option = getopt( *argc, *argv, "d:e:f:h:r:vw:" );
 
       if ( option == -1 )
         break;
@@ -1798,6 +1808,11 @@
         }
         break;
 
+      case 'e':
+        handle->encoding = FTDemo_Make_Encoding_Tag( optarg );
+        status.Num       = 0x20;
+        break;
+
       case 'f':
         status.Num = atoi( optarg );
         break;



reply via email to

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