1 /**************************************************************************** 2 * 3 * t1load.h 4 * 5 * Type 1 font loader (specification). 6 * 7 * Copyright (C) 1996-2020 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 <freetype/internal/ftstream.h> 24 #include <freetype/internal/psaux.h> 25 #include <freetype/ftmm.h> 26 27 #include "t1parse.h" 28 29 30 FT_BEGIN_HEADER 31 32 33 typedef struct T1_Loader_ 34 { 35 T1_ParserRec parser; /* parser used to read the stream */ 36 37 FT_Int num_chars; /* number of characters in encoding */ 38 PS_TableRec encoding_table; /* PS_Table used to store the */ 39 /* encoding character names */ 40 41 FT_Int num_glyphs; 42 PS_TableRec glyph_names; 43 PS_TableRec charstrings; 44 PS_TableRec swap_table; /* For moving .notdef glyph to index 0. */ 45 46 FT_Int num_subrs; 47 PS_TableRec subrs; 48 FT_Hash subrs_hash; 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( 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_Get_MM_Blend( T1_Face face, 83 FT_UInt num_coords, 84 FT_Fixed* coords ); 85 86 FT_LOCAL( FT_Error ) 87 T1_Set_MM_Design( T1_Face face, 88 FT_UInt num_coords, 89 FT_Long* coords ); 90 91 FT_LOCAL( FT_Error ) 92 T1_Reset_MM_Blend( T1_Face face, 93 FT_UInt instance_index ); 94 95 FT_LOCAL( FT_Error ) 96 T1_Get_Var_Design( T1_Face face, 97 FT_UInt num_coords, 98 FT_Fixed* coords ); 99 100 FT_LOCAL( FT_Error ) 101 T1_Set_Var_Design( T1_Face face, 102 FT_UInt num_coords, 103 FT_Fixed* coords ); 104 105 FT_LOCAL( void ) 106 T1_Done_Blend( T1_Face face ); 107 108 FT_LOCAL( FT_Error ) 109 T1_Set_MM_WeightVector( T1_Face face, 110 FT_UInt len, 111 FT_Fixed* weightvector ); 112 113 FT_LOCAL( FT_Error ) 114 T1_Get_MM_WeightVector( T1_Face face, 115 FT_UInt* len, 116 FT_Fixed* weightvector ); 117 118 #endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */ 119 120 121 FT_END_HEADER 122 123 #endif /* T1LOAD_H_ */ 124 125 126 /* END */ 127