:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / subsys / win32k / freetype / src / autohint / ahloader.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  ahloader.h                                                             */
4 /*                                                                         */
5 /*    Glyph loader for the auto-hinting module (declaration only).         */
6 /*                                                                         */
7 /*  Copyright 2000 Catharon Productions Inc.                               */
8 /*  Author: David Turner                                                   */
9 /*                                                                         */
10 /*  This file is part of the Catharon Typography Project and shall only    */
11 /*  be used, modified, and distributed under the terms of the Catharon     */
12 /*  Open Source License that should come with this file under the name     */
13 /*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
14 /*  this file you indicate that you have read the license and              */
15 /*  understand and accept it fully.                                        */
16 /*                                                                         */
17 /*  Note that this license is compatible with the FreeType license.        */
18 /*                                                                         */
19 /***************************************************************************/
20
21
22   /*************************************************************************/
23   /*                                                                       */
24   /* This defines the AH_GlyphLoader type in two different ways:           */
25   /*                                                                       */
26   /* - If the module is compiled within FreeType 2, the type is simply a   */
27   /*   typedef to FT_GlyphLoader.                                          */
28   /*                                                                       */
29   /* - If the module is compiled as a standalone object, AH_GlyphLoader    */
30   /*   has its own implementation.                                         */
31   /*                                                                       */
32   /*************************************************************************/
33
34
35 #ifndef AHLOADER_H
36 #define AHLOADER_H
37
38
39 #ifdef _STANDALONE_
40
41   typedef struct  AH_GlyphLoad_
42   {
43     FT_Outline    outline;       /* outline             */
44     FT_UInt       num_subglyphs; /* number of subglyphs */
45     FT_SubGlyph*  subglyphs;     /* subglyphs           */
46     FT_Vector*    extra_points;  /* extra points table  */
47
48   } AH_GlyphLoad;
49
50
51   struct  AH_GlyphLoader_
52   {
53     FT_Memory     memory;
54     FT_UInt       max_points;
55     FT_UInt       max_contours;
56     FT_UInt       max_subglyphs;
57     FT_Bool       use_extra;
58
59     AH_GlyphLoad  base;
60     AH_GlyphLoad  current;
61
62     void*         other;        /* for possible future extensions */
63   };
64
65
66   LOCAL_DEF
67   FT_Error  AH_GlyphLoader_New( FT_Memory         memory,
68                                 AH_GlyphLoader**  aloader );
69
70   LOCAL_DEF
71   FT_Error  AH_GlyphLoader_Create_Extra( AH_GlyphLoader*  loader );
72
73   LOCAL_DEF
74   void  AH_GlyphLoader_Done( AH_GlyphLoader*  loader );
75
76   LOCAL_DEF
77   void  AH_GlyphLoader_Reset( AH_GlyphLoader*  loader );
78
79   LOCAL_DEF
80   void  AH_GlyphLoader_Rewind( AH_GlyphLoader*  loader );
81
82   LOCAL_DEF
83   FT_Error  AH_GlyphLoader_Check_Points( AH_GlyphLoader*  loader,
84                                          FT_UInt          n_points,
85                                          FT_UInt          n_contours );
86
87   LOCAL_DEF
88   FT_Error  AH_GlyphLoader_Check_Subglyphs( AH_GlyphLoader*  loader,
89                                             FT_UInt          n_subs );
90
91   LOCAL_DEF
92   void  AH_GlyphLoader_Prepare( AH_GlyphLoader*  loader );
93
94   LOCAL_DEF
95   void  AH_GlyphLoader_Add( AH_GlyphLoader*  loader );
96
97   LOCAL_DEF
98   FT_Error  AH_GlyphLoader_Copy_Points( AH_GlyphLoader*  target,
99                                         FT_GlyphLoader*  source );
100
101 #else /* _STANDALONE */
102
103 #include <freetype/internal/ftobjs.h>
104
105   #define AH_Load    FT_GlyphLoad
106   #define AH_Loader  FT_GlyphLoader
107
108   #define ah_loader_new              FT_GlyphLoader_New
109   #define ah_loader_done             FT_GlyphLoader_Done
110   #define ah_loader_reset            FT_GlyphLoader_Reset
111   #define ah_loader_rewind           FT_GlyphLoader_Rewind
112   #define ah_loader_create_extra     FT_GlyphLoader_Create_Extra
113   #define ah_loader_check_points     FT_GlyphLoader_Check_Points
114   #define ah_loader_check_subglyphs  FT_GlyphLoader_Check_Subglyphs
115   #define ah_loader_prepare          FT_GlyphLoader_Prepare
116   #define ah_loader_add              FT_GlyphLoader_Add
117   #define ah_loader_copy_points      FT_GlyphLoader_Copy_Points
118
119 #endif /* _STANDALONE_ */
120
121 #endif /* AHLOADER_H */
122
123
124 /* END */