ReactOS  0.4.13-dev-1174-gdff75d7
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 
109  } TT_Header;
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 
227  } TT_HoriHeader;
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 
349  } TT_VertHeader;
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 
435  } TT_OS2;
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 
470  } TT_Postscript;
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 
500  } TT_PCLT;
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 
585  } TT_MaxProfile;
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 
625  } FT_Sfnt_Tag;
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* )
678  FT_Sfnt_Tag tag );
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  */
747  FT_ULong tag,
748  FT_Long offset,
749  FT_Byte* buffer,
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  /* */
835  FT_EXPORT( FT_Long )
836  FT_Get_CMap_Format( FT_CharMap charmap );
837 
838  /* */
839 
840 
842 
843 #endif /* TTTABLES_H_ */
844 
845 
846 /* END */
FT_Short sxHeight
Definition: tttables.h:424
int FT_Error
Definition: fttypes.h:300
FT_Get_CMap_Format(FT_CharMap charmap)
Definition: ftobjs.c:4206
FT_BEGIN_HEADER struct TT_Header_ TT_Header
signed long FT_Long
Definition: fttypes.h:242
FT_Short yMax_Extent
Definition: tttables.h:332
unsigned long FT_ULong
Definition: fttypes.h:253
FT_Fixed italicAngle
Definition: tttables.h:458
FT_Long Modified[2]
Definition: tttables.h:95
FT_Short xMax_Extent
Definition: tttables.h:210
FT_UShort maxFunctionDefs
Definition: tttables.h:578
#define FT_END_HEADER
Definition: ftheader.h:54
FT_ULong minMemType1
Definition: tttables.h:464
FT_Short metric_Data_Format
Definition: tttables.h:339
FT_Fixed Version
Definition: tttables.h:201
FT_Fixed Table_Version
Definition: tttables.h:85
FT_Short sTypoDescender
Definition: tttables.h:412
FT_UShort CapHeight
Definition: tttables.h:490
FT_UShort maxComponentElements
Definition: tttables.h:582
FT_UShort usDefaultChar
Definition: tttables.h:426
FT_Short caret_Slope_Rise
Definition: tttables.h:333
FT_UShort usFirstCharIndex
Definition: tttables.h:409
GLintptr offset
Definition: glext.h:5920
FT_Short caret_Offset
Definition: tttables.h:213
FT_ULong FontNumber
Definition: tttables.h:485
FT_Short ySuperscriptXOffset
Definition: tttables.h:393
FT_UShort usWidthClass
Definition: tttables.h:385
Definition: ecma_167.h:138
FT_Short yStrikeoutPosition
Definition: tttables.h:396
GLuint buffer
Definition: glext.h:5915
FT_UShort maxComponentDepth
Definition: tttables.h:583
signed char FT_Char
Definition: fttypes.h:143
FT_Short Glyph_Data_Format
Definition: tttables.h:107
FT_Short sFamilyClass
Definition: tttables.h:397
FT_Short yMax
Definition: tttables.h:100
FT_Short sCapHeight
Definition: tttables.h:425
FT_Short caret_Slope_Run
Definition: tttables.h:212
FT_Fixed Font_Revision
Definition: tttables.h:86
FT_Short min_Left_Side_Bearing
Definition: tttables.h:208
FT_Char achVendID[4]
Definition: tttables.h:406
FT_Short caret_Offset
Definition: tttables.h:335
FT_Short Ascender
Definition: tttables.h:202
FT_ULong minMemType42
Definition: tttables.h:462
FT_Get_CMap_Language_ID(FT_CharMap charmap)
Definition: ftobjs.c:4182
FT_UShort fsSelection
Definition: tttables.h:408
FT_Short yMin
Definition: tttables.h:98
FT_ULong ulUnicodeRange1
Definition: tttables.h:401
FT_UShort maxZones
Definition: tttables.h:575
unsigned char FT_Byte
Definition: fttypes.h:154
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
enum FT_Sfnt_Tag_ FT_Sfnt_Tag
FT_Short xAvgCharWidth
Definition: tttables.h:383
struct TT_OS2_ TT_OS2
FT_UShort fsType
Definition: tttables.h:386
FT_UShort maxPoints
Definition: tttables.h:571
FT_Get_Sfnt_Table(FT_Face face, FT_Sfnt_Tag tag)
Definition: ftobjs.c:4113
FT_UShort usWinDescent
Definition: tttables.h:415
FT_UShort maxCompositeContours
Definition: tttables.h:574
struct TT_Postscript_ TT_Postscript
FT_UShort numGlyphs
Definition: tttables.h:570
FT_UShort usWeightClass
Definition: tttables.h:384
FT_UShort maxContours
Definition: tttables.h:572
FT_UShort version
Definition: tttables.h:382
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
FT_Short Descender
Definition: tttables.h:325
FT_Short ySuperscriptYSize
Definition: tttables.h:392
FT_Short xMax
Definition: tttables.h:99
FT_UShort usLastCharIndex
Definition: tttables.h:410
FT_Short min_Top_Side_Bearing
Definition: tttables.h:330
FT_Load_Sfnt_Table(FT_Face face, FT_ULong tag, FT_Long offset, FT_Byte *buffer, FT_ULong *length)
Definition: ftobjs.c:4134
FT_UShort TypeFamily
Definition: tttables.h:489
FT_Short caret_Slope_Rise
Definition: tttables.h:211
FT_UShort Units_Per_EM
Definition: tttables.h:92
FT_Short yStrikeoutSize
Definition: tttables.h:395
FT_UShort maxStorage
Definition: tttables.h:577
FT_Short ySubscriptXOffset
Definition: tttables.h:389
FT_ULong isFixedPitch
Definition: tttables.h:461
FT_UShort usBreakChar
Definition: tttables.h:427
FT_Short Index_To_Loc_Format
Definition: tttables.h:106
void * short_metrics
Definition: tttables.h:347
FT_Char CharacterComplement[8]
Definition: tttables.h:493
GLenum GLuint GLenum GLsizei length
Definition: glext.h:5579
FT_Fixed FormatType
Definition: tttables.h:457
FT_UShort Style
Definition: tttables.h:488
FT_Short ySubscriptXSize
Definition: tttables.h:387
FT_UShort number_Of_HMetrics
Definition: tttables.h:218
FT_Short Line_Gap
Definition: tttables.h:204
FT_Char TypeFace[16]
Definition: tttables.h:492
FT_ULong maxMemType42
Definition: tttables.h:463
struct TT_HoriHeader_ TT_HoriHeader
FT_Short Descender
Definition: tttables.h:203
FT_UShort Mac_Style
Definition: tttables.h:102
FT_UShort usLowerOpticalPointSize
Definition: tttables.h:432
FT_Sfnt_Table_Info(FT_Face face, FT_UInt table_index, FT_ULong *tag, FT_ULong *length)
Definition: ftobjs.c:4157
FT_UShort maxCompositePoints
Definition: tttables.h:573
FT_Short ySuperscriptXSize
Definition: tttables.h:391
FT_UShort Pitch
Definition: tttables.h:486
FT_Fixed Version
Definition: tttables.h:323
FT_Long CheckSum_Adjust
Definition: tttables.h:88
FT_UShort number_Of_VMetrics
Definition: tttables.h:340
signed short FT_Short
Definition: fttypes.h:198
FT_UShort maxStackElements
Definition: tttables.h:580
FT_UShort usMaxContext
Definition: tttables.h:428
struct TT_MaxProfile_ TT_MaxProfile
FT_UShort advance_Height_Max
Definition: tttables.h:328
FT_UShort advance_Width_Max
Definition: tttables.h:206
void * long_metrics
Definition: tttables.h:224
FT_UShort SymbolSet
Definition: tttables.h:491
FT_UShort maxSizeOfInstructions
Definition: tttables.h:581
FT_Short Line_Gap
Definition: tttables.h:326
signed long FT_Fixed
Definition: fttypes.h:288
FT_Char StrokeWeight
Definition: tttables.h:495
FT_Short metric_Data_Format
Definition: tttables.h:217
FT_ULong ulCodePageRange1
Definition: tttables.h:419
FT_Byte SerifStyle
Definition: tttables.h:497
FT_Short Ascender
Definition: tttables.h:324
FT_Short min_Bottom_Side_Bearing
Definition: tttables.h:331
FT_Short underlinePosition
Definition: tttables.h:459
FT_Char WidthType
Definition: tttables.h:496
unsigned int FT_UInt
Definition: fttypes.h:231
void * short_metrics
Definition: tttables.h:225
#define FT_EXPORT(x)
Definition: ftconfig.h:461
FT_ULong ulUnicodeRange4
Definition: tttables.h:404
FT_Short sTypoAscender
Definition: tttables.h:411
struct TT_VertHeader_ TT_VertHeader
struct TT_PCLT_ TT_PCLT
FT_ULong maxMemType1
Definition: tttables.h:465
FT_UShort usWinAscent
Definition: tttables.h:414
FT_Sfnt_Tag_
Definition: tttables.h:613
FT_Short caret_Slope_Run
Definition: tttables.h:334
FT_ULong ulCodePageRange2
Definition: tttables.h:420
FT_ULong ulUnicodeRange3
Definition: tttables.h:403
FT_Short ySubscriptYOffset
Definition: tttables.h:390
FT_Short xMin
Definition: tttables.h:97
FT_UShort Flags
Definition: tttables.h:91
FT_UShort maxTwilightPoints
Definition: tttables.h:576
FT_UShort maxInstructionDefs
Definition: tttables.h:579
FT_Fixed Version
Definition: tttables.h:484
FT_Long Created[2]
Definition: tttables.h:94
FT_Short sTypoLineGap
Definition: tttables.h:413
FT_Long Magic_Number
Definition: tttables.h:89
FT_Fixed version
Definition: tttables.h:569
void * long_metrics
Definition: tttables.h:346
unsigned short FT_UShort
Definition: fttypes.h:209
FT_Short ySubscriptYSize
Definition: tttables.h:388
FT_Byte Reserved
Definition: tttables.h:498
FT_UShort xHeight
Definition: tttables.h:487
GLenum GLuint GLint GLenum face
Definition: glext.h:7025
FT_Short underlineThickness
Definition: tttables.h:460
FT_Short Font_Direction
Definition: tttables.h:105
FT_Short min_Right_Side_Bearing
Definition: tttables.h:209
FT_UShort usUpperOpticalPointSize
Definition: tttables.h:433
FT_Byte panose[10]
Definition: tttables.h:399
FT_ULong ulUnicodeRange2
Definition: tttables.h:402
FT_UShort Lowest_Rec_PPEM
Definition: tttables.h:103
FT_Short ySuperscriptYOffset
Definition: tttables.h:394