Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
ftmm.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * ftmm.h
4 *
5 * FreeType Multiple Master font interface (specification).
6 *
7 * Copyright (C) 1996-2024 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#include <freetype/freetype.h>
23
24#ifdef FREETYPE_H
25#error "freetype.h of FreeType 1 has been loaded!"
26#error "Please fix the directory search order for header files"
27#error "so that freetype.h of FreeType 2 is found first."
28#endif
29
30
32
33
34 /**************************************************************************
35 *
36 * @section:
37 * multiple_masters
38 *
39 * @title:
40 * Multiple Masters
41 *
42 * @abstract:
43 * How to manage Multiple Masters fonts.
44 *
45 * @description:
46 * The following types and functions are used to manage Multiple Master
47 * fonts, i.e., the selection of specific design instances by setting
48 * design axis coordinates.
49 *
50 * Besides Adobe MM fonts, the interface supports Apple's TrueType GX and
51 * OpenType variation fonts. Some of the routines only work with Adobe
52 * MM fonts, others will work with all three types. They are similar
53 * enough that a consistent interface makes sense.
54 *
55 * For Adobe MM fonts, macro @FT_IS_SFNT returns false. For GX and
56 * OpenType variation fonts, it returns true.
57 *
58 */
59
60
61 /**************************************************************************
62 *
63 * @enum:
64 * T1_MAX_MM_XXX
65 *
66 * @description:
67 * Multiple Masters limits as defined in their specifications.
68 *
69 * @values:
70 * T1_MAX_MM_AXIS ::
71 * The maximum number of Multiple Masters axes.
72 *
73 * T1_MAX_MM_DESIGNS ::
74 * The maximum number of Multiple Masters designs.
75 *
76 * T1_MAX_MM_MAP_POINTS ::
77 * The maximum number of elements in a design map.
78 *
79 */
80#define T1_MAX_MM_AXIS 4
81#define T1_MAX_MM_DESIGNS 16
82#define T1_MAX_MM_MAP_POINTS 20
83
84
85 /**************************************************************************
86 *
87 * @struct:
88 * FT_MM_Axis
89 *
90 * @description:
91 * A structure to model a given axis in design space for Multiple Masters
92 * fonts.
93 *
94 * This structure can't be used for TrueType GX or OpenType variation
95 * fonts.
96 *
97 * @fields:
98 * name ::
99 * The axis's name.
100 *
101 * minimum ::
102 * The axis's minimum design coordinate.
103 *
104 * maximum ::
105 * The axis's maximum design coordinate.
106 */
114
115
116 /**************************************************************************
117 *
118 * @struct:
119 * FT_Multi_Master
120 *
121 * @description:
122 * A structure to model the axes and space of a Multiple Masters font.
123 *
124 * This structure can't be used for TrueType GX or OpenType variation
125 * fonts.
126 *
127 * @fields:
128 * num_axis ::
129 * Number of axes. Cannot exceed~4.
130 *
131 * num_designs ::
132 * Number of designs; should be normally 2^num_axis even though the
133 * Type~1 specification strangely allows for intermediate designs to be
134 * present. This number cannot exceed~16.
135 *
136 * axis ::
137 * A table of axis descriptors.
138 */
146
147
148 /**************************************************************************
149 *
150 * @struct:
151 * FT_Var_Axis
152 *
153 * @description:
154 * A structure to model a given axis in design space for Multiple
155 * Masters, TrueType GX, and OpenType variation fonts.
156 *
157 * @fields:
158 * name ::
159 * The axis's name. Not always meaningful for TrueType GX or OpenType
160 * variation fonts.
161 *
162 * minimum ::
163 * The axis's minimum design coordinate.
164 *
165 * def ::
166 * The axis's default design coordinate. FreeType computes meaningful
167 * default values for Adobe MM fonts.
168 *
169 * maximum ::
170 * The axis's maximum design coordinate.
171 *
172 * tag ::
173 * The axis's tag (the equivalent to 'name' for TrueType GX and
174 * OpenType variation fonts). FreeType provides default values for
175 * Adobe MM fonts if possible.
176 *
177 * strid ::
178 * The axis name entry in the font's 'name' table. This is another
179 * (and often better) version of the 'name' field for TrueType GX or
180 * OpenType variation fonts. Not meaningful for Adobe MM fonts.
181 *
182 * @note:
183 * The fields `minimum`, `def`, and `maximum` are 16.16 fractional values
184 * for TrueType GX and OpenType variation fonts. For Adobe MM fonts, the
185 * values are whole numbers (i.e., the fractional part is zero).
186 */
199
200
201 /**************************************************************************
202 *
203 * @struct:
204 * FT_Var_Named_Style
205 *
206 * @description:
207 * A structure to model a named instance in a TrueType GX or OpenType
208 * variation font.
209 *
210 * This structure can't be used for Adobe MM fonts.
211 *
212 * @fields:
213 * coords ::
214 * The design coordinates for this instance. This is an array with one
215 * entry for each axis.
216 *
217 * strid ::
218 * The entry in 'name' table identifying this instance.
219 *
220 * psid ::
221 * The entry in 'name' table identifying a PostScript name for this
222 * instance. Value 0xFFFF indicates a missing entry.
223 */
231
232
233 /**************************************************************************
234 *
235 * @struct:
236 * FT_MM_Var
237 *
238 * @description:
239 * A structure to model the axes and space of an Adobe MM, TrueType GX,
240 * or OpenType variation font.
241 *
242 * Some fields are specific to one format and not to the others.
243 *
244 * @fields:
245 * num_axis ::
246 * The number of axes. The maximum value is~4 for Adobe MM fonts; no
247 * limit in TrueType GX or OpenType variation fonts.
248 *
249 * num_designs ::
250 * The number of designs; should be normally 2^num_axis for Adobe MM
251 * fonts. Not meaningful for TrueType GX or OpenType variation fonts
252 * (where every glyph could have a different number of designs).
253 *
254 * num_namedstyles ::
255 * The number of named styles; a 'named style' is a tuple of design
256 * coordinates that has a string ID (in the 'name' table) associated
257 * with it. The font can tell the user that, for example,
258 * [Weight=1.5,Width=1.1] is 'Bold'. Another name for 'named style' is
259 * 'named instance'.
260 *
261 * For Adobe Multiple Masters fonts, this value is always zero because
262 * the format does not support named styles.
263 *
264 * axis ::
265 * An axis descriptor table. TrueType GX and OpenType variation fonts
266 * contain slightly more data than Adobe MM fonts. Memory management
267 * of this pointer is done internally by FreeType.
268 *
269 * namedstyle ::
270 * A named style (instance) table. Only meaningful for TrueType GX and
271 * OpenType variation fonts. Memory management of this pointer is done
272 * internally by FreeType.
273 */
283
284
285 /**************************************************************************
286 *
287 * @function:
288 * FT_Get_Multi_Master
289 *
290 * @description:
291 * Retrieve a variation descriptor of a given Adobe MM font.
292 *
293 * This function can't be used with TrueType GX or OpenType variation
294 * fonts.
295 *
296 * @input:
297 * face ::
298 * A handle to the source face.
299 *
300 * @output:
301 * amaster ::
302 * The Multiple Masters descriptor.
303 *
304 * @return:
305 * FreeType error code. 0~means success.
306 */
309 FT_Multi_Master *amaster );
310
311
312 /**************************************************************************
313 *
314 * @function:
315 * FT_Get_MM_Var
316 *
317 * @description:
318 * Retrieve a variation descriptor for a given font.
319 *
320 * This function works with all supported variation formats.
321 *
322 * @input:
323 * face ::
324 * A handle to the source face.
325 *
326 * @output:
327 * amaster ::
328 * The variation descriptor. Allocates a data structure, which the
329 * user must deallocate with a call to @FT_Done_MM_Var after use.
330 *
331 * @return:
332 * FreeType error code. 0~means success.
333 */
336 FT_MM_Var* *amaster );
337
338
339 /**************************************************************************
340 *
341 * @function:
342 * FT_Done_MM_Var
343 *
344 * @description:
345 * Free the memory allocated by @FT_Get_MM_Var.
346 *
347 * @input:
348 * library ::
349 * A handle of the face's parent library object that was used in the
350 * call to @FT_Get_MM_Var to create `amaster`.
351 *
352 * @return:
353 * FreeType error code. 0~means success.
354 */
357 FT_MM_Var *amaster );
358
359
360 /**************************************************************************
361 *
362 * @function:
363 * FT_Set_MM_Design_Coordinates
364 *
365 * @description:
366 * For Adobe MM fonts, choose an interpolated font design through design
367 * coordinates.
368 *
369 * This function can't be used with TrueType GX or OpenType variation
370 * fonts.
371 *
372 * @inout:
373 * face ::
374 * A handle to the source face.
375 *
376 * @input:
377 * num_coords ::
378 * The number of available design coordinates. If it is larger than
379 * the number of axes, ignore the excess values. If it is smaller than
380 * the number of axes, use default values for the remaining axes.
381 *
382 * coords ::
383 * An array of design coordinates.
384 *
385 * @return:
386 * FreeType error code. 0~means success.
387 *
388 * @note:
389 * [Since 2.8.1] To reset all axes to the default values, call the
390 * function with `num_coords` set to zero and `coords` set to `NULL`.
391 *
392 * [Since 2.9] If `num_coords` is larger than zero, this function sets
393 * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
394 * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
395 * this bit flag gets unset.
396 */
399 FT_UInt num_coords,
400 FT_Long* coords );
401
402
403 /**************************************************************************
404 *
405 * @function:
406 * FT_Set_Var_Design_Coordinates
407 *
408 * @description:
409 * Choose an interpolated font design through design coordinates.
410 *
411 * This function works with all supported variation formats.
412 *
413 * @inout:
414 * face ::
415 * A handle to the source face.
416 *
417 * @input:
418 * num_coords ::
419 * The number of available design coordinates. If it is larger than
420 * the number of axes, ignore the excess values. If it is smaller than
421 * the number of axes, use default values for the remaining axes.
422 *
423 * coords ::
424 * An array of design coordinates.
425 *
426 * @return:
427 * FreeType error code. 0~means success.
428 *
429 * @note:
430 * The design coordinates are 16.16 fractional values for TrueType GX and
431 * OpenType variation fonts. For Adobe MM fonts, the values are supposed
432 * to be whole numbers (i.e., the fractional part is zero).
433 *
434 * [Since 2.8.1] To reset all axes to the default values, call the
435 * function with `num_coords` set to zero and `coords` set to `NULL`.
436 * [Since 2.9] 'Default values' means the currently selected named
437 * instance (or the base font if no named instance is selected).
438 *
439 * [Since 2.9] If `num_coords` is larger than zero, this function sets
440 * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
441 * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
442 * this bit flag gets unset.
443 */
446 FT_UInt num_coords,
447 FT_Fixed* coords );
448
449
450 /**************************************************************************
451 *
452 * @function:
453 * FT_Get_Var_Design_Coordinates
454 *
455 * @description:
456 * Get the design coordinates of the currently selected interpolated
457 * font.
458 *
459 * This function works with all supported variation formats.
460 *
461 * @input:
462 * face ::
463 * A handle to the source face.
464 *
465 * num_coords ::
466 * The number of design coordinates to retrieve. If it is larger than
467 * the number of axes, set the excess values to~0.
468 *
469 * @output:
470 * coords ::
471 * The design coordinates array.
472 *
473 * @return:
474 * FreeType error code. 0~means success.
475 *
476 * @note:
477 * The design coordinates are 16.16 fractional values for TrueType GX and
478 * OpenType variation fonts. For Adobe MM fonts, the values are whole
479 * numbers (i.e., the fractional part is zero).
480 *
481 * @since:
482 * 2.7.1
483 */
486 FT_UInt num_coords,
487 FT_Fixed* coords );
488
489
490 /**************************************************************************
491 *
492 * @function:
493 * FT_Set_MM_Blend_Coordinates
494 *
495 * @description:
496 * Choose an interpolated font design through normalized blend
497 * coordinates.
498 *
499 * This function works with all supported variation formats.
500 *
501 * @inout:
502 * face ::
503 * A handle to the source face.
504 *
505 * @input:
506 * num_coords ::
507 * The number of available design coordinates. If it is larger than
508 * the number of axes, ignore the excess values. If it is smaller than
509 * the number of axes, use default values for the remaining axes.
510 *
511 * coords ::
512 * The design coordinates array. Each element is a 16.16 fractional
513 * value and must be between 0 and 1.0 for Adobe MM fonts, and between
514 * -1.0 and 1.0 for TrueType GX and OpenType variation fonts.
515 *
516 * @return:
517 * FreeType error code. 0~means success.
518 *
519 * @note:
520 * [Since 2.8.1] To reset all axes to the default values, call the
521 * function with `num_coords` set to zero and `coords` set to `NULL`.
522 * [Since 2.9] 'Default values' means the currently selected named
523 * instance (or the base font if no named instance is selected).
524 *
525 * [Since 2.9] If `num_coords` is larger than zero, this function sets
526 * the @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field
527 * (i.e., @FT_IS_VARIATION will return true). If `num_coords` is zero,
528 * this bit flag gets unset.
529 */
532 FT_UInt num_coords,
533 FT_Fixed* coords );
534
535
536 /**************************************************************************
537 *
538 * @function:
539 * FT_Get_MM_Blend_Coordinates
540 *
541 * @description:
542 * Get the normalized blend coordinates of the currently selected
543 * interpolated font.
544 *
545 * This function works with all supported variation formats.
546 *
547 * @input:
548 * face ::
549 * A handle to the source face.
550 *
551 * num_coords ::
552 * The number of normalized blend coordinates to retrieve. If it is
553 * larger than the number of axes, set the excess values to~0.5 for
554 * Adobe MM fonts, and to~0 for TrueType GX and OpenType variation
555 * fonts.
556 *
557 * @output:
558 * coords ::
559 * The normalized blend coordinates array (as 16.16 fractional values).
560 *
561 * @return:
562 * FreeType error code. 0~means success.
563 *
564 * @since:
565 * 2.7.1
566 */
569 FT_UInt num_coords,
570 FT_Fixed* coords );
571
572
573 /**************************************************************************
574 *
575 * @function:
576 * FT_Set_Var_Blend_Coordinates
577 *
578 * @description:
579 * This is another name of @FT_Set_MM_Blend_Coordinates.
580 */
583 FT_UInt num_coords,
584 FT_Fixed* coords );
585
586
587 /**************************************************************************
588 *
589 * @function:
590 * FT_Get_Var_Blend_Coordinates
591 *
592 * @description:
593 * This is another name of @FT_Get_MM_Blend_Coordinates.
594 *
595 * @since:
596 * 2.7.1
597 */
600 FT_UInt num_coords,
601 FT_Fixed* coords );
602
603
604 /**************************************************************************
605 *
606 * @function:
607 * FT_Set_MM_WeightVector
608 *
609 * @description:
610 * For Adobe MM fonts, choose an interpolated font design by directly
611 * setting the weight vector.
612 *
613 * This function can't be used with TrueType GX or OpenType variation
614 * fonts.
615 *
616 * @inout:
617 * face ::
618 * A handle to the source face.
619 *
620 * @input:
621 * len ::
622 * The length of the weight vector array. If it is larger than the
623 * number of designs, the extra values are ignored. If it is less than
624 * the number of designs, the remaining values are set to zero.
625 *
626 * weightvector ::
627 * An array representing the weight vector.
628 *
629 * @return:
630 * FreeType error code. 0~means success.
631 *
632 * @note:
633 * Adobe Multiple Master fonts limit the number of designs, and thus the
634 * length of the weight vector to 16~elements.
635 *
636 * If `len` is larger than zero, this function sets the
637 * @FT_FACE_FLAG_VARIATION bit in @FT_Face's `face_flags` field (i.e.,
638 * @FT_IS_VARIATION will return true). If `len` is zero, this bit flag
639 * is unset and the weight vector array is reset to the default values.
640 *
641 * The Adobe documentation also states that the values in the
642 * WeightVector array must total 1.0 +/-~0.001. In practice this does
643 * not seem to be enforced, so is not enforced here, either.
644 *
645 * @since:
646 * 2.10
647 */
650 FT_UInt len,
651 FT_Fixed* weightvector );
652
653
654 /**************************************************************************
655 *
656 * @function:
657 * FT_Get_MM_WeightVector
658 *
659 * @description:
660 * For Adobe MM fonts, retrieve the current weight vector of the font.
661 *
662 * This function can't be used with TrueType GX or OpenType variation
663 * fonts.
664 *
665 * @inout:
666 * face ::
667 * A handle to the source face.
668 *
669 * len ::
670 * A pointer to the size of the array to be filled. If the size of the
671 * array is less than the number of designs, `FT_Err_Invalid_Argument`
672 * is returned, and `len` is set to the required size (the number of
673 * designs). If the size of the array is greater than the number of
674 * designs, the remaining entries are set to~0. On successful
675 * completion, `len` is set to the number of designs (i.e., the number
676 * of values written to the array).
677 *
678 * @output:
679 * weightvector ::
680 * An array to be filled.
681 *
682 * @return:
683 * FreeType error code. 0~means success.
684 *
685 * @note:
686 * Adobe Multiple Master fonts limit the number of designs, and thus the
687 * length of the WeightVector to~16.
688 *
689 * @since:
690 * 2.10
691 */
694 FT_UInt* len,
695 FT_Fixed* weightvector );
696
697
698 /**************************************************************************
699 *
700 * @enum:
701 * FT_VAR_AXIS_FLAG_XXX
702 *
703 * @description:
704 * A list of bit flags used in the return value of
705 * @FT_Get_Var_Axis_Flags.
706 *
707 * @values:
708 * FT_VAR_AXIS_FLAG_HIDDEN ::
709 * The variation axis should not be exposed to user interfaces.
710 *
711 * @since:
712 * 2.8.1
713 */
714#define FT_VAR_AXIS_FLAG_HIDDEN 1
715
716
717 /**************************************************************************
718 *
719 * @function:
720 * FT_Get_Var_Axis_Flags
721 *
722 * @description:
723 * Get the 'flags' field of an OpenType Variation Axis Record.
724 *
725 * Not meaningful for Adobe MM fonts (`*flags` is always zero).
726 *
727 * @input:
728 * master ::
729 * The variation descriptor.
730 *
731 * axis_index ::
732 * The index of the requested variation axis.
733 *
734 * @output:
735 * flags ::
736 * The 'flags' field. See @FT_VAR_AXIS_FLAG_XXX for possible values.
737 *
738 * @return:
739 * FreeType error code. 0~means success.
740 *
741 * @since:
742 * 2.8.1
743 */
746 FT_UInt axis_index,
747 FT_UInt* flags );
748
749
750 /**************************************************************************
751 *
752 * @function:
753 * FT_Set_Named_Instance
754 *
755 * @description:
756 * Set or change the current named instance.
757 *
758 * @input:
759 * face ::
760 * A handle to the source face.
761 *
762 * instance_index ::
763 * The index of the requested instance, starting with value 1. If set
764 * to value 0, FreeType switches to font access without a named
765 * instance.
766 *
767 * @return:
768 * FreeType error code. 0~means success.
769 *
770 * @note:
771 * The function uses the value of `instance_index` to set bits 16-30 of
772 * the face's `face_index` field. It also resets any variation applied
773 * to the font, and the @FT_FACE_FLAG_VARIATION bit of the face's
774 * `face_flags` field gets reset to zero (i.e., @FT_IS_VARIATION will
775 * return false).
776 *
777 * For Adobe MM fonts (which don't have named instances) this function
778 * simply resets the current face to the default instance.
779 *
780 * @since:
781 * 2.9
782 */
785 FT_UInt instance_index );
786
787
788 /**************************************************************************
789 *
790 * @function:
791 * FT_Get_Default_Named_Instance
792 *
793 * @description:
794 * Retrieve the index of the default named instance, to be used with
795 * @FT_Set_Named_Instance.
796 *
797 * The default instance of a variation font is that instance for which
798 * the nth axis coordinate is equal to `axis[n].def` (as specified in the
799 * @FT_MM_Var structure), with~n covering all axes.
800 *
801 * FreeType synthesizes a named instance for the default instance if the
802 * font does not contain such an entry.
803 *
804 * @input:
805 * face ::
806 * A handle to the source face.
807 *
808 * @output:
809 * instance_index ::
810 * The index of the default named instance.
811 *
812 * @return:
813 * FreeType error code. 0~means success.
814 *
815 * @note:
816 * For Adobe MM fonts (which don't have named instances) this function
817 * always returns zero for `instance_index`.
818 *
819 * @since:
820 * 2.13.1
821 */
824 FT_UInt *instance_index );
825
826 /* */
827
828
830
831#endif /* FTMM_H_ */
832
833
834/* END */
struct FT_LibraryRec_ * FT_Library
Definition freetype.h:557
#define FT_END_HEADER
Definition ftheader.h:57
#define FT_BEGIN_HEADER
Definition ftheader.h:37
FT_Get_Multi_Master(FT_Face face, FT_Multi_Master *amaster)
FT_Set_MM_Blend_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
struct FT_Multi_Master_ FT_Multi_Master
FT_Get_Default_Named_Instance(FT_Face face, FT_UInt *instance_index)
FT_Set_MM_WeightVector(FT_Face face, FT_UInt len, FT_Fixed *weightvector)
FT_Get_Var_Axis_Flags(FT_MM_Var *master, FT_UInt axis_index, FT_UInt *flags)
FT_Set_Var_Blend_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
#define T1_MAX_MM_AXIS
Definition ftmm.h:80
FT_Set_MM_Design_Coordinates(FT_Face face, FT_UInt num_coords, FT_Long *coords)
FT_Get_MM_Blend_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
FT_Get_Var_Blend_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
struct FT_MM_Var_ FT_MM_Var
FT_Set_Var_Design_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
FT_Get_Var_Design_Coordinates(FT_Face face, FT_UInt num_coords, FT_Fixed *coords)
FT_Get_MM_WeightVector(FT_Face face, FT_UInt *len, FT_Fixed *weightvector)
struct FT_Var_Axis_ FT_Var_Axis
FT_Done_MM_Var(FT_Library library, FT_MM_Var *amaster)
struct FT_Var_Named_Style_ FT_Var_Named_Style
FT_Set_Named_Instance(FT_Face face, FT_UInt instance_index)
struct FT_MM_Axis_ FT_MM_Axis
FT_Get_MM_Var(FT_Face face, FT_MM_Var **amaster)
unsigned long FT_ULong
Definition fttypes.h:256
signed long FT_Fixed
Definition fttypes.h:290
int FT_Error
Definition fttypes.h:302
signed long FT_Long
Definition fttypes.h:245
char FT_String
Definition fttypes.h:190
unsigned int FT_UInt
Definition fttypes.h:234
#define FT_EXPORT(x)
FT_String * name
Definition ftmm.h:109
FT_Long minimum
Definition ftmm.h:110
FT_Long maximum
Definition ftmm.h:111
FT_Var_Axis * axis
Definition ftmm.h:279
FT_UInt num_designs
Definition ftmm.h:277
FT_UInt num_namedstyles
Definition ftmm.h:278
FT_UInt num_axis
Definition ftmm.h:276
FT_Var_Named_Style * namedstyle
Definition ftmm.h:280
FT_MM_Axis axis[T1_MAX_MM_AXIS]
Definition ftmm.h:143
FT_UInt num_designs
Definition ftmm.h:142
FT_UInt num_axis
Definition ftmm.h:141
FT_ULong tag
Definition ftmm.h:195
FT_UInt strid
Definition ftmm.h:196
FT_Fixed def
Definition ftmm.h:192
FT_Fixed maximum
Definition ftmm.h:193
FT_String * name
Definition ftmm.h:189
FT_Fixed minimum
Definition ftmm.h:191
FT_Fixed * coords
Definition ftmm.h:226
FT_UInt strid
Definition ftmm.h:227