/* Create a new FT_Face from a file path to an LWFN file. */ static FT_Error FT_New_Face_From_LWFN( FT_Library library, const UInt8* pathname, FT_Long face_index, FT_Face* aface ) { FT_Byte* pfb_data; FT_ULong pfb_size; FT_Error error; ResFileRefNum res; if ( noErr != FT_FSPathMakeRes( pathname, &res ) ) return FT_Err_Cannot_Open_Resource; pfb_data = NULL; pfb_size = 0; error = read_lwfn( library->memory, res, &pfb_data, &pfb_size ); CloseResFile( res ); /* PFB is already loaded, useless anymore */ if ( error ) return error; return open_face_from_buffer( library, pfb_data, pfb_size, face_index, "type1", aface ); }
/* Create a new FT_Face from a file spec to an LWFN file. */ static FT_Error FT_New_Face_From_LWFN( FT_Library library, FSSpec* spec, FT_Long face_index, FT_Face* aface ) { FT_Byte* pfb_data; FT_ULong pfb_size; FT_Error error; FT_Memory memory = library->memory; error = read_lwfn( library->memory, spec, &pfb_data, &pfb_size ); if ( error ) return error; #if 0 { FILE* f; char* path; path = p2c_str( spec->name ); strcat( path, ".PFB" ); f = fopen( path, "wb" ); if ( f ) { fwrite( pfb_data, 1, pfb_size, f ); fclose( f ); } } #endif return open_face_from_buffer( library, pfb_data, pfb_size, face_index, "type1", aface ); }
/* Create a new FT_Face from a file spec to an LWFN file. */ static FT_Error FT_New_Face_From_LWFN( FT_Library library, FSSpec* spec, FT_Long face_index, FT_Face *aface ) { FT_Byte* pfb_data; FT_ULong pfb_size; FT_Error error; error = read_lwfn( library->memory, spec, &pfb_data, &pfb_size ); if ( error ) return error; return open_face_from_buffer( library, pfb_data, pfb_size, face_index, "type1", aface ); }