freetype-commit
[Top][All Lists]
Advanced

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

[freetype2-demos] master 7ba846d: [ftmulti] Show PS name.


From: Werner LEMBERG
Subject: [freetype2-demos] master 7ba846d: [ftmulti] Show PS name.
Date: Thu, 23 Mar 2017 07:00:30 -0400 (EDT)

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

    [ftmulti] Show PS name.
    
    * src/ftmulti.c (Render_All): Adjust vertical start position.
    (Render_Text): Make arguments similar to `Render_All'.
    Adjust vertical start position.
    (main): Updated.
    Print PostScript name.
    Round non-integer axis values to two decimal digits.
---
 ChangeLog     | 13 ++++++++++++-
 src/ftmulti.c | 35 +++++++++++++++++++++++++++--------
 2 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3de9b95..4c2ab3a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,17 @@
+2017-03-23  Werner Lemberg  <address@hidden>
+
+       [ftmulti] Show PS name.
+
+       * src/ftmulti.c (Render_All): Adjust vertical start position.
+       (Render_Text): Make arguments similar to `Render_All'.
+       Adjust vertical start position.
+       (main): Updated.
+       Print PostScript name.
+       Round non-integer axis values to two decimal digits.
+
 2017-03-20  Brian Nixon  <address@hidden>
 
-       [ftview] Improve waterfall mode.
+       [ftview] Improve waterfall mode (#50586).
 
        * src/ftview.c (Render_Waterfall): Stop repeating of the default
        glyph to the end of each line after the display text.
diff --git a/src/ftmulti.c b/src/ftmulti.c
index 7eafde1..a865972 100644
--- a/src/ftmulti.c
+++ b/src/ftmulti.c
@@ -276,7 +276,7 @@
 
 
     start_x = 4;
-    start_y = pt_size + ( used_num_axis > MAX_MM_AXES / 2 ? 44 : 36 );
+    start_y = pt_size + ( used_num_axis > MAX_MM_AXES / 2 ? 52 : 44 );
 
     step_y = size->metrics.y_ppem + 10;
 
@@ -330,7 +330,8 @@
 
 
   static FT_Error
-  Render_Text( unsigned int  first_glyph )
+  Render_Text( unsigned int  first_glyph,
+               int           pt_size )
   {
     FT_F26Dot6    start_x, start_y, step_y, x, y;
     unsigned int  i;
@@ -339,7 +340,7 @@
 
 
     start_x = 4;
-    start_y = 32 + size->metrics.y_ppem;
+    start_y = pt_size + ( used_num_axis > MAX_MM_AXES / 2 ? 52 : 44 );
 
     step_y = size->metrics.y_ppem + 10;
 
@@ -693,9 +694,23 @@
 
       design_pos[axis] = pos;
 
-      /* for MM fonts, round the design coordinates to integers */
+      /* for MM fonts, round the design coordinates to integers,         */
+      /* otherwise round to two decimal digits to make the PS name short */
       if ( !FT_IS_SFNT( face ) )
-        design_pos[axis] &= (FT_Fixed)0xFFFF0000L;
+        design_pos[axis] = ( design_pos[axis] + 0x8000 ) & 0xFFFF0000L;
+      else
+      {
+        double  x;
+
+
+        x  = design_pos[axis] / 65536.0 * 100.0;
+        x += x < 0.0 ? -0.5 : 0.5;
+        x  = (int)x;
+        x  = x / 100.0 * 65536.0;
+        x += x < 0.0 ? -0.5 : 0.5;
+
+        design_pos[axis] = (int)x;
+      }
 
       FT_Set_Var_Design_Coordinates( face, used_num_axis, design_pos );
     }
@@ -985,7 +1000,7 @@
         switch ( render_mode )
         {
         case 0:
-          Render_Text( (unsigned int)Num );
+          Render_Text( (unsigned int)Num, ptsize );
           break;
 
         default:
@@ -1003,6 +1018,10 @@
         grWriteCellString( &bit, 0, 0, new_header, fore_color );
         new_header = NULL;
 
+        sprintf( Header, "PS name: %s",
+                         FT_Get_Postscript_Name( face ) );
+        grWriteCellString( &bit, 0, 16, Header, fore_color );
+
         sprintf( Header, "axes:" );
         {
           unsigned int  limit = used_num_axis > MAX_MM_AXES / 2
@@ -1022,7 +1041,7 @@
                      sizeof ( Header ) - strlen( Header ) - 1 );
           }
         }
-        grWriteCellString( &bit, 0, 16, Header, fore_color );
+        grWriteCellString( &bit, 0, 24, Header, fore_color );
 
         if ( used_num_axis > MAX_MM_AXES / 2 )
         {
@@ -1043,7 +1062,7 @@
                      sizeof ( Header ) - strlen( Header ) - 1 );
           }
 
-          grWriteCellString( &bit, 0, 24, Header, fore_color );
+          grWriteCellString( &bit, 0, 32, Header, fore_color );
         }
 
         {



reply via email to

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