1 /***************************************************************************/ 2 /* */ 3 /* psobjs.h */ 4 /* */ 5 /* Auxiliary functions for PostScript fonts (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 __PSOBJS_H__ 20 #define __PSOBJS_H__ 21 22 23 #include <ft2build.h> 24 #include FT_INTERNAL_POSTSCRIPT_AUX_H 25 26 27 FT_BEGIN_HEADER 28 29 30 /*************************************************************************/ 31 /*************************************************************************/ 32 /***** *****/ 33 /***** T1_TABLE *****/ 34 /***** *****/ 35 /*************************************************************************/ 36 /*************************************************************************/ 37 38 39 FT_CALLBACK_TABLE 40 const PS_Table_FuncsRec ps_table_funcs; 41 42 FT_CALLBACK_TABLE 43 const PS_Parser_FuncsRec ps_parser_funcs; 44 45 FT_CALLBACK_TABLE 46 const T1_Builder_FuncsRec t1_builder_funcs; 47 48 49 FT_LOCAL( FT_Error ) 50 ps_table_new( PS_Table table, 51 FT_Int count, 52 FT_Memory memory ); 53 54 FT_LOCAL( FT_Error ) 55 ps_table_add( PS_Table table, 56 FT_Int idx, 57 void* object, 58 FT_UInt length ); 59 60 FT_LOCAL( void ) 61 ps_table_done( PS_Table table ); 62 63 64 FT_LOCAL( void ) 65 ps_table_release( PS_Table table ); 66 67 68 /*************************************************************************/ 69 /*************************************************************************/ 70 /***** *****/ 71 /***** T1 PARSER *****/ 72 /***** *****/ 73 /*************************************************************************/ 74 /*************************************************************************/ 75 76 77 FT_LOCAL( void ) 78 ps_parser_skip_spaces( PS_Parser parser ); 79 80 FT_LOCAL( void ) 81 ps_parser_skip_PS_token( PS_Parser parser ); 82 83 FT_LOCAL( void ) 84 ps_parser_to_token( PS_Parser parser, 85 T1_Token token ); 86 87 FT_LOCAL( void ) 88 ps_parser_to_token_array( PS_Parser parser, 89 T1_Token tokens, 90 FT_UInt max_tokens, 91 FT_Int* pnum_tokens ); 92 93 FT_LOCAL( FT_Error ) 94 ps_parser_load_field( PS_Parser parser, 95 const T1_Field field, 96 void** objects, 97 FT_UInt max_objects, 98 FT_ULong* pflags ); 99 100 FT_LOCAL( FT_Error ) 101 ps_parser_load_field_table( PS_Parser parser, 102 const T1_Field field, 103 void** objects, 104 FT_UInt max_objects, 105 FT_ULong* pflags ); 106 107 FT_LOCAL( FT_Long ) 108 ps_parser_to_int( PS_Parser parser ); 109 110 111 FT_LOCAL( FT_Error ) 112 ps_parser_to_bytes( PS_Parser parser, 113 FT_Byte* bytes, 114 FT_Offset max_bytes, 115 FT_ULong* pnum_bytes, 116 FT_Bool delimiters ); 117 118 119 FT_LOCAL( FT_Fixed ) 120 ps_parser_to_fixed( PS_Parser parser, 121 FT_Int power_ten ); 122 123 124 FT_LOCAL( FT_Int ) 125 ps_parser_to_coord_array( PS_Parser parser, 126 FT_Int max_coords, 127 FT_Short* coords ); 128 129 FT_LOCAL( FT_Int ) 130 ps_parser_to_fixed_array( PS_Parser parser, 131 FT_Int max_values, 132 FT_Fixed* values, 133 FT_Int power_ten ); 134 135 136 FT_LOCAL( void ) 137 ps_parser_init( PS_Parser parser, 138 FT_Byte* base, 139 FT_Byte* limit, 140 FT_Memory memory ); 141 142 FT_LOCAL( void ) 143 ps_parser_done( PS_Parser parser ); 144 145 146 /*************************************************************************/ 147 /*************************************************************************/ 148 /***** *****/ 149 /***** T1 BUILDER *****/ 150 /***** *****/ 151 /*************************************************************************/ 152 /*************************************************************************/ 153 154 FT_LOCAL( void ) 155 t1_builder_init( T1_Builder builder, 156 FT_Face face, 157 FT_Size size, 158 FT_GlyphSlot glyph, 159 FT_Bool hinting ); 160 161 FT_LOCAL( void ) 162 t1_builder_done( T1_Builder builder ); 163 164 FT_LOCAL( FT_Error ) 165 t1_builder_check_points( T1_Builder builder, 166 FT_Int count ); 167 168 FT_LOCAL( void ) 169 t1_builder_add_point( T1_Builder builder, 170 FT_Pos x, 171 FT_Pos y, 172 FT_Byte flag ); 173 174 FT_LOCAL( FT_Error ) 175 t1_builder_add_point1( T1_Builder builder, 176 FT_Pos x, 177 FT_Pos y ); 178 179 FT_LOCAL( FT_Error ) 180 t1_builder_add_contour( T1_Builder builder ); 181 182 183 FT_LOCAL( FT_Error ) 184 t1_builder_start_point( T1_Builder builder, 185 FT_Pos x, 186 FT_Pos y ); 187 188 189 FT_LOCAL( void ) 190 t1_builder_close_contour( T1_Builder builder ); 191 192 193 /*************************************************************************/ 194 /*************************************************************************/ 195 /***** *****/ 196 /***** OTHER *****/ 197 /***** *****/ 198 /*************************************************************************/ 199 /*************************************************************************/ 200 201 FT_LOCAL( void ) 202 t1_decrypt( FT_Byte* buffer, 203 FT_Offset length, 204 FT_UShort seed ); 205 206 207 FT_END_HEADER 208 209 #endif /* __PSOBJS_H__ */ 210 211 212 /* END */ 213