XFA: merge patch from CL 815103002
[pdfium.git] / third_party / freetype / src / psaux / psobjs.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  psobjs.h                                                               */
4 /*                                                                         */
5 /*    Auxiliary functions for PostScript fonts (specification).            */
6 /*                                                                         */
7 /*  Copyright 1996-2001, 2002, 2003 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_PtrDist  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_Long*   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 */