1 /***************************************************************************/ 2 /* */ 3 /* t1load.h */ 4 /* */ 5 /* Type 1 font loader (specification). */ 6 /* */ 7 /* Copyright 1996-2018 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_Hash subrs_hash; 50 FT_Bool fontdata; 51 52 FT_UInt keywords_encountered; /* T1_LOADER_ENCOUNTERED_XXX */ 53 54 } T1_LoaderRec, *T1_Loader; 55 56 57 /* treatment of some keywords differs depending on whether */ 58 /* they precede or follow certain other keywords */ 59 60 #define T1_PRIVATE ( 1 << 0 ) 61 #define T1_FONTDIR_AFTER_PRIVATE ( 1 << 1 ) 62 63 64 FT_LOCAL( FT_Error ) 65 T1_Open_Face( T1_Face face ); 66 67 #ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT 68 69 FT_LOCAL( FT_Error ) 70 T1_Get_Multi_Master( T1_Face face, 71 FT_Multi_Master* master ); 72 73 FT_LOCAL( FT_Error ) 74 T1_Get_MM_Var( T1_Face face, 75 FT_MM_Var* *master ); 76 77 FT_LOCAL( FT_Error ) 78 T1_Set_MM_Blend( T1_Face face, 79 FT_UInt num_coords, 80 FT_Fixed* coords ); 81 82 FT_LOCAL( FT_Error ) 83 T1_Get_MM_Blend( T1_Face face, 84 FT_UInt num_coords, 85 FT_Fixed* coords ); 86 87 FT_LOCAL( FT_Error ) 88 T1_Set_MM_Design( T1_Face face, 89 FT_UInt num_coords, 90 FT_Long* coords ); 91 92 FT_LOCAL( FT_Error ) 93 T1_Reset_MM_Blend( T1_Face face, 94 FT_UInt instance_index ); 95 96 FT_LOCAL( FT_Error ) 97 T1_Get_Var_Design( T1_Face face, 98 FT_UInt num_coords, 99 FT_Fixed* coords ); 100 101 FT_LOCAL( FT_Error ) 102 T1_Set_Var_Design( T1_Face face, 103 FT_UInt num_coords, 104 FT_Fixed* coords ); 105 106 FT_LOCAL( void ) 107 T1_Done_Blend( T1_Face face ); 108 109 #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */ 110 111 112 FT_END_HEADER 113 114 #endif /* T1LOAD_H_ */ 115 116 117 /* END */ 118