freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] Harmony 5812aef: [ftview] Set up `FT_Library_SetLcdGeo


From: Alexei Podtelezhnikov
Subject: [freetype2-demos] Harmony 5812aef: [ftview] Set up `FT_Library_SetLcdGeometry' testing.
Date: Tue, 1 May 2018 22:42:53 -0400 (EDT)

branch: Harmony
commit 5812aefebb7f61eea80422966c6aa8ce5204da57
Author: Alexei Podtelezhnikov <address@hidden>
Commit: Alexei Podtelezhnikov <address@hidden>

    [ftview] Set up `FT_Library_SetLcdGeometry' testing.
    
    Implement new command line option `-L x1,y1,x2,y2,x3,y3',
    where RGB subpixel coordinates are given in 26.6 format
    relative to the pixel center. For example, the usual
    RGB stripes correspond to `-L -21,0,0,0,21,0'.
---
 src/ftview.c | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/src/ftview.c b/src/ftview.c
index c8c816b..dbda9e7 100644
--- a/src/ftview.c
+++ b/src/ftview.c
@@ -1647,6 +1647,7 @@
       "  -l mode   Set start-up rendering mode (0 <= mode <= %d).\n",
              N_LCD_IDXS - 1 );
     fprintf( stderr,
+      "  -L N,...  Specify LCD geometry by 6 comma-sepatated values.\n"
       "  -p        Preload file in memory to simulate memory-mapping.\n"
       "\n"
       "  -v        Show version.\n"
@@ -1668,7 +1669,7 @@
 
     while ( 1 )
     {
-      option = getopt( *argc, *argv, "e:f:h:l:m:pr:vw:" );
+      option = getopt( *argc, *argv, "e:f:h:L:l:m:pr:vw:" );
 
       if ( option == -1 )
         break;
@@ -1700,6 +1701,27 @@
         handle->lcd_mode = lcd_modes[status.lcd_idx];
         break;
 
+      case 'L':
+        {
+          int i, buf[6];
+
+
+          i = sscanf( optarg, "%d,%d,%d,%d,%d,%d",
+                      buf, buf + 1, buf + 2, buf + 3, buf + 4, buf + 5 );
+          if ( i == 6                                     &&
+               FT_Library_SetLcdGeometry( NULL, NULL ) !=
+                          FT_Err_Unimplemented_Feature    )
+          {
+            FT_Vector  sub[3] = { { buf[0], buf[1] },
+                                  { buf[2], buf[3] },
+                                  { buf[4], buf[5] } };
+
+
+            FT_Library_SetLcdGeometry( handle->library, sub );
+          }
+        }
+        break;
+
       case 'm':
         Text               = optarg;
         status.render_mode = RENDER_MODE_TEXT;



reply via email to

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