1 | /***************************************************************************/ |
2 | /* */ |
3 | /* ftmm.h */ |
4 | /* */ |
5 | /* FreeType Multiple Master font interface (specification). */ |
6 | /* */ |
7 | /* Copyright 1996-2018 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 | /* Besides Adobe MM fonts, the interface supports Apple's TrueType GX */ |
47 | /* and OpenType variation fonts. Some of the routines only work with */ |
48 | /* Adobe MM fonts, others will work with all three types. They are */ |
49 | /* similar enough that a consistent interface makes sense. */ |
50 | /* */ |
51 | /*************************************************************************/ |
52 | |
53 | |
54 | /*************************************************************************/ |
55 | /* */ |
56 | /* <Struct> */ |
57 | /* FT_MM_Axis */ |
58 | /* */ |
59 | /* <Description> */ |
60 | /* A structure to model a given axis in design space for Multiple */ |
61 | /* Masters fonts. */ |
62 | /* */ |
63 | /* This structure can't be used for TrueType GX or OpenType variation */ |
64 | /* 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 to model the axes and space of a Multiple Masters */ |
89 | /* font. */ |
90 | /* */ |
91 | /* This structure can't be used for TrueType GX or OpenType variation */ |
92 | /* fonts. */ |
93 | /* */ |
94 | /* <Fields> */ |
95 | /* num_axis :: Number of axes. Cannot exceed~4. */ |
96 | /* */ |
97 | /* num_designs :: Number of designs; should be normally 2^num_axis */ |
98 | /* even though the Type~1 specification strangely */ |
99 | /* allows for intermediate designs to be present. */ |
100 | /* This number cannot exceed~16. */ |
101 | /* */ |
102 | /* axis :: A table of axis descriptors. */ |
103 | /* */ |
104 | typedef struct FT_Multi_Master_ |
105 | { |
106 | FT_UInt num_axis; |
107 | FT_UInt num_designs; |
108 | FT_MM_Axis axis[T1_MAX_MM_AXIS]; |
109 | |
110 | } FT_Multi_Master; |
111 | |
112 | |
113 | /*************************************************************************/ |
114 | /* */ |
115 | /* <Struct> */ |
116 | /* FT_Var_Axis */ |
117 | /* */ |
118 | /* <Description> */ |
119 | /* A structure to model a given axis in design space for Multiple */ |
120 | /* Masters, TrueType GX, and OpenType variation fonts. */ |
121 | /* */ |
122 | /* <Fields> */ |
123 | /* name :: The axis's name. */ |
124 | /* Not always meaningful for TrueType GX or OpenType */ |
125 | /* variation fonts. */ |
126 | /* */ |
127 | /* minimum :: The axis's minimum design coordinate. */ |
128 | /* */ |
129 | /* def :: The axis's default design coordinate. */ |
130 | /* FreeType computes meaningful default values for Adobe */ |
131 | /* MM fonts. */ |
132 | /* */ |
133 | /* maximum :: The axis's maximum design coordinate. */ |
134 | /* */ |
135 | /* tag :: The axis's tag (the equivalent to `name' for TrueType */ |
136 | /* GX and OpenType variation fonts). FreeType provides */ |
137 | /* default values for Adobe MM fonts if possible. */ |
138 | /* */ |
139 | /* strid :: The axis name entry in the font's `name' table. This */ |
140 | /* is another (and often better) version of the `name' */ |
141 | /* field for TrueType GX or OpenType variation fonts. Not */ |
142 | /* meaningful for Adobe MM fonts. */ |
143 | /* */ |
144 | /* <Note> */ |
145 | /* The fields `minimum', `def', and `maximum' are 16.16 fractional */ |
146 | /* values for TrueType GX and OpenType variation fonts. For Adobe MM */ |
147 | /* fonts, the values are integers. */ |
148 | /* */ |
149 | typedef struct FT_Var_Axis_ |
150 | { |
151 | FT_String* name; |
152 | |
153 | FT_Fixed minimum; |
154 | FT_Fixed def; |
155 | FT_Fixed maximum; |
156 | |
157 | FT_ULong tag; |
158 | FT_UInt strid; |
159 | |
160 | } FT_Var_Axis; |
161 | |
162 | |
163 | /*************************************************************************/ |
164 | /* */ |
165 | /* <Struct> */ |
166 | /* FT_Var_Named_Style */ |
167 | /* */ |
168 | /* <Description> */ |
169 | /* A structure to model a named instance in a TrueType GX or OpenType */ |
170 | /* variation font. */ |
171 | /* */ |
172 | /* This structure can't be used for Adobe MM fonts. */ |
173 | /* */ |
174 | /* <Fields> */ |
175 | /* coords :: The design coordinates for this instance. */ |
176 | /* This is an array with one entry for each axis. */ |
177 | /* */ |
178 | /* strid :: The entry in `name' table identifying this instance. */ |
179 | /* */ |
180 | /* psid :: The entry in `name' table identifying a PostScript name */ |
181 | /* for this instance. Value 0xFFFF indicates a missing */ |
182 | /* entry. */ |
183 | /* */ |
184 | typedef struct FT_Var_Named_Style_ |
185 | { |
186 | FT_Fixed* coords; |
187 | FT_UInt strid; |
188 | FT_UInt psid; /* since 2.7.1 */ |
189 | |
190 | } FT_Var_Named_Style; |
191 | |
192 | |
193 | /*************************************************************************/ |
194 | /* */ |
195 | /* <Struct> */ |
196 | /* FT_MM_Var */ |
197 | /* */ |
198 | /* <Description> */ |
199 | /* A structure to model the axes and space of an Adobe MM, TrueType */ |
200 | /* GX, or OpenType variation font. */ |
201 | /* */ |
202 | /* Some fields are specific to one format and not to the others. */ |
203 | /* */ |
204 | /* <Fields> */ |
205 | /* num_axis :: The number of axes. The maximum value is~4 for */ |
206 | /* Adobe MM fonts; no limit in TrueType GX or */ |
207 | /* OpenType variation fonts. */ |
208 | /* */ |
209 | /* num_designs :: The number of designs; should be normally */ |
210 | /* 2^num_axis for Adobe MM fonts. Not meaningful */ |
211 | /* for TrueType GX or OpenType variation fonts */ |
212 | /* (where every glyph could have a different */ |
213 | /* number of designs). */ |
214 | /* */ |
215 | /* num_namedstyles :: The number of named styles; a `named style' is */ |
216 | /* a tuple of design coordinates that has a string */ |
217 | /* ID (in the `name' table) associated with it. */ |
218 | /* The font can tell the user that, for example, */ |
219 | /* [Weight=1.5,Width=1.1] is `Bold'. Another name */ |
220 | /* for `named style' is `named instance'. */ |
221 | /* */ |
222 | /* For Adobe Multiple Masters fonts, this value is */ |
223 | /* always zero because the format does not support */ |
224 | /* named styles. */ |
225 | /* */ |
226 | /* axis :: An axis descriptor table. */ |
227 | /* TrueType GX and OpenType variation fonts */ |
228 | /* contain slightly more data than Adobe MM fonts. */ |
229 | /* Memory management of this pointer is done */ |
230 | /* internally by FreeType. */ |
231 | /* */ |
232 | /* namedstyle :: A named style (instance) table. */ |
233 | /* Only meaningful for TrueType GX and OpenType */ |
234 | /* variation fonts. Memory management of this */ |
235 | /* pointer is done internally by FreeType. */ |
236 | /* */ |
237 | typedef struct FT_MM_Var_ |
238 | { |
239 | FT_UInt num_axis; |
240 | FT_UInt num_designs; |
241 | FT_UInt num_namedstyles; |
242 | FT_Var_Axis* axis; |
243 | FT_Var_Named_Style* namedstyle; |
244 | |
245 | } FT_MM_Var; |
246 | |
247 | |
248 | /*************************************************************************/ |
249 | /* */ |
250 | /* <Function> */ |
251 | /* FT_Get_Multi_Master */ |
252 | /* */ |
253 | /* <Description> */ |
254 | /* Retrieve a variation descriptor of a given Adobe MM font. */ |
255 | /* */ |
256 | /* This function can't be used with TrueType GX or OpenType variation */ |
257 | /* fonts. */ |
258 | /* */ |
259 | /* <Input> */ |
260 | /* face :: A handle to the source face. */ |
261 | /* */ |
262 | /* <Output> */ |
263 | /* amaster :: The Multiple Masters descriptor. */ |
264 | /* */ |
265 | /* <Return> */ |
266 | /* FreeType error code. 0~means success. */ |
267 | /* */ |
268 | FT_EXPORT( FT_Error ) |
269 | FT_Get_Multi_Master( FT_Face face, |
270 | FT_Multi_Master *amaster ); |
271 | |
272 | |
273 | /*************************************************************************/ |
274 | /* */ |
275 | /* <Function> */ |
276 | /* FT_Get_MM_Var */ |
277 | /* */ |
278 | /* <Description> */ |
279 | /* Retrieve a variation descriptor for a given font. */ |
280 | /* */ |
281 | /* This function works with all supported variation formats. */ |
282 | /* */ |
283 | /* <Input> */ |
284 | /* face :: A handle to the source face. */ |
285 | /* */ |
286 | /* <Output> */ |
287 | /* amaster :: The variation descriptor. */ |
288 | /* Allocates a data structure, which the user must */ |
289 | /* deallocate with a call to @FT_Done_MM_Var after use. */ |
290 | /* */ |
291 | /* <Return> */ |
292 | /* FreeType error code. 0~means success. */ |
293 | /* */ |
294 | FT_EXPORT( FT_Error ) |
295 | FT_Get_MM_Var( FT_Face face, |
296 | FT_MM_Var* *amaster ); |
297 | |
298 | |
299 | /*************************************************************************/ |
300 | /* */ |
301 | /* <Function> */ |
302 | /* FT_Done_MM_Var */ |
303 | /* */ |
304 | /* <Description> */ |
305 | /* Free the memory allocated by @FT_Get_MM_Var. */ |
306 | /* */ |
307 | /* <Input> */ |
308 | /* library :: A handle of the face's parent library object that was */ |
309 | /* used in the call to @FT_Get_MM_Var to create `amaster'. */ |
310 | /* */ |
311 | /* <Return> */ |
312 | /* FreeType error code. 0~means success. */ |
313 | /* */ |
314 | FT_EXPORT( FT_Error ) |
315 | FT_Done_MM_Var( FT_Library library, |
316 | FT_MM_Var *amaster ); |
317 | |
318 | |
319 | /*************************************************************************/ |
320 | /* */ |
321 | /* <Function> */ |
322 | /* FT_Set_MM_Design_Coordinates */ |
323 | /* */ |
324 | /* <Description> */ |
325 | /* For Adobe MM fonts, choose an interpolated font design through */ |
326 | /* design coordinates. */ |
327 | /* */ |
328 | /* This function can't be used with TrueType GX or OpenType variation */ |
329 | /* fonts. */ |
330 | /* */ |
331 | /* <InOut> */ |
332 | /* face :: A handle to the source face. */ |
333 | /* */ |
334 | /* <Input> */ |
335 | /* num_coords :: The number of available design coordinates. If it */ |
336 | /* is larger than the number of axes, ignore the excess */ |
337 | /* values. If it is smaller than the number of axes, */ |
338 | /* use default values for the remaining axes. */ |
339 | /* */ |
340 | /* coords :: An array of design coordinates. */ |
341 | /* */ |
342 | /* <Return> */ |
343 | /* FreeType error code. 0~means success. */ |
344 | /* */ |
345 | /* <Note> */ |
346 | /* [Since 2.8.1] To reset all axes to the default values, call the */ |
347 | /* function with `num_coords' set to zero and `coords' set to NULL. */ |
348 | /* */ |
349 | /* [Since 2.9] If `num_coords' is larger than zero, this function */ |
350 | /* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */ |
351 | /* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */ |
352 | /* is zero, this bit flag gets unset. */ |
353 | /* */ |
354 | FT_EXPORT( FT_Error ) |
355 | FT_Set_MM_Design_Coordinates( FT_Face face, |
356 | FT_UInt num_coords, |
357 | FT_Long* coords ); |
358 | |
359 | |
360 | /*************************************************************************/ |
361 | /* */ |
362 | /* <Function> */ |
363 | /* FT_Set_Var_Design_Coordinates */ |
364 | /* */ |
365 | /* <Description> */ |
366 | /* Choose an interpolated font design through design coordinates. */ |
367 | /* */ |
368 | /* This function works with all supported variation formats. */ |
369 | /* */ |
370 | /* <InOut> */ |
371 | /* face :: A handle to the source face. */ |
372 | /* */ |
373 | /* <Input> */ |
374 | /* num_coords :: The number of available design coordinates. If it */ |
375 | /* is larger than the number of axes, ignore the excess */ |
376 | /* values. If it is smaller than the number of axes, */ |
377 | /* use default values for the remaining axes. */ |
378 | /* */ |
379 | /* coords :: An array of design coordinates. */ |
380 | /* */ |
381 | /* <Return> */ |
382 | /* FreeType error code. 0~means success. */ |
383 | /* */ |
384 | /* <Note> */ |
385 | /* [Since 2.8.1] To reset all axes to the default values, call the */ |
386 | /* function with `num_coords' set to zero and `coords' set to NULL. */ |
387 | /* [Since 2.9] `Default values' means the currently selected named */ |
388 | /* instance (or the base font if no named instance is selected). */ |
389 | /* */ |
390 | /* [Since 2.9] If `num_coords' is larger than zero, this function */ |
391 | /* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */ |
392 | /* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */ |
393 | /* is zero, this bit flag gets unset. */ |
394 | /* */ |
395 | FT_EXPORT( FT_Error ) |
396 | FT_Set_Var_Design_Coordinates( FT_Face face, |
397 | FT_UInt num_coords, |
398 | FT_Fixed* coords ); |
399 | |
400 | |
401 | /*************************************************************************/ |
402 | /* */ |
403 | /* <Function> */ |
404 | /* FT_Get_Var_Design_Coordinates */ |
405 | /* */ |
406 | /* <Description> */ |
407 | /* Get the design coordinates of the currently selected interpolated */ |
408 | /* font. */ |
409 | /* */ |
410 | /* This function works with all supported variation formats. */ |
411 | /* */ |
412 | /* <Input> */ |
413 | /* face :: A handle to the source face. */ |
414 | /* */ |
415 | /* num_coords :: The number of design coordinates to retrieve. If it */ |
416 | /* is larger than the number of axes, set the excess */ |
417 | /* values to~0. */ |
418 | /* */ |
419 | /* <Output> */ |
420 | /* coords :: The design coordinates array. */ |
421 | /* */ |
422 | /* <Return> */ |
423 | /* FreeType error code. 0~means success. */ |
424 | /* */ |
425 | /* <Since> */ |
426 | /* 2.7.1 */ |
427 | /* */ |
428 | FT_EXPORT( FT_Error ) |
429 | FT_Get_Var_Design_Coordinates( FT_Face face, |
430 | FT_UInt num_coords, |
431 | FT_Fixed* coords ); |
432 | |
433 | |
434 | /*************************************************************************/ |
435 | /* */ |
436 | /* <Function> */ |
437 | /* FT_Set_MM_Blend_Coordinates */ |
438 | /* */ |
439 | /* <Description> */ |
440 | /* Choose an interpolated font design through normalized blend */ |
441 | /* coordinates. */ |
442 | /* */ |
443 | /* This function works with all supported variation formats. */ |
444 | /* */ |
445 | /* <InOut> */ |
446 | /* face :: A handle to the source face. */ |
447 | /* */ |
448 | /* <Input> */ |
449 | /* num_coords :: The number of available design coordinates. If it */ |
450 | /* is larger than the number of axes, ignore the excess */ |
451 | /* values. If it is smaller than the number of axes, */ |
452 | /* use default values for the remaining axes. */ |
453 | /* */ |
454 | /* coords :: The design coordinates array (each element must be */ |
455 | /* between 0 and 1.0 for Adobe MM fonts, and between */ |
456 | /* -1.0 and 1.0 for TrueType GX and OpenType variation */ |
457 | /* fonts). */ |
458 | /* */ |
459 | /* <Return> */ |
460 | /* FreeType error code. 0~means success. */ |
461 | /* */ |
462 | /* <Note> */ |
463 | /* [Since 2.8.1] To reset all axes to the default values, call the */ |
464 | /* function with `num_coords' set to zero and `coords' set to NULL. */ |
465 | /* [Since 2.9] `Default values' means the currently selected named */ |
466 | /* instance (or the base font if no named instance is selected). */ |
467 | /* */ |
468 | /* [Since 2.9] If `num_coords' is larger than zero, this function */ |
469 | /* sets the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags' */ |
470 | /* field (i.e., @FT_IS_VARIATION will return true). If `num_coords' */ |
471 | /* is zero, this bit flag gets unset. */ |
472 | /* */ |
473 | FT_EXPORT( FT_Error ) |
474 | FT_Set_MM_Blend_Coordinates( FT_Face face, |
475 | FT_UInt num_coords, |
476 | FT_Fixed* coords ); |
477 | |
478 | |
479 | /*************************************************************************/ |
480 | /* */ |
481 | /* <Function> */ |
482 | /* FT_Get_MM_Blend_Coordinates */ |
483 | /* */ |
484 | /* <Description> */ |
485 | /* Get the normalized blend coordinates of the currently selected */ |
486 | /* interpolated font. */ |
487 | /* */ |
488 | /* This function works with all supported variation formats. */ |
489 | /* */ |
490 | /* <Input> */ |
491 | /* face :: A handle to the source face. */ |
492 | /* */ |
493 | /* num_coords :: The number of normalized blend coordinates to */ |
494 | /* retrieve. If it is larger than the number of axes, */ |
495 | /* set the excess values to~0.5 for Adobe MM fonts, and */ |
496 | /* to~0 for TrueType GX and OpenType variation fonts. */ |
497 | /* */ |
498 | /* <Output> */ |
499 | /* coords :: The normalized blend coordinates array. */ |
500 | /* */ |
501 | /* <Return> */ |
502 | /* FreeType error code. 0~means success. */ |
503 | /* */ |
504 | /* <Since> */ |
505 | /* 2.7.1 */ |
506 | /* */ |
507 | FT_EXPORT( FT_Error ) |
508 | FT_Get_MM_Blend_Coordinates( FT_Face face, |
509 | FT_UInt num_coords, |
510 | FT_Fixed* coords ); |
511 | |
512 | |
513 | /*************************************************************************/ |
514 | /* */ |
515 | /* <Function> */ |
516 | /* FT_Set_Var_Blend_Coordinates */ |
517 | /* */ |
518 | /* <Description> */ |
519 | /* This is another name of @FT_Set_MM_Blend_Coordinates. */ |
520 | /* */ |
521 | FT_EXPORT( FT_Error ) |
522 | FT_Set_Var_Blend_Coordinates( FT_Face face, |
523 | FT_UInt num_coords, |
524 | FT_Fixed* coords ); |
525 | |
526 | |
527 | /*************************************************************************/ |
528 | /* */ |
529 | /* <Function> */ |
530 | /* FT_Get_Var_Blend_Coordinates */ |
531 | /* */ |
532 | /* <Description> */ |
533 | /* This is another name of @FT_Get_MM_Blend_Coordinates. */ |
534 | /* */ |
535 | /* <Since> */ |
536 | /* 2.7.1 */ |
537 | /* */ |
538 | FT_EXPORT( FT_Error ) |
539 | FT_Get_Var_Blend_Coordinates( FT_Face face, |
540 | FT_UInt num_coords, |
541 | FT_Fixed* coords ); |
542 | |
543 | |
544 | /*************************************************************************/ |
545 | /* */ |
546 | /* <Enum> */ |
547 | /* FT_VAR_AXIS_FLAG_XXX */ |
548 | /* */ |
549 | /* <Description> */ |
550 | /* A list of bit flags used in the return value of */ |
551 | /* @FT_Get_Var_Axis_Flags. */ |
552 | /* */ |
553 | /* <Values> */ |
554 | /* FT_VAR_AXIS_FLAG_HIDDEN :: */ |
555 | /* The variation axis should not be exposed to user interfaces. */ |
556 | /* */ |
557 | /* <Since> */ |
558 | /* 2.8.1 */ |
559 | /* */ |
560 | #define FT_VAR_AXIS_FLAG_HIDDEN 1 |
561 | |
562 | |
563 | /*************************************************************************/ |
564 | /* */ |
565 | /* <Function> */ |
566 | /* FT_Get_Var_Axis_Flags */ |
567 | /* */ |
568 | /* <Description> */ |
569 | /* Get the `flags' field of an OpenType Variation Axis Record. */ |
570 | /* */ |
571 | /* Not meaningful for Adobe MM fonts (`*flags' is always zero). */ |
572 | /* */ |
573 | /* <Input> */ |
574 | /* master :: The variation descriptor. */ |
575 | /* */ |
576 | /* axis_index :: The index of the requested variation axis. */ |
577 | /* */ |
578 | /* <Output> */ |
579 | /* flags :: The `flags' field. See @FT_VAR_AXIS_FLAG_XXX for */ |
580 | /* possible values. */ |
581 | /* */ |
582 | /* <Return> */ |
583 | /* FreeType error code. 0~means success. */ |
584 | /* */ |
585 | /* <Since> */ |
586 | /* 2.8.1 */ |
587 | /* */ |
588 | FT_EXPORT( FT_Error ) |
589 | FT_Get_Var_Axis_Flags( FT_MM_Var* master, |
590 | FT_UInt axis_index, |
591 | FT_UInt* flags ); |
592 | |
593 | |
594 | /*************************************************************************/ |
595 | /* */ |
596 | /* <Function> */ |
597 | /* FT_Set_Named_Instance */ |
598 | /* */ |
599 | /* <Description> */ |
600 | /* Set or change the current named instance. */ |
601 | /* */ |
602 | /* <Input> */ |
603 | /* face :: A handle to the source face. */ |
604 | /* */ |
605 | /* instance_index :: The index of the requested instance, starting */ |
606 | /* with value 1. If set to value 0, FreeType */ |
607 | /* switches to font access without a named */ |
608 | /* instance. */ |
609 | /* */ |
610 | /* <Return> */ |
611 | /* FreeType error code. 0~means success. */ |
612 | /* */ |
613 | /* <Note> */ |
614 | /* The function uses the value of `instance_index' to set bits 16-30 */ |
615 | /* of the face's `face_index' field. It also resets any variation */ |
616 | /* applied to the font, and the @FT_FACE_FLAG_VARIATION bit of the */ |
617 | /* face's `face_flags' field gets reset to zero (i.e., */ |
618 | /* @FT_IS_VARIATION will return false). */ |
619 | /* */ |
620 | /* For Adobe MM fonts (which don't have named instances) this */ |
621 | /* function simply resets the current face to the default instance. */ |
622 | /* */ |
623 | /* <Since> */ |
624 | /* 2.9 */ |
625 | /* */ |
626 | FT_EXPORT( FT_Error ) |
627 | FT_Set_Named_Instance( FT_Face face, |
628 | FT_UInt instance_index ); |
629 | |
630 | /* */ |
631 | |
632 | |
633 | FT_END_HEADER |
634 | |
635 | #endif /* FTMM_H_ */ |
636 | |
637 | |
638 | /* END */ |
639 | |