freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] ewaldhew-wip 81b3131 41/47: reorganize ps_builder fields


From: Hew Yih Shiuan Ewald
Subject: [freetype2] ewaldhew-wip 81b3131 41/47: reorganize ps_builder fields
Date: Thu, 6 Jul 2017 04:49:39 -0400 (EDT)

branch: ewaldhew-wip
commit 81b31310968cde7d0a629764ba0dc6e1a89ab239
Author: Ewald Hew <address@hidden>
Commit: Ewald Hew <address@hidden>

    reorganize ps_builder fields
    
    Reorder T1_GlyphSlot fields to like CFF_GlyphSlot (pretend the former is
        the latter).
        type1 doesn't set glyph slot when not loading actual glyph
    (computing
        width), so add a check.
        For cf2_getScaleAndHintFlag.
    
    Conflicts:
        src/psaux/psft.c
---
 include/freetype/internal/psaux.h |  2 +-
 src/psaux/psft.c                  | 29 +++++++++++++++++------------
 src/psaux/psobjs.c                |  6 +++---
 src/type1/t1objs.h                |  6 +++---
 4 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/include/freetype/internal/psaux.h 
b/include/freetype/internal/psaux.h
index f86f6e0..9c5e042 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -548,7 +548,7 @@ FT_BEGIN_HEADER
   struct  PS_Builder_
   {
     FT_Memory       memory;
-    TT_Face         face;
+    FT_Face         face;
     CFF_GlyphSlot   glyph;
     FT_GlyphLoader  loader;
     FT_Outline*     base;
diff --git a/src/psaux/psft.c b/src/psaux/psft.c
index 1a5deca..b0f4316 100644
--- a/src/psaux/psft.c
+++ b/src/psaux/psft.c
@@ -293,9 +293,9 @@
   cf2_getUnitsPerEm( PS_Decoder*  decoder )
   {
     FT_ASSERT( decoder && decoder->builder.face );
-    FT_ASSERT( decoder->builder.face->root.units_per_EM );
+    FT_ASSERT( decoder->builder.face->units_per_EM );
 
-    return decoder->builder.face->root.units_per_EM;
+    return decoder->builder.face->units_per_EM;
   }
 
 
@@ -355,7 +355,7 @@
       FT_Bool  no_stem_darkening_driver =
                  driver->no_stem_darkening;
       FT_Char  no_stem_darkening_font =
-                 builder->face->root.internal->no_stem_darkening;
+                 builder->face->internal->no_stem_darkening;
 
       /* local error */
       FT_Error       error2 = FT_Err_Ok;
@@ -384,9 +384,14 @@
                                &hinted,
                                &scaled );
 
-      /* copy isCFF2 boolean from TT_Face to CF2_Font */
-      font->isCFF2 = builder->face->is_cff2;
-      font->isT1   = is_t1;
+      if ( is_t1 )
+        font->isCFF2 = FALSE;
+      else
+      {
+        /* copy isCFF2 boolean from TT_Face to CF2_Font */
+        font->isCFF2 = ((TT_Face)builder->face)->is_cff2;
+      }
+      font->isT1 = is_t1;
 
       font->renderingFlags = 0;
       if ( hinted )
@@ -473,7 +478,7 @@
     FT_ASSERT( decoder && decoder->builder.face );
     FT_ASSERT( vec && len );
     
-    face = decoder->builder.face;
+    face = (TT_Face)decoder->builder.face;
     mm = (FT_Service_MultiMasters)face->mm;
     
     return mm->get_var_blend( FT_FACE( face ), len, NULL, vec, NULL );
@@ -487,7 +492,7 @@
   {
     FT_ASSERT( decoder                          &&
                decoder->builder.face            &&
-               decoder->builder.face->root.size );
+               decoder->builder.face->size );
 
     /*
      * Note that `y_ppem' can be zero if there wasn't a call to
@@ -499,7 +504,7 @@
      *
      */
     return cf2_intToFixed(
-             decoder->builder.face->root.size->metrics.y_ppem );
+             decoder->builder.face->size->metrics.y_ppem );
   }
 
 
@@ -656,7 +661,7 @@
 #ifdef FT_CONFIG_OPTION_INCREMENTAL
     /* Incremental fonts don't necessarily have valid charsets.        */
     /* They use the character code, not the glyph index, in this case. */
-    if ( decoder->builder.face->root.internal->incremental_interface )
+    if ( decoder->builder.face->internal->incremental_interface )
       gid = code;
     else
 #endif /* FT_CONFIG_OPTION_INCREMENTAL */
@@ -666,7 +671,7 @@
         return FT_THROW( Invalid_Glyph_Format );
     }
 
-    error = decoder->get_glyph_callback( decoder->builder.face,
+    error = decoder->get_glyph_callback( (TT_Face)decoder->builder.face,
                                          (CF2_UInt)gid,
                                          &charstring,
                                          &len );
@@ -691,7 +696,7 @@
   {
     FT_ASSERT( decoder );
 
-    decoder->free_glyph_callback( decoder->builder.face,
+    decoder->free_glyph_callback( (TT_Face)decoder->builder.face,
                                   (FT_Byte**)&buf->start,
                                   (FT_ULong)( buf->end - buf->start ) );
   }
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index 2fae4ba..b9f4e16 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -2064,9 +2064,9 @@
     {
       T1_Builder  t1builder = (T1_Builder)builder;
 
-      ps_builder->face           = (TT_Face)t1builder->face;
-      ps_builder->glyph          = t1builder->glyph;
       ps_builder->memory         =  t1builder->memory;
+      ps_builder->face           = (FT_Face)t1builder->face;
+      ps_builder->glyph          = (CFF_GlyphSlot)t1builder->glyph;
       ps_builder->loader         =  t1builder->loader;
       ps_builder->base           =  t1builder->base;
       ps_builder->current        =  t1builder->current;
@@ -2088,8 +2088,8 @@
     {
       CFF_Builder*  cffbuilder = (CFF_Builder*)builder;
 
-      ps_builder->face           = cffbuilder->face;
       ps_builder->memory         =  cffbuilder->memory;
+      ps_builder->face           = (FT_Face)cffbuilder->face;
       ps_builder->glyph          =  cffbuilder->glyph;
       ps_builder->loader         =  cffbuilder->loader;
       ps_builder->base           =  cffbuilder->base;
diff --git a/src/type1/t1objs.h b/src/type1/t1objs.h
index 39d26bf..d009b39 100644
--- a/src/type1/t1objs.h
+++ b/src/type1/t1objs.h
@@ -120,12 +120,12 @@ FT_BEGIN_HEADER
     FT_Bool          hint;
     FT_Bool          scaled;
 
-    FT_Int           max_points;
-    FT_Int           max_contours;
-
     FT_Fixed         x_scale;
     FT_Fixed         y_scale;
 
+    FT_Int           max_points;
+    FT_Int           max_contours;
+
   } T1_GlyphSlotRec;
 
 



reply via email to

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