freetype-commit
[Top][All Lists]
Advanced

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

[freetype2] master 93e3cff 34/43: Change subfont synthesis for CID fonts


From: Werner LEMBERG
Subject: [freetype2] master 93e3cff 34/43: Change subfont synthesis for CID fonts.
Date: Mon, 25 Sep 2017 03:29:29 -0400 (EDT)

branch: master
commit 93e3cffddff86e7b1eafd670b406a8bafd24c629
Author: Ewald Hew <address@hidden>
Commit: Werner Lemberg <address@hidden>

    Change subfont synthesis for CID fonts.
    
    Change `t1_make_subfont' to take in the Private dict record as an
    argument.  This is because Type 1 and CID font records in FreeType
    have this in different places.
    
    * src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
    `FT_Face' so that CID is also accepted.
    Take `PS_Private' as an argument and let caller figure out where the
    Private dict actually is.
    Update references.
    
    * include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
    declaration.
    
    * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
    call.
---
 ChangeLog                         | 20 ++++++++++++++++++++
 include/freetype/internal/psaux.h |  4 ++--
 src/psaux/psobjs.c                | 18 ++++++++----------
 src/psaux/psobjs.h                |  3 ++-
 src/type1/t1gload.c               |  2 +-
 5 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c7288c3..09cd993 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,25 @@
 2017-09-25  Ewald Hew  <address@hidden>
 
+       [psaux] Change subfont synthesis for CID fonts.
+
+       Change `t1_make_subfont' to take in the Private dict record as an
+       argument.  This is because Type 1 and CID font records in FreeType
+       have this in different places.
+
+       * src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
+       `FT_Face' so that CID is also accepted.
+       Take `PS_Private' as an argument and let caller figure out where the
+       Private dict actually is.
+       Update references.
+
+       * include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
+       declaration.
+
+       * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
+       call.
+
+2017-09-25  Ewald Hew  <address@hidden>
+
        [type1] Switch to Adobe engine.
 
        * src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
diff --git a/include/freetype/internal/psaux.h 
b/include/freetype/internal/psaux.h
index 9748368..7357da4 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -1291,10 +1291,10 @@ FT_BEGIN_HEADER
                         PS_Decoder*  ps_decoder );
 
     void
-    (*t1_make_subfont)( T1_Face      face,
+    (*t1_make_subfont)( FT_Face      face,
+                        PS_Private   priv,
                         CFF_SubFont  subfont );
 
-
     T1_CMap_Classes  t1_cmap_classes;
 
     /* fields after this comment line were added after version 2.1.10 */
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index 3fd2fda..b592163 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -2329,10 +2329,10 @@
 
 
   FT_LOCAL_DEF( void )
-  t1_make_subfont( T1_Face      face,
+  t1_make_subfont( FT_Face      face,
+                   PS_Private   priv,
                    CFF_SubFont  subfont )
   {
-    PS_Private   priv  = &face->type1.private_dict;
     CFF_Private  cpriv = &subfont->private_dict;
     FT_UInt      n, count;
 
@@ -2379,20 +2379,18 @@
 
 
     /* Initialize the random number generator. */
-    if ( face->root.internal->random_seed != -1 )
+    if ( face->internal->random_seed != -1 )
     {
       /* . If we have a face-specific seed, use it.    */
       /*   If non-zero, update it to a positive value. */
-      subfont->random = (FT_UInt32)face->root.internal->random_seed;
-      if ( face->root.internal->random_seed )
+      subfont->random = (FT_UInt32)face->internal->random_seed;
+      if ( face->internal->random_seed )
       {
         do
         {
-          face->root.internal->random_seed =
-            (FT_Int32)((PSAux_Service)face->psaux)->cff_random(
-              (FT_UInt32)face->root.internal->random_seed );
-
-        } while ( face->root.internal->random_seed < 0 );
+          face->internal->random_seed = (FT_Int32)cff_random(
+            (FT_UInt32)face->internal->random_seed );
+        } while ( face->internal->random_seed < 0 );
       }
     }
     if ( !subfont->random )
diff --git a/src/psaux/psobjs.h b/src/psaux/psobjs.h
index 2fed988..aed19de 100644
--- a/src/psaux/psobjs.h
+++ b/src/psaux/psobjs.h
@@ -285,7 +285,8 @@ FT_BEGIN_HEADER
   /*************************************************************************/
 
   FT_LOCAL( void )
-  t1_make_subfont( T1_Face      face,
+  t1_make_subfont( FT_Face      face,
+                   PS_Private   priv,
                    CFF_SubFont  subfont );
 
   FT_LOCAL( void )
diff --git a/src/type1/t1gload.c b/src/type1/t1gload.c
index b1020e9..6e5d3e8 100644
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -112,7 +112,7 @@
 
         psaux->ps_decoder_init( decoder, TRUE, &psdecoder );
 
-        psaux->t1_make_subfont( face, &subfont );
+        psaux->t1_make_subfont( FT_FACE( face ), &face->type1.private_dict, 
&subfont );
         psdecoder.current_subfont = &subfont;
 
         error = decoder_funcs->parse_charstrings( &psdecoder,



reply via email to

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