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