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