Merge amd64 NDK from amd64 branch:
[reactos.git] / reactos / lib / 3rdparty / freetype / src / cff / cffobjs.h
1 /***************************************************************************/
2 /* */
3 /* cffobjs.h */
4 /* */
5 /* OpenType objects manager (specification). */
6 /* */
7 /* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 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 __CFFOBJS_H__
20 #define __CFFOBJS_H__
21
22
23 #include <ft2build.h>
24 #include FT_INTERNAL_OBJECTS_H
25 #include "cfftypes.h"
26 #include FT_INTERNAL_TRUETYPE_TYPES_H
27 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
28
29
30 FT_BEGIN_HEADER
31
32
33 /*************************************************************************/
34 /* */
35 /* <Type> */
36 /* CFF_Driver */
37 /* */
38 /* <Description> */
39 /* A handle to an OpenType driver object. */
40 /* */
41 typedef struct CFF_DriverRec_* CFF_Driver;
42
43 typedef TT_Face CFF_Face;
44
45
46 /*************************************************************************/
47 /* */
48 /* <Type> */
49 /* CFF_Size */
50 /* */
51 /* <Description> */
52 /* A handle to an OpenType size object. */
53 /* */
54 typedef struct CFF_SizeRec_
55 {
56 FT_SizeRec root;
57 FT_ULong strike_index; /* 0xFFFFFFFF to indicate invalid */
58
59 } CFF_SizeRec, *CFF_Size;
60
61
62 /*************************************************************************/
63 /* */
64 /* <Type> */
65 /* CFF_GlyphSlot */
66 /* */
67 /* <Description> */
68 /* A handle to an OpenType glyph slot object. */
69 /* */
70 typedef struct CFF_GlyphSlotRec_
71 {
72 FT_GlyphSlotRec root;
73
74 FT_Bool hint;
75 FT_Bool scaled;
76
77 FT_Fixed x_scale;
78 FT_Fixed y_scale;
79
80 } CFF_GlyphSlotRec, *CFF_GlyphSlot;
81
82
83
84 /*************************************************************************/
85 /* */
86 /* Subglyph transformation record. */
87 /* */
88 typedef struct CFF_Transform_
89 {
90 FT_Fixed xx, xy; /* transformation matrix coefficients */
91 FT_Fixed yx, yy;
92 FT_F26Dot6 ox, oy; /* offsets */
93
94 } CFF_Transform;
95
96
97 /***********************************************************************/
98 /* */
99 /* TrueType driver class. */
100 /* */
101 typedef struct CFF_DriverRec_
102 {
103 FT_DriverRec root;
104 void* extension_component;
105
106 } CFF_DriverRec;
107
108
109 FT_LOCAL( FT_Error )
110 cff_size_init( FT_Size size ); /* CFF_Size */
111
112 FT_LOCAL( void )
113 cff_size_done( FT_Size size ); /* CFF_Size */
114
115 FT_LOCAL( FT_Error )
116 cff_size_request( FT_Size size,
117 FT_Size_Request req );
118
119 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
120
121 FT_LOCAL( FT_Error )
122 cff_size_select( FT_Size size,
123 FT_ULong strike_index );
124
125 #endif
126
127 FT_LOCAL( void )
128 cff_slot_done( FT_GlyphSlot slot );
129
130 FT_LOCAL( FT_Error )
131 cff_slot_init( FT_GlyphSlot slot );
132
133
134 /*************************************************************************/
135 /* */
136 /* Face functions */
137 /* */
138 FT_LOCAL( FT_Error )
139 cff_face_init( FT_Stream stream,
140 FT_Face face, /* CFF_Face */
141 FT_Int face_index,
142 FT_Int num_params,
143 FT_Parameter* params );
144
145 FT_LOCAL( void )
146 cff_face_done( FT_Face face ); /* CFF_Face */
147
148
149 /*************************************************************************/
150 /* */
151 /* Driver functions */
152 /* */
153 FT_LOCAL( FT_Error )
154 cff_driver_init( FT_Module module );
155
156 FT_LOCAL( void )
157 cff_driver_done( FT_Module module );
158
159
160 FT_END_HEADER
161
162 #endif /* __CFFOBJS_H__ */
163
164
165 /* END */