xref: /inferno-os/libfreetype/psobjs.h (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
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