1 /***************************************************************************/
2 /* */
3 /* cffobjs.h */
4 /* */
5 /* OpenType objects manager (specification). */
6 /* */
7 /* Copyright 1996-2001 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 /***************************************************************************/
19 #ifndef __CFFOBJS_H__
20 #define __CFFOBJS_H__
23 #include <ft2build.h>
24 #include FT_INTERNAL_OBJECTS_H
25 #include FT_INTERNAL_CFF_TYPES_H
26 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
29 FT_BEGIN_HEADER
32 /*************************************************************************/
33 /* */
34 /* <Type> */
35 /* CFF_Driver */
36 /* */
37 /* <Description> */
38 /* A handle to an OpenType driver object. */
39 /* */
40 typedef struct CFF_DriverRec_* CFF_Driver;
42 typedef TT_Face CFF_Face;
45 /*************************************************************************/
46 /* */
47 /* <Type> */
48 /* CFF_Size */
49 /* */
50 /* <Description> */
51 /* A handle to an OpenType size object. */
52 /* */
53 typedef FT_Size CFF_Size;
56 /*************************************************************************/
57 /* */
58 /* <Type> */
59 /* CFF_GlyphSlot */
60 /* */
61 /* <Description> */
62 /* A handle to an OpenType glyph slot object. */
63 /* */
64 typedef struct CFF_GlyphSlotRec_
65 {
66 FT_GlyphSlotRec root;
68 FT_Bool hint;
69 FT_Bool scaled;
71 FT_Fixed x_scale;
72 FT_Fixed y_scale;
74 } CFF_GlyphSlotRec, *CFF_GlyphSlot;
78 /*************************************************************************/
79 /* */
80 /* Subglyph transformation record. */
81 /* */
82 typedef struct CFF_Transform_
83 {
84 FT_Fixed xx, xy; /* transformation matrix coefficients */
85 FT_Fixed yx, yy;
86 FT_F26Dot6 ox, oy; /* offsets */
88 } CFF_Transform;
91 /* this is only used in the case of a pure CFF font with no charmap */
92 typedef struct CFF_CharMapRec_
93 {
94 TT_CharMapRec root;
95 PS_Unicodes unicodes;
97 } CFF_CharMapRec, *CFF_CharMap;
100 /***********************************************************************/
101 /* */
102 /* TrueType driver class. */
103 /* */
104 typedef struct CFF_DriverRec_
105 {
106 FT_DriverRec root;
107 void* extension_component;
109 } CFF_DriverRec;
112 /*************************************************************************/
113 /* */
114 /* Face functions */
115 /* */
116 FT_LOCAL FT_Error
117 CFF_Init_Face( FT_Stream stream,
118 CFF_Face face,
119 FT_Int face_index,
120 FT_Int num_params,
121 FT_Parameter* params );
123 FT_LOCAL void
124 CFF_Done_Face( CFF_Face face );
127 /*************************************************************************/
128 /* */
129 /* Driver functions */
130 /* */
131 FT_LOCAL FT_Error
132 CFF_Init_Driver( CFF_Driver driver );
134 FT_LOCAL void
135 CFF_Done_Driver( CFF_Driver driver );
138 FT_END_HEADER
140 #endif /* __CFFOBJS_H__ */
143 /* END */