Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: third_party/freetype/include/ftmm.h

Issue 1416993005: Merge to XFA: Update bundled freetype to 2.6.1 (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/freetype/include/ftmac.h ('k') | third_party/freetype/include/ftmodapi.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /***************************************************************************/
2 /* */
3 /* ftmm.h */
4 /* */
5 /* FreeType Multiple Master font interface (specification). */
6 /* */
7 /* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 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 __FTMM_H__
20 #define __FTMM_H__
21
22
23 #include <ft2build.h>
24 #include FT_TYPE1_TABLES_H
25
26
27 FT_BEGIN_HEADER
28
29
30 /*************************************************************************/
31 /* */
32 /* <Section> */
33 /* multiple_masters */
34 /* */
35 /* <Title> */
36 /* Multiple Masters */
37 /* */
38 /* <Abstract> */
39 /* How to manage Multiple Masters fonts. */
40 /* */
41 /* <Description> */
42 /* The following types and functions are used to manage Multiple */
43 /* Master fonts, i.e., the selection of specific design instances by */
44 /* setting design axis coordinates. */
45 /* */
46 /* George Williams has extended this interface to make it work with */
47 /* both Type~1 Multiple Masters fonts and GX distortable (var) */
48 /* fonts. Some of these routines only work with MM fonts, others */
49 /* will work with both types. They are similar enough that a */
50 /* consistent interface makes sense. */
51 /* */
52 /*************************************************************************/
53
54
55 /*************************************************************************/
56 /* */
57 /* <Struct> */
58 /* FT_MM_Axis */
59 /* */
60 /* <Description> */
61 /* A simple structure used to model a given axis in design space for */
62 /* Multiple Masters fonts. */
63 /* */
64 /* This structure can't be used for GX var fonts. */
65 /* */
66 /* <Fields> */
67 /* name :: The axis's name. */
68 /* */
69 /* minimum :: The axis's minimum design coordinate. */
70 /* */
71 /* maximum :: The axis's maximum design coordinate. */
72 /* */
73 typedef struct FT_MM_Axis_
74 {
75 FT_String* name;
76 FT_Long minimum;
77 FT_Long maximum;
78
79 } FT_MM_Axis;
80
81
82 /*************************************************************************/
83 /* */
84 /* <Struct> */
85 /* FT_Multi_Master */
86 /* */
87 /* <Description> */
88 /* A structure used to model the axes and space of a Multiple Masters */
89 /* font. */
90 /* */
91 /* This structure can't be used for GX var fonts. */
92 /* */
93 /* <Fields> */
94 /* num_axis :: Number of axes. Cannot exceed~4. */
95 /* */
96 /* num_designs :: Number of designs; should be normally 2^num_axis */
97 /* even though the Type~1 specification strangely */
98 /* allows for intermediate designs to be present. This */
99 /* number cannot exceed~16. */
100 /* */
101 /* axis :: A table of axis descriptors. */
102 /* */
103 typedef struct FT_Multi_Master_
104 {
105 FT_UInt num_axis;
106 FT_UInt num_designs;
107 FT_MM_Axis axis[T1_MAX_MM_AXIS];
108
109 } FT_Multi_Master;
110
111
112 /*************************************************************************/
113 /* */
114 /* <Struct> */
115 /* FT_Var_Axis */
116 /* */
117 /* <Description> */
118 /* A simple structure used to model a given axis in design space for */
119 /* Multiple Masters and GX var fonts. */
120 /* */
121 /* <Fields> */
122 /* name :: The axis's name. */
123 /* Not always meaningful for GX. */
124 /* */
125 /* minimum :: The axis's minimum design coordinate. */
126 /* */
127 /* def :: The axis's default design coordinate. */
128 /* FreeType computes meaningful default values for MM; it */
129 /* is then an integer value, not in 16.16 format. */
130 /* */
131 /* maximum :: The axis's maximum design coordinate. */
132 /* */
133 /* tag :: The axis's tag (the GX equivalent to `name'). */
134 /* FreeType provides default values for MM if possible. */
135 /* */
136 /* strid :: The entry in `name' table (another GX version of */
137 /* `name'). */
138 /* Not meaningful for MM. */
139 /* */
140 typedef struct FT_Var_Axis_
141 {
142 FT_String* name;
143
144 FT_Fixed minimum;
145 FT_Fixed def;
146 FT_Fixed maximum;
147
148 FT_ULong tag;
149 FT_UInt strid;
150
151 } FT_Var_Axis;
152
153
154 /*************************************************************************/
155 /* */
156 /* <Struct> */
157 /* FT_Var_Named_Style */
158 /* */
159 /* <Description> */
160 /* A simple structure used to model a named style in a GX var font. */
161 /* */
162 /* This structure can't be used for MM fonts. */
163 /* */
164 /* <Fields> */
165 /* coords :: The design coordinates for this style. */
166 /* This is an array with one entry for each axis. */
167 /* */
168 /* strid :: The entry in `name' table identifying this style. */
169 /* */
170 typedef struct FT_Var_Named_Style_
171 {
172 FT_Fixed* coords;
173 FT_UInt strid;
174
175 } FT_Var_Named_Style;
176
177
178 /*************************************************************************/
179 /* */
180 /* <Struct> */
181 /* FT_MM_Var */
182 /* */
183 /* <Description> */
184 /* A structure used to model the axes and space of a Multiple Masters */
185 /* or GX var distortable font. */
186 /* */
187 /* Some fields are specific to one format and not to the other. */
188 /* */
189 /* <Fields> */
190 /* num_axis :: The number of axes. The maximum value is~4 for */
191 /* MM; no limit in GX. */
192 /* */
193 /* num_designs :: The number of designs; should be normally */
194 /* 2^num_axis for MM fonts. Not meaningful for GX */
195 /* (where every glyph could have a different */
196 /* number of designs). */
197 /* */
198 /* num_namedstyles :: The number of named styles; only meaningful for */
199 /* GX that allows certain design coordinates to */
200 /* have a string ID (in the `name' table) */
201 /* associated with them. The font can tell the */
202 /* user that, for example, Weight=1.5 is `Bold'. */
203 /* */
204 /* axis :: A table of axis descriptors. */
205 /* GX fonts contain slightly more data than MM. */
206 /* */
207 /* namedstyles :: A table of named styles. */
208 /* Only meaningful with GX. */
209 /* */
210 typedef struct FT_MM_Var_
211 {
212 FT_UInt num_axis;
213 FT_UInt num_designs;
214 FT_UInt num_namedstyles;
215 FT_Var_Axis* axis;
216 FT_Var_Named_Style* namedstyle;
217
218 } FT_MM_Var;
219
220
221 /*************************************************************************/
222 /* */
223 /* <Function> */
224 /* FT_Get_Multi_Master */
225 /* */
226 /* <Description> */
227 /* Retrieve the Multiple Master descriptor of a given font. */
228 /* */
229 /* This function can't be used with GX fonts. */
230 /* */
231 /* <Input> */
232 /* face :: A handle to the source face. */
233 /* */
234 /* <Output> */
235 /* amaster :: The Multiple Masters descriptor. */
236 /* */
237 /* <Return> */
238 /* FreeType error code. 0~means success. */
239 /* */
240 FT_EXPORT( FT_Error )
241 FT_Get_Multi_Master( FT_Face face,
242 FT_Multi_Master *amaster );
243
244
245 /*************************************************************************/
246 /* */
247 /* <Function> */
248 /* FT_Get_MM_Var */
249 /* */
250 /* <Description> */
251 /* Retrieve the Multiple Master/GX var descriptor of a given font. */
252 /* */
253 /* <Input> */
254 /* face :: A handle to the source face. */
255 /* */
256 /* <Output> */
257 /* amaster :: The Multiple Masters/GX var descriptor. */
258 /* Allocates a data structure, which the user must free. */
259 /* */
260 /* <Return> */
261 /* FreeType error code. 0~means success. */
262 /* */
263 FT_EXPORT( FT_Error )
264 FT_Get_MM_Var( FT_Face face,
265 FT_MM_Var* *amaster );
266
267
268 /*************************************************************************/
269 /* */
270 /* <Function> */
271 /* FT_Set_MM_Design_Coordinates */
272 /* */
273 /* <Description> */
274 /* For Multiple Masters fonts, choose an interpolated font design */
275 /* through design coordinates. */
276 /* */
277 /* This function can't be used with GX fonts. */
278 /* */
279 /* <InOut> */
280 /* face :: A handle to the source face. */
281 /* */
282 /* <Input> */
283 /* num_coords :: The number of design coordinates (must be equal to */
284 /* the number of axes in the font). */
285 /* */
286 /* coords :: An array of design coordinates. */
287 /* */
288 /* <Return> */
289 /* FreeType error code. 0~means success. */
290 /* */
291 FT_EXPORT( FT_Error )
292 FT_Set_MM_Design_Coordinates( FT_Face face,
293 FT_UInt num_coords,
294 FT_Long* coords );
295
296
297 /*************************************************************************/
298 /* */
299 /* <Function> */
300 /* FT_Set_Var_Design_Coordinates */
301 /* */
302 /* <Description> */
303 /* For Multiple Master or GX Var fonts, choose an interpolated font */
304 /* design through design coordinates. */
305 /* */
306 /* <InOut> */
307 /* face :: A handle to the source face. */
308 /* */
309 /* <Input> */
310 /* num_coords :: The number of design coordinates (must be equal to */
311 /* the number of axes in the font). */
312 /* */
313 /* coords :: An array of design coordinates. */
314 /* */
315 /* <Return> */
316 /* FreeType error code. 0~means success. */
317 /* */
318 FT_EXPORT( FT_Error )
319 FT_Set_Var_Design_Coordinates( FT_Face face,
320 FT_UInt num_coords,
321 FT_Fixed* coords );
322
323
324 /*************************************************************************/
325 /* */
326 /* <Function> */
327 /* FT_Set_MM_Blend_Coordinates */
328 /* */
329 /* <Description> */
330 /* For Multiple Masters and GX var fonts, choose an interpolated font */
331 /* design through normalized blend coordinates. */
332 /* */
333 /* <InOut> */
334 /* face :: A handle to the source face. */
335 /* */
336 /* <Input> */
337 /* num_coords :: The number of design coordinates (must be equal to */
338 /* the number of axes in the font). */
339 /* */
340 /* coords :: The design coordinates array (each element must be */
341 /* between 0 and 1.0). */
342 /* */
343 /* <Return> */
344 /* FreeType error code. 0~means success. */
345 /* */
346 FT_EXPORT( FT_Error )
347 FT_Set_MM_Blend_Coordinates( FT_Face face,
348 FT_UInt num_coords,
349 FT_Fixed* coords );
350
351
352 /*************************************************************************/
353 /* */
354 /* <Function> */
355 /* FT_Set_Var_Blend_Coordinates */
356 /* */
357 /* <Description> */
358 /* This is another name of @FT_Set_MM_Blend_Coordinates. */
359 /* */
360 FT_EXPORT( FT_Error )
361 FT_Set_Var_Blend_Coordinates( FT_Face face,
362 FT_UInt num_coords,
363 FT_Fixed* coords );
364
365 /* */
366
367
368 FT_END_HEADER
369
370 #endif /* __FTMM_H__ */
371
372
373 /* END */
OLDNEW
« no previous file with comments | « third_party/freetype/include/ftmac.h ('k') | third_party/freetype/include/ftmodapi.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698