Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

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