ReactOS 0.4.16-dev-981-g80eb313
tttables.h
Go to the documentation of this file.
1/****************************************************************************
2 *
3 * tttables.h
4 *
5 * Basic SFNT/TrueType tables definitions and interface
6 * (specification only).
7 *
8 * Copyright (C) 1996-2019 by
9 * David Turner, Robert Wilhelm, and Werner Lemberg.
10 *
11 * This file is part of the FreeType project, and may only be used,
12 * modified, and distributed under the terms of the FreeType project
13 * license, LICENSE.TXT. By continuing to use, modify, or distribute
14 * this file you indicate that you have read the license and
15 * understand and accept it fully.
16 *
17 */
18
19
20#ifndef TTTABLES_H_
21#define TTTABLES_H_
22
23
24#include <ft2build.h>
25#include FT_FREETYPE_H
26
27#ifdef FREETYPE_H
28#error "freetype.h of FreeType 1 has been loaded!"
29#error "Please fix the directory search order for header files"
30#error "so that freetype.h of FreeType 2 is found first."
31#endif
32
33
35
36 /**************************************************************************
37 *
38 * @section:
39 * truetype_tables
40 *
41 * @title:
42 * TrueType Tables
43 *
44 * @abstract:
45 * TrueType-specific table types and functions.
46 *
47 * @description:
48 * This section contains definitions of some basic tables specific to
49 * TrueType and OpenType as well as some routines used to access and
50 * process them.
51 *
52 * @order:
53 * TT_Header
54 * TT_HoriHeader
55 * TT_VertHeader
56 * TT_OS2
57 * TT_Postscript
58 * TT_PCLT
59 * TT_MaxProfile
60 *
61 * FT_Sfnt_Tag
62 * FT_Get_Sfnt_Table
63 * FT_Load_Sfnt_Table
64 * FT_Sfnt_Table_Info
65 *
66 * FT_Get_CMap_Language_ID
67 * FT_Get_CMap_Format
68 *
69 * FT_PARAM_TAG_UNPATENTED_HINTING
70 *
71 */
72
73
74 /**************************************************************************
75 *
76 * @struct:
77 * TT_Header
78 *
79 * @description:
80 * A structure to model a TrueType font header table. All fields follow
81 * the OpenType specification. The 64-bit timestamps are stored in
82 * two-element arrays `Created` and `Modified`, first the upper then
83 * the lower 32~bits.
84 */
85 typedef struct TT_Header_
86 {
89
92
95
98
103
106
110
112
113
114 /**************************************************************************
115 *
116 * @struct:
117 * TT_HoriHeader
118 *
119 * @description:
120 * A structure to model a TrueType horizontal header, the 'hhea' table,
121 * as well as the corresponding horizontal metrics table, 'hmtx'.
122 *
123 * @fields:
124 * Version ::
125 * The table version.
126 *
127 * Ascender ::
128 * The font's ascender, i.e., the distance from the baseline to the
129 * top-most of all glyph points found in the font.
130 *
131 * This value is invalid in many fonts, as it is usually set by the
132 * font designer, and often reflects only a portion of the glyphs found
133 * in the font (maybe ASCII).
134 *
135 * You should use the `sTypoAscender` field of the 'OS/2' table instead
136 * if you want the correct one.
137 *
138 * Descender ::
139 * The font's descender, i.e., the distance from the baseline to the
140 * bottom-most of all glyph points found in the font. It is negative.
141 *
142 * This value is invalid in many fonts, as it is usually set by the
143 * font designer, and often reflects only a portion of the glyphs found
144 * in the font (maybe ASCII).
145 *
146 * You should use the `sTypoDescender` field of the 'OS/2' table
147 * instead if you want the correct one.
148 *
149 * Line_Gap ::
150 * The font's line gap, i.e., the distance to add to the ascender and
151 * descender to get the BTB, i.e., the baseline-to-baseline distance
152 * for the font.
153 *
154 * advance_Width_Max ::
155 * This field is the maximum of all advance widths found in the font.
156 * It can be used to compute the maximum width of an arbitrary string
157 * of text.
158 *
159 * min_Left_Side_Bearing ::
160 * The minimum left side bearing of all glyphs within the font.
161 *
162 * min_Right_Side_Bearing ::
163 * The minimum right side bearing of all glyphs within the font.
164 *
165 * xMax_Extent ::
166 * The maximum horizontal extent (i.e., the 'width' of a glyph's
167 * bounding box) for all glyphs in the font.
168 *
169 * caret_Slope_Rise ::
170 * The rise coefficient of the cursor's slope of the cursor
171 * (slope=rise/run).
172 *
173 * caret_Slope_Run ::
174 * The run coefficient of the cursor's slope.
175 *
176 * caret_Offset ::
177 * The cursor's offset for slanted fonts.
178 *
179 * Reserved ::
180 * 8~reserved bytes.
181 *
182 * metric_Data_Format ::
183 * Always~0.
184 *
185 * number_Of_HMetrics ::
186 * Number of HMetrics entries in the 'hmtx' table -- this value can be
187 * smaller than the total number of glyphs in the font.
188 *
189 * long_metrics ::
190 * A pointer into the 'hmtx' table.
191 *
192 * short_metrics ::
193 * A pointer into the 'hmtx' table.
194 *
195 * @note:
196 * For an OpenType variation font, the values of the following fields can
197 * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
198 * the font contains an 'MVAR' table: `caret_Slope_Rise`,
199 * `caret_Slope_Run`, and `caret_Offset`.
200 */
201 typedef struct TT_HoriHeader_
202 {
207
208 FT_UShort advance_Width_Max; /* advance width maximum */
209
210 FT_Short min_Left_Side_Bearing; /* minimum left-sb */
211 FT_Short min_Right_Side_Bearing; /* minimum right-sb */
212 FT_Short xMax_Extent; /* xmax extents */
216
218
221
222 /* The following fields are not defined by the OpenType specification */
223 /* but they are used to connect the metrics header to the relevant */
224 /* 'hmtx' table. */
225
228
230
231
232 /**************************************************************************
233 *
234 * @struct:
235 * TT_VertHeader
236 *
237 * @description:
238 * A structure used to model a TrueType vertical header, the 'vhea'
239 * table, as well as the corresponding vertical metrics table, 'vmtx'.
240 *
241 * @fields:
242 * Version ::
243 * The table version.
244 *
245 * Ascender ::
246 * The font's ascender, i.e., the distance from the baseline to the
247 * top-most of all glyph points found in the font.
248 *
249 * This value is invalid in many fonts, as it is usually set by the
250 * font designer, and often reflects only a portion of the glyphs found
251 * in the font (maybe ASCII).
252 *
253 * You should use the `sTypoAscender` field of the 'OS/2' table instead
254 * if you want the correct one.
255 *
256 * Descender ::
257 * The font's descender, i.e., the distance from the baseline to the
258 * bottom-most of all glyph points found in the font. It is negative.
259 *
260 * This value is invalid in many fonts, as it is usually set by the
261 * font designer, and often reflects only a portion of the glyphs found
262 * in the font (maybe ASCII).
263 *
264 * You should use the `sTypoDescender` field of the 'OS/2' table
265 * instead if you want the correct one.
266 *
267 * Line_Gap ::
268 * The font's line gap, i.e., the distance to add to the ascender and
269 * descender to get the BTB, i.e., the baseline-to-baseline distance
270 * for the font.
271 *
272 * advance_Height_Max ::
273 * This field is the maximum of all advance heights found in the font.
274 * It can be used to compute the maximum height of an arbitrary string
275 * of text.
276 *
277 * min_Top_Side_Bearing ::
278 * The minimum top side bearing of all glyphs within the font.
279 *
280 * min_Bottom_Side_Bearing ::
281 * The minimum bottom side bearing of all glyphs within the font.
282 *
283 * yMax_Extent ::
284 * The maximum vertical extent (i.e., the 'height' of a glyph's
285 * bounding box) for all glyphs in the font.
286 *
287 * caret_Slope_Rise ::
288 * The rise coefficient of the cursor's slope of the cursor
289 * (slope=rise/run).
290 *
291 * caret_Slope_Run ::
292 * The run coefficient of the cursor's slope.
293 *
294 * caret_Offset ::
295 * The cursor's offset for slanted fonts.
296 *
297 * Reserved ::
298 * 8~reserved bytes.
299 *
300 * metric_Data_Format ::
301 * Always~0.
302 *
303 * number_Of_VMetrics ::
304 * Number of VMetrics entries in the 'vmtx' table -- this value can be
305 * smaller than the total number of glyphs in the font.
306 *
307 * long_metrics ::
308 * A pointer into the 'vmtx' table.
309 *
310 * short_metrics ::
311 * A pointer into the 'vmtx' table.
312 *
313 * @note:
314 * For an OpenType variation font, the values of the following fields can
315 * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
316 * the font contains an 'MVAR' table: `Ascender`, `Descender`,
317 * `Line_Gap`, `caret_Slope_Rise`, `caret_Slope_Run`, and `caret_Offset`.
318 */
319 typedef struct TT_VertHeader_
320 {
325
326 FT_UShort advance_Height_Max; /* advance height maximum */
327
328 FT_Short min_Top_Side_Bearing; /* minimum top-sb */
329 FT_Short min_Bottom_Side_Bearing; /* minimum bottom-sb */
330 FT_Short yMax_Extent; /* ymax extents */
334
336
339
340 /* The following fields are not defined by the OpenType specification */
341 /* but they are used to connect the metrics header to the relevant */
342 /* 'vmtx' table. */
343
346
348
349
350 /**************************************************************************
351 *
352 * @struct:
353 * TT_OS2
354 *
355 * @description:
356 * A structure to model a TrueType 'OS/2' table. All fields comply to
357 * the OpenType specification.
358 *
359 * Note that we now support old Mac fonts that do not include an 'OS/2'
360 * table. In this case, the `version` field is always set to 0xFFFF.
361 *
362 * @note:
363 * For an OpenType variation font, the values of the following fields can
364 * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
365 * the font contains an 'MVAR' table: `sCapHeight`, `sTypoAscender`,
366 * `sTypoDescender`, `sTypoLineGap`, `sxHeight`, `usWinAscent`,
367 * `usWinDescent`, `yStrikeoutPosition`, `yStrikeoutSize`,
368 * `ySubscriptXOffset`, `ySubScriptXSize`, `ySubscriptYOffset`,
369 * `ySubscriptYSize`, `ySuperscriptXOffset`, `ySuperscriptXSize`,
370 * `ySuperscriptYOffset`, and `ySuperscriptYSize`.
371 *
372 * Possible values for bits in the `ulUnicodeRangeX` fields are given by
373 * the @TT_UCR_XXX macros.
374 */
375
376 typedef struct TT_OS2_
377 {
378 FT_UShort version; /* 0x0001 - more or 0xFFFF */
394
396
397 FT_ULong ulUnicodeRange1; /* Bits 0-31 */
398 FT_ULong ulUnicodeRange2; /* Bits 32-63 */
399 FT_ULong ulUnicodeRange3; /* Bits 64-95 */
400 FT_ULong ulUnicodeRange4; /* Bits 96-127 */
401
403
412
413 /* only version 1 and higher: */
414
415 FT_ULong ulCodePageRange1; /* Bits 0-31 */
416 FT_ULong ulCodePageRange2; /* Bits 32-63 */
417
418 /* only version 2 and higher: */
419
425
426 /* only version 5 and higher: */
427
428 FT_UShort usLowerOpticalPointSize; /* in twips (1/20th points) */
429 FT_UShort usUpperOpticalPointSize; /* in twips (1/20th points) */
430
432
433
434 /**************************************************************************
435 *
436 * @struct:
437 * TT_Postscript
438 *
439 * @description:
440 * A structure to model a TrueType 'post' table. All fields comply to
441 * the OpenType specification. This structure does not reference a
442 * font's PostScript glyph names; use @FT_Get_Glyph_Name to retrieve
443 * them.
444 *
445 * @note:
446 * For an OpenType variation font, the values of the following fields can
447 * change after a call to @FT_Set_Var_Design_Coordinates (and friends) if
448 * the font contains an 'MVAR' table: `underlinePosition` and
449 * `underlineThickness`.
450 */
451 typedef struct TT_Postscript_
452 {
462
463 /* Glyph names follow in the 'post' table, but we don't */
464 /* load them by default. */
465
467
468
469 /**************************************************************************
470 *
471 * @struct:
472 * TT_PCLT
473 *
474 * @description:
475 * A structure to model a TrueType 'PCLT' table. All fields comply to
476 * the OpenType specification.
477 */
478 typedef struct TT_PCLT_
479 {
495
497
498
499 /**************************************************************************
500 *
501 * @struct:
502 * TT_MaxProfile
503 *
504 * @description:
505 * The maximum profile ('maxp') table contains many max values, which can
506 * be used to pre-allocate arrays for speeding up glyph loading and
507 * hinting.
508 *
509 * @fields:
510 * version ::
511 * The version number.
512 *
513 * numGlyphs ::
514 * The number of glyphs in this TrueType font.
515 *
516 * maxPoints ::
517 * The maximum number of points in a non-composite TrueType glyph. See
518 * also `maxCompositePoints`.
519 *
520 * maxContours ::
521 * The maximum number of contours in a non-composite TrueType glyph.
522 * See also `maxCompositeContours`.
523 *
524 * maxCompositePoints ::
525 * The maximum number of points in a composite TrueType glyph. See
526 * also `maxPoints`.
527 *
528 * maxCompositeContours ::
529 * The maximum number of contours in a composite TrueType glyph. See
530 * also `maxContours`.
531 *
532 * maxZones ::
533 * The maximum number of zones used for glyph hinting.
534 *
535 * maxTwilightPoints ::
536 * The maximum number of points in the twilight zone used for glyph
537 * hinting.
538 *
539 * maxStorage ::
540 * The maximum number of elements in the storage area used for glyph
541 * hinting.
542 *
543 * maxFunctionDefs ::
544 * The maximum number of function definitions in the TrueType bytecode
545 * for this font.
546 *
547 * maxInstructionDefs ::
548 * The maximum number of instruction definitions in the TrueType
549 * bytecode for this font.
550 *
551 * maxStackElements ::
552 * The maximum number of stack elements used during bytecode
553 * interpretation.
554 *
555 * maxSizeOfInstructions ::
556 * The maximum number of TrueType opcodes used for glyph hinting.
557 *
558 * maxComponentElements ::
559 * The maximum number of simple (i.e., non-composite) glyphs in a
560 * composite glyph.
561 *
562 * maxComponentDepth ::
563 * The maximum nesting depth of composite glyphs.
564 *
565 * @note:
566 * This structure is only used during font loading.
567 */
568 typedef struct TT_MaxProfile_
569 {
585
587
588
589 /**************************************************************************
590 *
591 * @enum:
592 * FT_Sfnt_Tag
593 *
594 * @description:
595 * An enumeration to specify indices of SFNT tables loaded and parsed by
596 * FreeType during initialization of an SFNT font. Used in the
597 * @FT_Get_Sfnt_Table API function.
598 *
599 * @values:
600 * FT_SFNT_HEAD ::
601 * To access the font's @TT_Header structure.
602 *
603 * FT_SFNT_MAXP ::
604 * To access the font's @TT_MaxProfile structure.
605 *
606 * FT_SFNT_OS2 ::
607 * To access the font's @TT_OS2 structure.
608 *
609 * FT_SFNT_HHEA ::
610 * To access the font's @TT_HoriHeader structure.
611 *
612 * FT_SFNT_VHEA ::
613 * To access the font's @TT_VertHeader structure.
614 *
615 * FT_SFNT_POST ::
616 * To access the font's @TT_Postscript structure.
617 *
618 * FT_SFNT_PCLT ::
619 * To access the font's @TT_PCLT structure.
620 */
621 typedef enum FT_Sfnt_Tag_
622 {
630
632
634
635 /* these constants are deprecated; use the corresponding `FT_Sfnt_Tag` */
636 /* values instead */
637#define ft_sfnt_head FT_SFNT_HEAD
638#define ft_sfnt_maxp FT_SFNT_MAXP
639#define ft_sfnt_os2 FT_SFNT_OS2
640#define ft_sfnt_hhea FT_SFNT_HHEA
641#define ft_sfnt_vhea FT_SFNT_VHEA
642#define ft_sfnt_post FT_SFNT_POST
643#define ft_sfnt_pclt FT_SFNT_PCLT
644
645
646 /**************************************************************************
647 *
648 * @function:
649 * FT_Get_Sfnt_Table
650 *
651 * @description:
652 * Return a pointer to a given SFNT table stored within a face.
653 *
654 * @input:
655 * face ::
656 * A handle to the source.
657 *
658 * tag ::
659 * The index of the SFNT table.
660 *
661 * @return:
662 * A type-less pointer to the table. This will be `NULL` in case of
663 * error, or if the corresponding table was not found **OR** loaded from
664 * the file.
665 *
666 * Use a typecast according to `tag` to access the structure elements.
667 *
668 * @note:
669 * The table is owned by the face object and disappears with it.
670 *
671 * This function is only useful to access SFNT tables that are loaded by
672 * the sfnt, truetype, and opentype drivers. See @FT_Sfnt_Tag for a
673 * list.
674 *
675 * @example:
676 * Here is an example demonstrating access to the 'vhea' table.
677 *
678 * ```
679 * TT_VertHeader* vert_header;
680 *
681 *
682 * vert_header =
683 * (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA );
684 * ```
685 */
686 FT_EXPORT( void* )
689
690
691 /**************************************************************************
692 *
693 * @function:
694 * FT_Load_Sfnt_Table
695 *
696 * @description:
697 * Load any SFNT font table into client memory.
698 *
699 * @input:
700 * face ::
701 * A handle to the source face.
702 *
703 * tag ::
704 * The four-byte tag of the table to load. Use value~0 if you want to
705 * access the whole font file. Otherwise, you can use one of the
706 * definitions found in the @FT_TRUETYPE_TAGS_H file, or forge a new
707 * one with @FT_MAKE_TAG.
708 *
709 * offset ::
710 * The starting offset in the table (or file if tag~==~0).
711 *
712 * @output:
713 * buffer ::
714 * The target buffer address. The client must ensure that the memory
715 * array is big enough to hold the data.
716 *
717 * @inout:
718 * length ::
719 * If the `length` parameter is `NULL`, try to load the whole table.
720 * Return an error code if it fails.
721 *
722 * Else, if `*length` is~0, exit immediately while returning the
723 * table's (or file) full size in it.
724 *
725 * Else the number of bytes to read from the table or file, from the
726 * starting offset.
727 *
728 * @return:
729 * FreeType error code. 0~means success.
730 *
731 * @note:
732 * If you need to determine the table's length you should first call this
733 * function with `*length` set to~0, as in the following example:
734 *
735 * ```
736 * FT_ULong length = 0;
737 *
738 *
739 * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
740 * if ( error ) { ... table does not exist ... }
741 *
742 * buffer = malloc( length );
743 * if ( buffer == NULL ) { ... not enough memory ... }
744 *
745 * error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length );
746 * if ( error ) { ... could not load table ... }
747 * ```
748 *
749 * Note that structures like @TT_Header or @TT_OS2 can't be used with
750 * this function; they are limited to @FT_Get_Sfnt_Table. Reason is that
751 * those structures depend on the processor architecture, with varying
752 * size (e.g. 32bit vs. 64bit) or order (big endian vs. little endian).
753 *
754 */
760 FT_ULong* length );
761
762
763 /**************************************************************************
764 *
765 * @function:
766 * FT_Sfnt_Table_Info
767 *
768 * @description:
769 * Return information on an SFNT table.
770 *
771 * @input:
772 * face ::
773 * A handle to the source face.
774 *
775 * table_index ::
776 * The index of an SFNT table. The function returns
777 * FT_Err_Table_Missing for an invalid value.
778 *
779 * @inout:
780 * tag ::
781 * The name tag of the SFNT table. If the value is `NULL`,
782 * `table_index` is ignored, and `length` returns the number of SFNT
783 * tables in the font.
784 *
785 * @output:
786 * length ::
787 * The length of the SFNT table (or the number of SFNT tables,
788 * depending on `tag`).
789 *
790 * @return:
791 * FreeType error code. 0~means success.
792 *
793 * @note:
794 * While parsing fonts, FreeType handles SFNT tables with length zero as
795 * missing.
796 *
797 */
800 FT_UInt table_index,
801 FT_ULong *tag,
802 FT_ULong *length );
803
804
805 /**************************************************************************
806 *
807 * @function:
808 * FT_Get_CMap_Language_ID
809 *
810 * @description:
811 * Return cmap language ID as specified in the OpenType standard.
812 * Definitions of language ID values are in file @FT_TRUETYPE_IDS_H.
813 *
814 * @input:
815 * charmap ::
816 * The target charmap.
817 *
818 * @return:
819 * The language ID of `charmap`. If `charmap` doesn't belong to an SFNT
820 * face, just return~0 as the default value.
821 *
822 * For a format~14 cmap (to access Unicode IVS), the return value is
823 * 0xFFFFFFFF.
824 */
827
828
829 /**************************************************************************
830 *
831 * @function:
832 * FT_Get_CMap_Format
833 *
834 * @description:
835 * Return the format of an SFNT 'cmap' table.
836 *
837 * @input:
838 * charmap ::
839 * The target charmap.
840 *
841 * @return:
842 * The format of `charmap`. If `charmap` doesn't belong to an SFNT face,
843 * return -1.
844 */
847
848 /* */
849
850
852
853#endif /* TTTABLES_H_ */
854
855
856/* END */
#define FT_EXPORT(x)
Definition: ftconfig.h:481
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
signed char FT_Char
Definition: fttypes.h:143
unsigned long FT_ULong
Definition: fttypes.h:253
unsigned char FT_Byte
Definition: fttypes.h:154
signed long FT_Fixed
Definition: fttypes.h:287
int FT_Error
Definition: fttypes.h:299
signed long FT_Long
Definition: fttypes.h:242
unsigned short FT_UShort
Definition: fttypes.h:209
signed short FT_Short
Definition: fttypes.h:198
unsigned int FT_UInt
Definition: fttypes.h:231
GLuint buffer
Definition: glext.h:5915
GLintptr offset
Definition: glext.h:5920
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
FT_Short yMax
Definition: tttables.h:102
FT_Short Index_To_Loc_Format
Definition: tttables.h:108
FT_Short Font_Direction
Definition: tttables.h:107
FT_UShort Lowest_Rec_PPEM
Definition: tttables.h:105
FT_ULong Created[2]
Definition: tttables.h:96
FT_Long Magic_Number
Definition: tttables.h:91
FT_ULong Modified[2]
Definition: tttables.h:97
FT_Short xMax
Definition: tttables.h:101
FT_UShort Units_Per_EM
Definition: tttables.h:94
FT_Long CheckSum_Adjust
Definition: tttables.h:90
FT_UShort Mac_Style
Definition: tttables.h:104
FT_UShort Flags
Definition: tttables.h:93
FT_Fixed Font_Revision
Definition: tttables.h:88
FT_Fixed Table_Version
Definition: tttables.h:87
FT_Short yMin
Definition: tttables.h:100
FT_Short Glyph_Data_Format
Definition: tttables.h:109
FT_Short xMin
Definition: tttables.h:99
FT_Short min_Left_Side_Bearing
Definition: tttables.h:210
FT_Short metric_Data_Format
Definition: tttables.h:219
FT_UShort advance_Width_Max
Definition: tttables.h:208
FT_Fixed Version
Definition: tttables.h:203
void * long_metrics
Definition: tttables.h:226
FT_Short Line_Gap
Definition: tttables.h:206
FT_Short min_Right_Side_Bearing
Definition: tttables.h:211
FT_Short Ascender
Definition: tttables.h:204
FT_Short caret_Offset
Definition: tttables.h:215
FT_UShort number_Of_HMetrics
Definition: tttables.h:220
FT_Short xMax_Extent
Definition: tttables.h:212
FT_Short caret_Slope_Run
Definition: tttables.h:214
FT_Short Descender
Definition: tttables.h:205
void * short_metrics
Definition: tttables.h:227
FT_Short caret_Slope_Rise
Definition: tttables.h:213
FT_UShort maxZones
Definition: tttables.h:576
FT_UShort maxComponentElements
Definition: tttables.h:583
FT_UShort maxPoints
Definition: tttables.h:572
FT_UShort maxStackElements
Definition: tttables.h:581
FT_UShort maxInstructionDefs
Definition: tttables.h:580
FT_UShort maxStorage
Definition: tttables.h:578
FT_Fixed version
Definition: tttables.h:570
FT_UShort maxContours
Definition: tttables.h:573
FT_UShort numGlyphs
Definition: tttables.h:571
FT_UShort maxTwilightPoints
Definition: tttables.h:577
FT_UShort maxCompositeContours
Definition: tttables.h:575
FT_UShort maxComponentDepth
Definition: tttables.h:584
FT_UShort maxCompositePoints
Definition: tttables.h:574
FT_UShort maxSizeOfInstructions
Definition: tttables.h:582
FT_UShort maxFunctionDefs
Definition: tttables.h:579
FT_Short sTypoDescender
Definition: tttables.h:408
FT_UShort version
Definition: tttables.h:378
FT_Char achVendID[4]
Definition: tttables.h:402
FT_ULong ulUnicodeRange1
Definition: tttables.h:397
FT_ULong ulCodePageRange1
Definition: tttables.h:415
FT_UShort fsSelection
Definition: tttables.h:404
FT_UShort usMaxContext
Definition: tttables.h:424
FT_UShort usBreakChar
Definition: tttables.h:423
FT_UShort usLastCharIndex
Definition: tttables.h:406
FT_Short ySuperscriptYSize
Definition: tttables.h:388
FT_Short sxHeight
Definition: tttables.h:420
FT_Short yStrikeoutSize
Definition: tttables.h:391
FT_Byte panose[10]
Definition: tttables.h:395
FT_Short ySubscriptXSize
Definition: tttables.h:383
FT_ULong ulUnicodeRange3
Definition: tttables.h:399
FT_Short sTypoLineGap
Definition: tttables.h:409
FT_UShort usWinDescent
Definition: tttables.h:411
FT_UShort usLowerOpticalPointSize
Definition: tttables.h:428
FT_Short sTypoAscender
Definition: tttables.h:407
FT_Short ySuperscriptXSize
Definition: tttables.h:387
FT_UShort usUpperOpticalPointSize
Definition: tttables.h:429
FT_UShort usWidthClass
Definition: tttables.h:381
FT_Short ySubscriptYOffset
Definition: tttables.h:386
FT_Short sFamilyClass
Definition: tttables.h:393
FT_ULong ulUnicodeRange2
Definition: tttables.h:398
FT_Short ySuperscriptYOffset
Definition: tttables.h:390
FT_Short ySubscriptXOffset
Definition: tttables.h:385
FT_Short yStrikeoutPosition
Definition: tttables.h:392
FT_Short sCapHeight
Definition: tttables.h:421
FT_ULong ulCodePageRange2
Definition: tttables.h:416
FT_UShort fsType
Definition: tttables.h:382
FT_UShort usWinAscent
Definition: tttables.h:410
FT_ULong ulUnicodeRange4
Definition: tttables.h:400
FT_Short ySuperscriptXOffset
Definition: tttables.h:389
FT_UShort usWeightClass
Definition: tttables.h:380
FT_UShort usDefaultChar
Definition: tttables.h:422
FT_Short xAvgCharWidth
Definition: tttables.h:379
FT_Short ySubscriptYSize
Definition: tttables.h:384
FT_UShort usFirstCharIndex
Definition: tttables.h:405
FT_ULong FontNumber
Definition: tttables.h:481
FT_Char CharacterComplement[8]
Definition: tttables.h:489
FT_Byte Reserved
Definition: tttables.h:494
FT_Char TypeFace[16]
Definition: tttables.h:488
FT_UShort xHeight
Definition: tttables.h:483
FT_UShort CapHeight
Definition: tttables.h:486
FT_Fixed Version
Definition: tttables.h:480
FT_UShort Style
Definition: tttables.h:484
FT_UShort TypeFamily
Definition: tttables.h:485
FT_Byte SerifStyle
Definition: tttables.h:493
FT_Char StrokeWeight
Definition: tttables.h:491
FT_UShort SymbolSet
Definition: tttables.h:487
FT_Char WidthType
Definition: tttables.h:492
FT_UShort Pitch
Definition: tttables.h:482
FT_Short underlineThickness
Definition: tttables.h:456
FT_Fixed FormatType
Definition: tttables.h:453
FT_ULong maxMemType42
Definition: tttables.h:459
FT_Short underlinePosition
Definition: tttables.h:455
FT_ULong minMemType1
Definition: tttables.h:460
FT_ULong maxMemType1
Definition: tttables.h:461
FT_ULong isFixedPitch
Definition: tttables.h:457
FT_ULong minMemType42
Definition: tttables.h:458
FT_Fixed italicAngle
Definition: tttables.h:454
FT_Short min_Top_Side_Bearing
Definition: tttables.h:328
FT_Short min_Bottom_Side_Bearing
Definition: tttables.h:329
FT_Short caret_Slope_Rise
Definition: tttables.h:331
FT_Fixed Version
Definition: tttables.h:321
FT_UShort number_Of_VMetrics
Definition: tttables.h:338
FT_UShort advance_Height_Max
Definition: tttables.h:326
FT_Short caret_Offset
Definition: tttables.h:333
FT_Short Line_Gap
Definition: tttables.h:324
FT_Short caret_Slope_Run
Definition: tttables.h:332
FT_Short metric_Data_Format
Definition: tttables.h:337
void * long_metrics
Definition: tttables.h:344
void * short_metrics
Definition: tttables.h:345
FT_Short yMax_Extent
Definition: tttables.h:330
FT_Short Ascender
Definition: tttables.h:322
FT_Short Descender
Definition: tttables.h:323
Definition: ecma_167.h:138
FT_Get_Sfnt_Table(FT_Face face, FT_Sfnt_Tag tag)
Definition: ftobjs.c:4156
struct TT_OS2_ TT_OS2
struct TT_HoriHeader_ TT_HoriHeader
FT_Get_CMap_Language_ID(FT_CharMap charmap)
Definition: ftobjs.c:4225
struct TT_PCLT_ TT_PCLT
struct TT_Postscript_ TT_Postscript
FT_Load_Sfnt_Table(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
Definition: ftobjs.c:4177
FT_BEGIN_HEADER struct TT_Header_ TT_Header
FT_Get_CMap_Format(FT_CharMap charmap)
Definition: ftobjs.c:4249
enum FT_Sfnt_Tag_ FT_Sfnt_Tag
FT_Sfnt_Tag_
Definition: tttables.h:622
@ FT_SFNT_HHEA
Definition: tttables.h:626
@ FT_SFNT_MAXP
Definition: tttables.h:624
@ FT_SFNT_HEAD
Definition: tttables.h:623
@ FT_SFNT_PCLT
Definition: tttables.h:629
@ FT_SFNT_POST
Definition: tttables.h:628
@ FT_SFNT_MAX
Definition: tttables.h:631
@ FT_SFNT_VHEA
Definition: tttables.h:627
@ FT_SFNT_OS2
Definition: tttables.h:625
struct TT_MaxProfile_ TT_MaxProfile
FT_Sfnt_Table_Info(FT_Face face, FT_UInt table_index, FT_ULong *tag, FT_ULong *length)
Definition: ftobjs.c:4200
struct TT_VertHeader_ TT_VertHeader
_Reserved_ PVOID Reserved
Definition: winddi.h:3974