]> git.saurik.com Git - wxWidgets.git/blob - src/freetype/type1z/z1objs.h
speed up font list processing
[wxWidgets.git] / src / freetype / type1z / z1objs.h
1 /***************************************************************************/
2 /* */
3 /* z1objs.h */
4 /* */
5 /* Experimental Type 1 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 Z1OBJS_H
20 #define Z1OBJS_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 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /* The following structures must be defined by the hinter */
32 typedef struct Z1_Size_Hints_ Z1_Size_Hints;
33 typedef struct Z1_Glyph_Hints_ Z1_Glyph_Hints;
34
35
36 /*************************************************************************/
37 /* */
38 /* <Type> */
39 /* Z1_Driver */
40 /* */
41 /* <Description> */
42 /* A handle to a Type 1 driver object. */
43 /* */
44 typedef struct Z1_DriverRec_ *Z1_Driver;
45
46
47 /*************************************************************************/
48 /* */
49 /* <Type> */
50 /* Z1_Size */
51 /* */
52 /* <Description> */
53 /* A handle to a Type 1 size object. */
54 /* */
55 typedef struct Z1_SizeRec_* Z1_Size;
56
57
58 /*************************************************************************/
59 /* */
60 /* <Type> */
61 /* Z1_GlyphSlot */
62 /* */
63 /* <Description> */
64 /* A handle to a Type 1 glyph slot object. */
65 /* */
66 typedef struct Z1_GlyphSlotRec_* Z1_GlyphSlot;
67
68
69 /*************************************************************************/
70 /* */
71 /* <Type> */
72 /* Z1_CharMap */
73 /* */
74 /* <Description> */
75 /* A handle to a Type 1 character mapping object. */
76 /* */
77 /* <Note> */
78 /* The Type 1 format doesn't use a charmap but an encoding table. */
79 /* The driver is responsible for making up charmap objects */
80 /* corresponding to these tables. */
81 /* */
82 typedef struct Z1_CharMapRec_* Z1_CharMap;
83
84
85 /*************************************************************************/
86 /* */
87 /* HERE BEGINS THE TYPE1 SPECIFIC STUFF */
88 /* */
89 /*************************************************************************/
90
91
92 /*************************************************************************/
93 /* */
94 /* <Type> */
95 /* Z1_SizeRec */
96 /* */
97 /* <Description> */
98 /* Type 1 size record. */
99 /* */
100 typedef struct Z1_SizeRec_
101 {
102 FT_SizeRec root;
103 FT_Bool valid;
104 Z1_Size_Hints* hints; /* defined in the hinter. This allows */
105 /* us to experiment with different */
106 /* hinting schemes without having to */
107 /* change `z1objs' each time. */
108 } Z1_SizeRec;
109
110
111 /*************************************************************************/
112 /* */
113 /* <Type> */
114 /* Z1_GlyphSlotRec */
115 /* */
116 /* <Description> */
117 /* Type 1 glyph slot record. */
118 /* */
119 typedef struct Z1_GlyphSlotRec_
120 {
121 FT_GlyphSlotRec root;
122
123 FT_Bool hint;
124 FT_Bool scaled;
125
126 FT_Int max_points;
127 FT_Int max_contours;
128
129 FT_Fixed x_scale;
130 FT_Fixed y_scale;
131
132 Z1_Glyph_Hints* hints; /* defined in the hinter */
133
134 } Z1_GlyphSlotRec;
135
136
137 LOCAL_DEF
138 FT_Error Z1_Init_Face( FT_Stream stream,
139 T1_Face face,
140 FT_Int face_index,
141 FT_Int num_params,
142 FT_Parameter* params );
143
144 LOCAL_DEF
145 void Z1_Done_Face( T1_Face face );
146
147 LOCAL_DEF
148 FT_Error Z1_Init_Driver( Z1_Driver driver );
149
150 LOCAL_DEF
151 void Z1_Done_Driver( Z1_Driver driver );
152
153
154 #ifdef __cplusplus
155 }
156 #endif
157
158 #endif /* Z1OBJS_H */
159
160
161 /* END */