diff options
Diffstat (limited to 'src/psaux/psft.c')
-rw-r--r-- | src/psaux/psft.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/src/psaux/psft.c b/src/psaux/psft.c index 34ac0b691..25d4a4018 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 ) @@ -472,10 +477,11 @@ FT_ASSERT( decoder && decoder->builder.face ); FT_ASSERT( vec && len ); - - face = decoder->builder.face; + FT_ASSERT( !decoder->builder.is_t1 ); + + face = (TT_Face)decoder->builder.face; mm = (FT_Service_MultiMasters)face->mm; - + return mm->get_var_blend( FT_FACE( face ), len, NULL, vec, NULL ); } #endif @@ -487,7 +493,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 +505,7 @@ * */ return cf2_intToFixed( - decoder->builder.face->root.size->metrics.y_ppem ); + decoder->builder.face->size->metrics.y_ppem ); } @@ -650,13 +656,14 @@ FT_ASSERT( decoder ); + FT_ASSERT( !decoder->builder.is_t1 ); FT_ZERO( buf ); #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 +673,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 ); @@ -690,8 +697,9 @@ CF2_Buffer buf ) { FT_ASSERT( decoder ); + FT_ASSERT( !decoder->builder.is_t1 ); - 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 ) ); } |