diff options
Diffstat (limited to 'freetype/src/type42/t42objs.c')
-rw-r--r-- | freetype/src/type42/t42objs.c | 81 |
1 files changed, 54 insertions, 27 deletions
diff --git a/freetype/src/type42/t42objs.c b/freetype/src/type42/t42objs.c index 1454c46cd..865381a15 100644 --- a/freetype/src/type42/t42objs.c +++ b/freetype/src/type42/t42objs.c @@ -4,7 +4,7 @@ /* */ /* Type 42 objects manager (body). */ /* */ -/* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 */ +/* Copyright 2002-2009, 2011 */ /* by Roberto Alameda. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -21,7 +21,7 @@ #include "t42error.h" #include <freetype/internal/ftdebug.h> #include FT_LIST_H -#include FT_TRUETYPE_IDS_H +#include FT_TRUETYPE_IDS_H #undef FT_COMPONENT @@ -61,6 +61,8 @@ if ( type1->font_type != 42 ) { + FT_ERROR(( "T42_Open_Face: cannot handle FontType %d\n", + type1->font_type )); error = T42_Err_Unknown_File_Format; goto Exit; } @@ -152,11 +154,12 @@ FT_LOCAL_DEF( FT_Error ) T42_Face_Init( FT_Stream stream, - T42_Face face, + FT_Face t42face, /* T42_Face */ FT_Int face_index, FT_Int num_params, FT_Parameter* params ) { + T42_Face face = (T42_Face)t42face; FT_Error error; FT_Service_PsCMaps psnames; PSAux_Service psaux; @@ -179,6 +182,14 @@ face->psaux = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ), "psaux" ); psaux = (PSAux_Service)face->psaux; + if ( !psaux ) + { + FT_ERROR(( "T42_Face_Init: cannot access `psaux' module\n" )); + error = T42_Err_Missing_Module; + goto Exit; + } + + FT_TRACE2(( "Type 42 driver\n" )); /* open the tokenizer, this will also check the font format */ error = T42_Open_Face( face ); @@ -321,7 +332,7 @@ root->face_flags |= FT_FACE_FLAG_VERTICAL; { - if ( psnames && psaux ) + if ( psnames ) { FT_CharMapRec charmap; T1_CMap_Classes cmap_classes = psaux->t1_cmap_classes; @@ -390,8 +401,9 @@ FT_LOCAL_DEF( void ) - T42_Face_Done( T42_Face face ) + T42_Face_Done( FT_Face t42face ) { + T42_Face face = (T42_Face)t42face; T1_Font type1; PS_FontInfo info; FT_Memory memory; @@ -459,12 +471,19 @@ /* FreeType error code. 0 means success. */ /* */ FT_LOCAL_DEF( FT_Error ) - T42_Driver_Init( T42_Driver driver ) + T42_Driver_Init( FT_Module module ) /* T42_Driver */ { - FT_Module ttmodule; + T42_Driver driver = (T42_Driver)module; + FT_Module ttmodule; - ttmodule = FT_Get_Module( FT_MODULE(driver)->library, "truetype" ); + ttmodule = FT_Get_Module( module->library, "truetype" ); + if ( !ttmodule ) + { + FT_ERROR(( "T42_Driver_Init: cannot access `truetype' module\n" )); + return T42_Err_Missing_Module; + } + driver->ttclazz = (FT_Driver_Class)ttmodule->clazz; return T42_Err_Ok; @@ -472,23 +491,24 @@ FT_LOCAL_DEF( void ) - T42_Driver_Done( T42_Driver driver ) + T42_Driver_Done( FT_Module module ) { - FT_UNUSED( driver ); + FT_UNUSED( module ); } FT_LOCAL_DEF( FT_Error ) - T42_Size_Init( T42_Size size ) + T42_Size_Init( FT_Size size ) /* T42_Size */ { - FT_Face face = size->root.face; + T42_Size t42size = (T42_Size)size; + FT_Face face = size->face; T42_Face t42face = (T42_Face)face; FT_Size ttsize; FT_Error error = T42_Err_Ok; error = FT_New_Size( t42face->ttf_face, &ttsize ); - size->ttsize = ttsize; + t42size->ttsize = ttsize; FT_Activate_Size( ttsize ); @@ -497,10 +517,11 @@ FT_LOCAL_DEF( FT_Error ) - T42_Size_Request( T42_Size size, + T42_Size_Request( FT_Size t42size, /* T42_Size */ FT_Size_Request req ) { - T42_Face face = (T42_Face)size->root.face; + T42_Size size = (T42_Size)t42size; + T42_Face face = (T42_Face)t42size->face; FT_Error error; @@ -508,17 +529,18 @@ error = FT_Request_Size( face->ttf_face, req ); if ( !error ) - ( (FT_Size)size )->metrics = face->ttf_face->size->metrics; + t42size->metrics = face->ttf_face->size->metrics; return error; } FT_LOCAL_DEF( FT_Error ) - T42_Size_Select( T42_Size size, + T42_Size_Select( FT_Size t42size, /* T42_Size */ FT_ULong strike_index ) { - T42_Face face = (T42_Face)size->root.face; + T42_Size size = (T42_Size)t42size; + T42_Face face = (T42_Face)t42size->face; FT_Error error; @@ -526,7 +548,7 @@ error = FT_Select_Size( face->ttf_face, (FT_Int)strike_index ); if ( !error ) - ( (FT_Size)size )->metrics = face->ttf_face->size->metrics; + t42size->metrics = face->ttf_face->size->metrics; return error; @@ -534,9 +556,10 @@ FT_LOCAL_DEF( void ) - T42_Size_Done( T42_Size size ) + T42_Size_Done( FT_Size t42size ) /* T42_Size */ { - FT_Face face = size->root.face; + T42_Size size = (T42_Size)t42size; + FT_Face face = t42size->face; T42_Face t42face = (T42_Face)face; FT_ListNode node; @@ -551,12 +574,13 @@ FT_LOCAL_DEF( FT_Error ) - T42_GlyphSlot_Init( T42_GlyphSlot slot ) + T42_GlyphSlot_Init( FT_GlyphSlot t42slot ) /* T42_GlyphSlot */ { - FT_Face face = slot->root.face; - T42_Face t42face = (T42_Face)face; - FT_GlyphSlot ttslot; - FT_Error error = T42_Err_Ok; + T42_GlyphSlot slot = (T42_GlyphSlot)t42slot; + FT_Face face = t42slot->face; + T42_Face t42face = (T42_Face)face; + FT_GlyphSlot ttslot; + FT_Error error = T42_Err_Ok; if ( face->glyph == NULL ) @@ -575,8 +599,11 @@ FT_LOCAL_DEF( void ) - T42_GlyphSlot_Done( T42_GlyphSlot slot ) + T42_GlyphSlot_Done( FT_GlyphSlot t42slot ) /* T42_GlyphSlot */ { + T42_GlyphSlot slot = (T42_GlyphSlot)t42slot; + + FT_Done_GlyphSlot( slot->ttslot ); } |