OLD | NEW |
| (Empty) |
1 /***************************************************************************/ | |
2 /* */ | |
3 /* cidparse.h */ | |
4 /* */ | |
5 /* CID-keyed Type1 parser (specification). */ | |
6 /* */ | |
7 /* Copyright 1996-2001, 2002, 2003, 2004 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 __CIDPARSE_H__ | |
20 #define __CIDPARSE_H__ | |
21 | |
22 | |
23 #include "../../include/ft2build.h" | |
24 #include "../../include/freetype/internal/t1types.h" | |
25 #include "../../include/freetype/internal/ftstream.h" | |
26 #include "../../include/freetype/internal/psaux.h" | |
27 | |
28 | |
29 FT_BEGIN_HEADER | |
30 | |
31 | |
32 /*************************************************************************/ | |
33 /* */ | |
34 /* <Struct> */ | |
35 /* CID_Parser */ | |
36 /* */ | |
37 /* <Description> */ | |
38 /* A CID_Parser is an object used to parse a Type 1 fonts very */ | |
39 /* quickly. */ | |
40 /* */ | |
41 /* <Fields> */ | |
42 /* root :: The root PS_ParserRec fields. */ | |
43 /* */ | |
44 /* stream :: The current input stream. */ | |
45 /* */ | |
46 /* postscript :: A pointer to the data to be parsed. */ | |
47 /* */ | |
48 /* postscript_len :: The length of the data to be parsed. */ | |
49 /* */ | |
50 /* data_offset :: The start position of the binary data (i.e., the */ | |
51 /* end of the data to be parsed. */ | |
52 /* */ | |
53 /* binary_length :: The length of the data after the `StartData' */ | |
54 /* command if the data format is hexadecimal. */ | |
55 /* */ | |
56 /* cid :: A structure which holds the information about */ | |
57 /* the current font. */ | |
58 /* */ | |
59 /* num_dict :: The number of font dictionaries. */ | |
60 /* */ | |
61 typedef struct CID_Parser_ | |
62 { | |
63 PS_ParserRec root; | |
64 FT_Stream stream; | |
65 | |
66 FT_Byte* postscript; | |
67 FT_Long postscript_len; | |
68 | |
69 FT_ULong data_offset; | |
70 | |
71 FT_Long binary_length; | |
72 | |
73 CID_FaceInfo cid; | |
74 FT_Int num_dict; | |
75 | |
76 } CID_Parser; | |
77 | |
78 | |
79 FT_LOCAL( FT_Error ) | |
80 cid_parser_new( CID_Parser* parser, | |
81 FT_Stream stream, | |
82 FT_Memory memory, | |
83 PSAux_Service psaux ); | |
84 | |
85 FT_LOCAL( void ) | |
86 cid_parser_done( CID_Parser* parser ); | |
87 | |
88 | |
89 /*************************************************************************/ | |
90 /* */ | |
91 /* PARSING ROUTINES */ | |
92 /* */ | |
93 /*************************************************************************/ | |
94 | |
95 #define cid_parser_skip_spaces( p ) \ | |
96 (p)->root.funcs.skip_spaces( &(p)->root ) | |
97 #define cid_parser_skip_PS_token( p ) \ | |
98 (p)->root.funcs.skip_PS_token( &(p)->root ) | |
99 | |
100 #define cid_parser_to_int( p ) (p)->root.funcs.to_int( &(p)->root ) | |
101 #define cid_parser_to_fixed( p, t ) (p)->root.funcs.to_fixed( &(p)->root, t ) | |
102 | |
103 #define cid_parser_to_coord_array( p, m, c ) \ | |
104 (p)->root.funcs.to_coord_array( &(p)->root, m, c ) | |
105 #define cid_parser_to_fixed_array( p, m, f, t ) \ | |
106 (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t ) | |
107 #define cid_parser_to_token( p, t ) \ | |
108 (p)->root.funcs.to_token( &(p)->root, t ) | |
109 #define cid_parser_to_token_array( p, t, m, c ) \ | |
110 (p)->root.funcs.to_token_array( &(p)->root, t, m, c ) | |
111 | |
112 #define cid_parser_load_field( p, f, o ) \ | |
113 (p)->root.funcs.load_field( &(p)->root, f, o, 0, 0 ) | |
114 #define cid_parser_load_field_table( p, f, o ) \ | |
115 (p)->root.funcs.load_field_table( &(p)->root, f, o, 0, 0 ) | |
116 | |
117 | |
118 FT_END_HEADER | |
119 | |
120 #endif /* __CIDPARSE_H__ */ | |
121 | |
122 | |
123 /* END */ | |
OLD | NEW |