:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / subsys / win32k / freetype / src / cff / t2parse.h
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 */