]>
Commit | Line | Data |
---|---|---|
cabec872 RR |
1 | /***************************************************************************/ |
2 | /* */ | |
3 | /* t2parse.h */ | |
4 | /* */ | |
5 | /* OpenType parser (specification). */ | |
6 | /* */ | |
7 | /* Copyright 1996-2000 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 T2PARSE_H | |
20 | #define T2PARSE_H | |
21 | ||
22 | #include <freetype/internal/t2types.h> | |
23 | #include <freetype/internal/ftobjs.h> | |
24 | ||
25 | #define T2_MAX_STACK_DEPTH 96 | |
26 | ||
27 | #define T2CODE_TOPDICT 0x1000 | |
28 | #define T2CODE_PRIVATE 0x2000 | |
29 | ||
30 | ||
31 | #ifdef __cplusplus | |
32 | extern "C" { | |
33 | #endif | |
34 | ||
35 | ||
36 | typedef struct T2_Parser_ | |
37 | { | |
38 | FT_Byte* start; | |
39 | FT_Byte* limit; | |
40 | FT_Byte* cursor; | |
41 | ||
42 | FT_Byte* stack[T2_MAX_STACK_DEPTH + 1]; | |
43 | FT_Byte** top; | |
44 | ||
45 | FT_UInt object_code; | |
46 | void* object; | |
47 | ||
48 | } T2_Parser; | |
49 | ||
50 | ||
51 | LOCAL_DEF | |
52 | void T2_Parser_Init( T2_Parser* parser, | |
53 | FT_UInt code, | |
54 | void* object ); | |
55 | ||
56 | LOCAL_DEF | |
57 | FT_Error T2_Parser_Run( T2_Parser* parser, | |
58 | FT_Byte* start, | |
59 | FT_Byte* limit ); | |
60 | ||
61 | ||
62 | #ifdef __cplusplus | |
63 | } | |
64 | #endif | |
65 | ||
66 | ||
67 | #endif /* T2PARSE_H */ | |
68 | ||
69 | ||
70 | /* END */ |