1 /***************************************************************************/ 2 /* */ 3 /* psobjs.h */ 4 /* */ 5 /* Auxiliary functions for PostScript fonts (specification). */ 6 /* */ 7 /* Copyright 1996-2001, 2002 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_Int 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_alpha( 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_Fixed ) 112 ps_parser_to_fixed( PS_Parser parser, 113 FT_Int power_ten ); 114 115 116 FT_LOCAL( FT_Int ) 117 ps_parser_to_coord_array( PS_Parser parser, 118 FT_Int max_coords, 119 FT_Short* coords ); 120 121 FT_LOCAL( FT_Int ) 122 ps_parser_to_fixed_array( PS_Parser parser, 123 FT_Int max_values, 124 FT_Fixed* values, 125 FT_Int power_ten ); 126 127 128 FT_LOCAL( void ) 129 ps_parser_init( PS_Parser parser, 130 FT_Byte* base, 131 FT_Byte* limit, 132 FT_Memory memory ); 133 134 FT_LOCAL( void ) 135 ps_parser_done( PS_Parser parser ); 136 137 138 /*************************************************************************/ 139 /*************************************************************************/ 140 /***** *****/ 141 /***** T1 BUILDER *****/ 142 /***** *****/ 143 /*************************************************************************/ 144 /*************************************************************************/ 145 146 FT_LOCAL( void ) 147 t1_builder_init( T1_Builder builder, 148 FT_Face face, 149 FT_Size size, 150 FT_GlyphSlot glyph, 151 FT_Bool hinting ); 152 153 FT_LOCAL( void ) 154 t1_builder_done( T1_Builder builder ); 155 156 FT_LOCAL( FT_Error ) 157 t1_builder_check_points( T1_Builder builder, 158 FT_Int count ); 159 160 FT_LOCAL( void ) 161 t1_builder_add_point( T1_Builder builder, 162 FT_Pos x, 163 FT_Pos y, 164 FT_Byte flag ); 165 166 FT_LOCAL( FT_Error ) 167 t1_builder_add_point1( T1_Builder builder, 168 FT_Pos x, 169 FT_Pos y ); 170 171 FT_LOCAL( FT_Error ) 172 t1_builder_add_contour( T1_Builder builder ); 173 174 175 FT_LOCAL( FT_Error ) 176 t1_builder_start_point( T1_Builder builder, 177 FT_Pos x, 178 FT_Pos y ); 179 180 181 FT_LOCAL( void ) 182 t1_builder_close_contour( T1_Builder builder ); 183 184 185 /*************************************************************************/ 186 /*************************************************************************/ 187 /***** *****/ 188 /***** OTHER *****/ 189 /***** *****/ 190 /*************************************************************************/ 191 /*************************************************************************/ 192 193 FT_LOCAL( void ) 194 t1_decrypt( FT_Byte* buffer, 195 FT_Offset length, 196 FT_UShort seed ); 197 198 199 FT_END_HEADER 200 201 #endif /* __PSOBJS_H__ */ 202 203 204 /* END */ 205