1 /****************************************************************************
5 * Auxiliary functions for PostScript fonts (specification).
7 * Copyright (C) 1996-2023 by
8 * David Turner, Robert Wilhelm, and Werner Lemberg.
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.
23 #include <freetype/internal/psaux.h>
24 #include <freetype/internal/cffotypes.h>
30 /*************************************************************************/
31 /*************************************************************************/
33 /***** T1_TABLE *****/
35 /*************************************************************************/
36 /*************************************************************************/
40 const PS_Table_FuncsRec ps_table_funcs;
43 const PS_Parser_FuncsRec ps_parser_funcs;
46 const T1_Builder_FuncsRec t1_builder_funcs;
50 ps_table_new( PS_Table table,
55 ps_table_add( PS_Table table,
61 ps_table_done( PS_Table table );
65 ps_table_release( PS_Table table );
68 /*************************************************************************/
69 /*************************************************************************/
71 /***** T1 PARSER *****/
73 /*************************************************************************/
74 /*************************************************************************/
78 ps_parser_skip_spaces( PS_Parser parser );
81 ps_parser_skip_PS_token( PS_Parser parser );
84 ps_parser_to_token( PS_Parser parser,
88 ps_parser_to_token_array( PS_Parser parser,
91 FT_Int* pnum_tokens );
94 ps_parser_load_field( PS_Parser parser,
101 ps_parser_load_field_table( PS_Parser parser,
102 const T1_Field field,
108 ps_parser_to_int( PS_Parser parser );
112 ps_parser_to_bytes( PS_Parser parser,
115 FT_ULong* pnum_bytes,
116 FT_Bool delimiters );
120 ps_parser_to_fixed( PS_Parser parser,
125 ps_parser_to_coord_array( PS_Parser parser,
130 ps_parser_to_fixed_array( PS_Parser parser,
137 ps_parser_init( PS_Parser parser,
143 ps_parser_done( PS_Parser parser );
146 /*************************************************************************/
147 /*************************************************************************/
149 /***** T1 BUILDER *****/
151 /*************************************************************************/
152 /*************************************************************************/
155 t1_builder_init( T1_Builder builder,
162 t1_builder_done( T1_Builder builder );
165 t1_builder_check_points( T1_Builder builder,
169 t1_builder_add_point( T1_Builder builder,
175 t1_builder_add_point1( T1_Builder builder,
180 t1_builder_add_contour( T1_Builder builder );
184 t1_builder_start_point( T1_Builder builder,
190 t1_builder_close_contour( T1_Builder builder );
193 /*************************************************************************/
194 /*************************************************************************/
196 /***** CFF BUILDER *****/
198 /*************************************************************************/
199 /*************************************************************************/
202 cff_builder_init( CFF_Builder* builder,
209 cff_builder_done( CFF_Builder* builder );
212 cff_check_points( CFF_Builder* builder,
216 cff_builder_add_point( CFF_Builder* builder,
221 cff_builder_add_point1( CFF_Builder* builder,
225 cff_builder_start_point( CFF_Builder* builder,
229 cff_builder_close_contour( CFF_Builder* builder );
232 cff_builder_add_contour( CFF_Builder* builder );
235 /*************************************************************************/
236 /*************************************************************************/
238 /***** PS BUILDER *****/
240 /*************************************************************************/
241 /*************************************************************************/
244 ps_builder_init( PS_Builder* ps_builder,
250 ps_builder_done( PS_Builder* builder );
253 ps_builder_check_points( PS_Builder* builder,
257 ps_builder_add_point( PS_Builder* builder,
263 ps_builder_add_point1( PS_Builder* builder,
268 ps_builder_add_contour( PS_Builder* builder );
271 ps_builder_start_point( PS_Builder* builder,
276 ps_builder_close_contour( PS_Builder* builder );
279 /*************************************************************************/
280 /*************************************************************************/
284 /*************************************************************************/
285 /*************************************************************************/
288 ps_decoder_init( PS_Decoder* ps_decoder,
293 t1_make_subfont( FT_Face face,
295 CFF_SubFont subfont );
298 t1_decrypt( FT_Byte* buffer,
303 FT_LOCAL( FT_UInt32 )
304 cff_random( FT_UInt32 r );
309 #endif /* PSOBJS_H_ */