1 /***************************************************************************/ 2 /* */ 3 /* t1load.h */ 4 /* */ 5 /* Type 1 font loader (specification). */ 6 /* */ 7 /* Copyright 1996-2015 by */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* */ 10 /* This file is part of the FreeType project, and may only be used, */ 11 /* modified, and distributed under the terms of the FreeType project */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* this file you indicate that you have read the license and */ 14 /* understand and accept it fully. */ 15 /* */ 16 /***************************************************************************/ 17 18 19 #ifndef __T1LOAD_H__ 20 #define __T1LOAD_H__ 21 22 23 #include <ft2build.h> 24 #include FT_INTERNAL_STREAM_H 25 #include FT_INTERNAL_POSTSCRIPT_AUX_H 26 #include FT_MULTIPLE_MASTERS_H 27 28 #include "t1parse.h" 29 30 31 FT_BEGIN_HEADER 32 33 34 typedef struct T1_Loader_ 35 { 36 T1_ParserRec parser; /* parser used to read the stream */ 37 38 FT_Int num_chars; /* number of characters in encoding */ 39 PS_TableRec encoding_table; /* PS_Table used to store the */ 40 /* encoding character names */ 41 42 FT_Int num_glyphs; 43 PS_TableRec glyph_names; 44 PS_TableRec charstrings; 45 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */ 46 47 FT_Int num_subrs; 48 PS_TableRec subrs; 49 FT_Bool fontdata; 50 51 FT_UInt keywords_encountered; /* T1_LOADER_ENCOUNTERED_XXX */ 52 53 } T1_LoaderRec, *T1_Loader; 54 55 56 /* treatment of some keywords differs depending on whether */ 57 /* they precede or follow certain other keywords */ 58 59 #define T1_PRIVATE ( 1 << 0 ) 60 #define T1_FONTDIR_AFTER_PRIVATE ( 1 << 1 ) 61 62 63 FT_LOCAL( FT_Error ) 64 T1_Open_Face( T1_Face face ); 65 66 #ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT 67 68 FT_LOCAL( FT_Error ) 69 T1_Get_Multi_Master( T1_Face face, 70 FT_Multi_Master* master ); 71 72 FT_LOCAL_DEF( FT_Error ) 73 T1_Get_MM_Var( T1_Face face, 74 FT_MM_Var* *master ); 75 76 FT_LOCAL( FT_Error ) 77 T1_Set_MM_Blend( T1_Face face, 78 FT_UInt num_coords, 79 FT_Fixed* coords ); 80 81 FT_LOCAL( FT_Error ) 82 T1_Set_MM_Design( T1_Face face, 83 FT_UInt num_coords, 84 FT_Long* coords ); 85 86 FT_LOCAL_DEF( FT_Error ) 87 T1_Set_Var_Design( T1_Face face, 88 FT_UInt num_coords, 89 FT_Fixed* coords ); 90 91 FT_LOCAL( void ) 92 T1_Done_Blend( T1_Face face ); 93 94 #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */ 95 96 97 FT_END_HEADER 98 99 #endif /* __T1LOAD_H__ */ 100 101 102 /* END */ 103