update for HEAD-2003021201
[reactos.git] / subsys / win32k / freetype / src / cid / cidobjs.h
1 /***************************************************************************/
2 /*                                                                         */
3 /*  cidobjs.h                                                              */
4 /*                                                                         */
5 /*    CID objects manager (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 CIDOBJS_H
20 #define CIDOBJS_H
21
22 #include <freetype/internal/ftobjs.h>
23 #include <freetype/config/ftconfig.h>
24 #include <freetype/internal/t1errors.h>
25 #include <freetype/internal/t1types.h>
26
27
28 #ifdef __cplusplus
29   extern "C" {
30 #endif
31
32
33   /* The following structures must be defined by the hinter */
34   typedef struct CID_Size_Hints_   CID_Size_Hints;
35   typedef struct CID_Glyph_Hints_  CID_Glyph_Hints;
36
37
38   /*************************************************************************/
39   /*                                                                       */
40   /* <Type>                                                                */
41   /*    CID_Driver                                                         */
42   /*                                                                       */
43   /* <Description>                                                         */
44   /*    A handle to a Type 1 driver object.                                */
45   /*                                                                       */
46   typedef struct CID_DriverRec_*  CID_Driver;
47
48
49   /*************************************************************************/
50   /*                                                                       */
51   /* <Type>                                                                */
52   /*    CID_Size                                                           */
53   /*                                                                       */
54   /* <Description>                                                         */
55   /*    A handle to a Type 1 size object.                                  */
56   /*                                                                       */
57   typedef struct CID_SizeRec_*  CID_Size;
58
59
60   /*************************************************************************/
61   /*                                                                       */
62   /* <Type>                                                                */
63   /*    CID_GlyphSlot                                                      */
64   /*                                                                       */
65   /* <Description>                                                         */
66   /*    A handle to a Type 1 glyph slot object.                            */
67   /*                                                                       */
68   typedef struct CID_GlyphSlotRec_*  CID_GlyphSlot;
69
70
71   /*************************************************************************/
72   /*                                                                       */
73   /* <Type>                                                                */
74   /*    CID_CharMap                                                        */
75   /*                                                                       */
76   /* <Description>                                                         */
77   /*    A handle to a Type 1 character mapping object.                     */
78   /*                                                                       */
79   /* <Note>                                                                */
80   /*    The Type 1 format doesn't use a charmap but an encoding table.     */
81   /*    The driver is responsible for making up charmap objects            */
82   /*    corresponding to these tables.                                     */
83   /*                                                                       */
84   typedef struct CID_CharMapRec_*  CID_CharMap;
85
86
87   /*************************************************************************/
88   /*                                                                       */
89   /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF                                 */
90   /*                                                                       */
91   /*************************************************************************/
92
93
94   typedef struct  CID_SizeRec_
95   {
96     FT_SizeRec  root;
97     FT_Bool     valid;
98
99   } CID_SizeRec;
100
101
102   typedef struct  CID_GlyphSlotRec_
103   {
104     FT_GlyphSlotRec  root;
105
106     FT_Bool          hint;
107     FT_Bool          scaled;
108
109     FT_Fixed         x_scale;
110     FT_Fixed         y_scale;
111
112   } CID_GlyphSlotRec;
113
114
115   LOCAL_DEF
116   FT_Error  CID_Init_Face( FT_Stream      stream,
117                            CID_Face       face,
118                            FT_Int         face_index,
119                            FT_Int         num_params,
120                            FT_Parameter*  params );
121
122   LOCAL_DEF
123   void  CID_Done_Face( CID_Face  face );
124
125
126   LOCAL_DEF
127   FT_Error  CID_Init_Driver( CID_Driver  driver );
128
129   LOCAL_DEF
130   void  CID_Done_Driver( CID_Driver  driver );
131
132
133 #ifdef __cplusplus
134   }
135 #endif
136
137
138 #endif /* CIDOBJS_H */
139
140
141 /* END */