]> git.saurik.com Git - wxWidgets.git/blob - src/freetype/type1/t1objs.h
optimized default GUI font loading
[wxWidgets.git] / src / freetype / type1 / t1objs.h
1 /***************************************************************************/
2 /* */
3 /* t1objs.h */
4 /* */
5 /* 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 T1OBJS_H
20 #define T1OBJS_H
21
22 #include <freetype/config/ftconfig.h>
23 #include <freetype/internal/ftobjs.h>
24 #include <freetype/internal/t1types.h>
25
26 #include <freetype/internal/t1errors.h>
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32
33 /* The following structures must be defined by the hinter */
34 typedef struct T1_Size_Hints_ T1_Size_Hints;
35 typedef struct T1_Glyph_Hints_ T1_Glyph_Hints;
36
37
38 /*************************************************************************/
39 /* */
40 /* <Type> */
41 /* T1_Driver */
42 /* */
43 /* <Description> */
44 /* A handle to a Type 1 driver object. */
45 /* */
46 typedef struct T1_DriverRec_* T1_Driver;
47
48
49 /*************************************************************************/
50 /* */
51 /* <Type> */
52 /* T1_Size */
53 /* */
54 /* <Description> */
55 /* A handle to a Type 1 size object. */
56 /* */
57 typedef struct T1_SizeRec_* T1_Size;
58
59
60 /*************************************************************************/
61 /* */
62 /* <Type> */
63 /* T1_GlyphSlot */
64 /* */
65 /* <Description> */
66 /* A handle to a Type 1 glyph slot object. */
67 /* */
68 typedef struct T1_GlyphSlotRec_* T1_GlyphSlot;
69
70
71 /*************************************************************************/
72 /* */
73 /* <Type> */
74 /* T1_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 T1_CharMapRec_* T1_CharMap;
85
86
87 /*************************************************************************/
88 /* */
89 /* HERE BEGINS THE TYPE1 SPECIFIC STUFF */
90 /* */
91 /*************************************************************************/
92
93
94 /*************************************************************************/
95 /* */
96 /* <Type> */
97 /* T1_SizeRec */
98 /* */
99 /* <Description> */
100 /* Type 1 size record. */
101 /* */
102 typedef struct T1_SizeRec_
103 {
104 FT_SizeRec root;
105 FT_Bool valid;
106 T1_Size_Hints* hints; /* defined in the hinter. This allows */
107 /* us to experiment with different */
108 /* hinting schemes without having to */
109 /* change `t1objs' each time. */
110 } T1_SizeRec;
111
112
113 /*************************************************************************/
114 /* */
115 /* <Type> */
116 /* T1_GlyphSlotRec */
117 /* */
118 /* <Description> */
119 /* Type 1 glyph slot record. */
120 /* */
121 typedef struct T1_GlyphSlotRec_
122 {
123 FT_GlyphSlotRec root;
124
125 FT_Bool hint;
126 FT_Bool scaled;
127
128 FT_Int max_points;
129 FT_Int max_contours;
130
131 FT_Fixed x_scale;
132 FT_Fixed y_scale;
133
134 T1_Glyph_Hints* hints; /* defined in the hinter */
135
136 } T1_GlyphSlotRec;
137
138
139 LOCAL_DEF
140 FT_Error T1_Init_Face( FT_Stream stream,
141 T1_Face face,
142 FT_Int face_index,
143 FT_Int num_params,
144 FT_Parameter* params );
145
146 LOCAL_DEF
147 void T1_Done_Face( T1_Face face );
148
149 LOCAL_DEF
150 FT_Error T1_Init_Size( T1_Size size );
151
152 LOCAL_DEF
153 void T1_Done_Size( T1_Size size );
154
155 LOCAL_DEF
156 FT_Error T1_Reset_Size( T1_Size size );
157
158 LOCAL_DEF
159 FT_Error T1_Init_GlyphSlot( T1_GlyphSlot slot );
160
161 LOCAL_DEF
162 void T1_Done_GlyphSlot( T1_GlyphSlot slot );
163
164
165 #ifdef __cplusplus
166 }
167 #endif
168
169 #endif /* T1OBJS_H */
170
171
172 /* END */