1 /**************************************************************************** 2 * 3 * t1load.h 4 * 5 * Type 1 font loader (specification). 6 * 7 * Copyright (C) 1996-2019 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 FT_LOCAL( FT_Error ) 110 T1_Set_MM_WeightVector( T1_Face face, 111 FT_UInt len, 112 FT_Fixed* weightvector ); 113 114 FT_LOCAL( FT_Error ) 115 T1_Get_MM_WeightVector( T1_Face face, 116 FT_UInt* len, 117 FT_Fixed* weightvector ); 118 119 #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */ 120 121 122 FT_END_HEADER 123 124 #endif /* T1LOAD_H_ */ 125 126 127 /* END */ 128