From 3562e78743202e43aec8727005182a2558117eca Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 28 Jun 2009 22:07:26 +0000 Subject: Checked in the following released items: xkeyboard-config-1.4.tar.gz ttf-bitstream-vera-1.10.tar.gz font-alias-1.0.1.tar.gz font-sun-misc-1.0.0.tar.gz font-sun-misc-1.0.0.tar.gz font-sony-misc-1.0.0.tar.gz font-schumacher-misc-1.0.0.tar.gz font-mutt-misc-1.0.0.tar.gz font-misc-misc-1.0.0.tar.gz font-misc-meltho-1.0.0.tar.gz font-micro-misc-1.0.0.tar.gz font-jis-misc-1.0.0.tar.gz font-isas-misc-1.0.0.tar.gz font-dec-misc-1.0.0.tar.gz font-daewoo-misc-1.0.0.tar.gz font-cursor-misc-1.0.0.tar.gz font-arabic-misc-1.0.0.tar.gz font-winitzki-cyrillic-1.0.0.tar.gz font-misc-cyrillic-1.0.0.tar.gz font-cronyx-cyrillic-1.0.0.tar.gz font-screen-cyrillic-1.0.1.tar.gz font-xfree86-type1-1.0.1.tar.gz font-adobe-utopia-type1-1.0.1.tar.gz font-ibm-type1-1.0.0.tar.gz font-bitstream-type1-1.0.0.tar.gz font-bitstream-speedo-1.0.0.tar.gz font-bh-ttf-1.0.0.tar.gz font-bh-type1-1.0.0.tar.gz font-bitstream-100dpi-1.0.0.tar.gz font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz font-bh-100dpi-1.0.0.tar.gz font-adobe-utopia-100dpi-1.0.1.tar.gz font-adobe-100dpi-1.0.0.tar.gz font-util-1.0.1.tar.gz font-bitstream-75dpi-1.0.0.tar.gz font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz font-adobe-utopia-75dpi-1.0.1.tar.gz font-bh-75dpi-1.0.0.tar.gz bdftopcf-1.0.1.tar.gz font-adobe-75dpi-1.0.0.tar.gz mkfontscale-1.0.6.tar.gz openssl-0.9.8k.tar.gz bigreqsproto-1.0.2.tar.gz xtrans-1.2.2.tar.gz resourceproto-1.0.2.tar.gz inputproto-1.4.4.tar.gz compositeproto-0.4.tar.gz damageproto-1.1.0.tar.gz zlib-1.2.3.tar.gz xkbcomp-1.0.5.tar.gz freetype-2.3.9.tar.gz pthreads-w32-2-8-0-release.tar.gz pixman-0.12.0.tar.gz kbproto-1.0.3.tar.gz evieext-1.0.2.tar.gz fixesproto-4.0.tar.gz recordproto-1.13.2.tar.gz randrproto-1.2.2.tar.gz scrnsaverproto-1.1.0.tar.gz renderproto-0.9.3.tar.gz xcmiscproto-1.1.2.tar.gz fontsproto-2.0.2.tar.gz xextproto-7.0.3.tar.gz xproto-7.0.14.tar.gz libXdmcp-1.0.2.tar.gz libxkbfile-1.0.5.tar.gz libfontenc-1.0.4.tar.gz libXfont-1.3.4.tar.gz libX11-1.1.5.tar.gz libXau-1.0.4.tar.gz libxcb-1.1.tar.gz xorg-server-1.5.3.tar.gz --- freetype/docs/reference/ft2-truetype_tables.html | 1209 ++++++++++++++++++++++ 1 file changed, 1209 insertions(+) create mode 100644 freetype/docs/reference/ft2-truetype_tables.html (limited to 'freetype/docs/reference/ft2-truetype_tables.html') diff --git a/freetype/docs/reference/ft2-truetype_tables.html b/freetype/docs/reference/ft2-truetype_tables.html new file mode 100644 index 000000000..6d83a1a50 --- /dev/null +++ b/freetype/docs/reference/ft2-truetype_tables.html @@ -0,0 +1,1209 @@ + + + + +FreeType-2.3.9 API Reference + + + + + + +
[Index][TOC]
+

FreeType-2.3.9 API Reference

+ +

+TrueType Tables +

+

Synopsis

+ + + + + + + + + + + +
TT_PLATFORM_XXXTT_Postscript
TT_APPLE_ID_XXXTT_PCLT
TT_MAC_ID_XXXTT_MaxProfile
TT_ISO_ID_XXXFT_Sfnt_Tag
TT_MS_ID_XXXFT_Get_Sfnt_Table
TT_ADOBE_ID_XXXFT_Load_Sfnt_Table
TT_HeaderFT_Sfnt_Table_Info
TT_HoriHeaderFT_Get_CMap_Language_ID
TT_VertHeaderFT_Get_CMap_Format
TT_OS2FT_PARAM_TAG_UNPATENTED_HINTING


+ +
+

This section contains the definition of TrueType-specific tables as well as some routines used to access and process them.

+

+
+

TT_PLATFORM_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_PLATFORM_APPLE_UNICODE  0
+#define TT_PLATFORM_MACINTOSH      1
+#define TT_PLATFORM_ISO            2 /* deprecated */
+#define TT_PLATFORM_MICROSOFT      3
+#define TT_PLATFORM_CUSTOM         4
+#define TT_PLATFORM_ADOBE          7 /* artificial */
+
+

+
+

A list of valid values for the ‘platform_id’ identifier code in FT_CharMapRec and FT_SfntName structures.

+

+
values
+

+ + + + + + + + +
TT_PLATFORM_APPLE_UNICODE
+

Used by Apple to indicate a Unicode character map and/or name entry. See TT_APPLE_ID_XXX for corresponding ‘encoding_id’ values. Note that name entries in this format are coded as big-endian UCS-2 character codes only.

+
TT_PLATFORM_MACINTOSH +

Used by Apple to indicate a MacOS-specific charmap and/or name entry. See TT_MAC_ID_XXX for corresponding ‘encoding_id’ values. Note that most TrueType fonts contain an Apple roman charmap to be usable on MacOS systems (even if they contain a Microsoft charmap as well).

+
TT_PLATFORM_ISO +

This value was used to specify Unicode charmaps. It is however now deprecated. See TT_ISO_ID_XXX for a list of corresponding ‘encoding_id’ values.

+
TT_PLATFORM_MICROSOFT +

Used by Microsoft to indicate Windows-specific charmaps. See TT_MS_ID_XXX for a list of corresponding ‘encoding_id’ values. Note that most fonts contain a Unicode charmap using (TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS).

+
TT_PLATFORM_CUSTOM +

Used to indicate application-specific charmaps.

+
TT_PLATFORM_ADOBE +

This value isn't part of any font format specification, but is used by FreeType to report Adobe-specific charmaps in an FT_CharMapRec structure. See TT_ADOBE_ID_XXX.

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_APPLE_ID_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_APPLE_ID_DEFAULT           0 /* Unicode 1.0 */
+#define TT_APPLE_ID_UNICODE_1_1       1 /* specify Hangul at U+34xx */
+#define TT_APPLE_ID_ISO_10646         2 /* deprecated */
+#define TT_APPLE_ID_UNICODE_2_0       3 /* or later */
+#define TT_APPLE_ID_UNICODE_32        4 /* 2.0 or later, full repertoire */
+#define TT_APPLE_ID_VARIANT_SELECTOR  5 /* variation selector data */
+
+

+
+

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_APPLE_UNICODE charmaps and name entries.

+

+
values
+

+ + + + + + + + + + +
TT_APPLE_ID_DEFAULT +

Unicode version 1.0.

+
TT_APPLE_ID_UNICODE_1_1
+

Unicode 1.1; specifies Hangul characters starting at U+34xx.

+
TT_APPLE_ID_ISO_10646 +

Deprecated (identical to preceding).

+
TT_APPLE_ID_UNICODE_2_0
+

Unicode 2.0 and beyond (UTF-16 BMP only).

+
TT_APPLE_ID_UNICODE_32 +

Unicode 3.1 and beyond, using UTF-32.

+
TT_APPLE_ID_VARIANT_SELECTOR
+

From Adobe, not Apple. Not a normal cmap. Specifies variations on a real cmap.

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_MAC_ID_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_MAC_ID_ROMAN                 0
+#define TT_MAC_ID_JAPANESE              1
+#define TT_MAC_ID_TRADITIONAL_CHINESE   2
+#define TT_MAC_ID_KOREAN                3
+#define TT_MAC_ID_ARABIC                4
+#define TT_MAC_ID_HEBREW                5
+#define TT_MAC_ID_GREEK                 6
+#define TT_MAC_ID_RUSSIAN               7
+#define TT_MAC_ID_RSYMBOL               8
+#define TT_MAC_ID_DEVANAGARI            9
+#define TT_MAC_ID_GURMUKHI             10
+#define TT_MAC_ID_GUJARATI             11
+#define TT_MAC_ID_ORIYA                12
+#define TT_MAC_ID_BENGALI              13
+#define TT_MAC_ID_TAMIL                14
+#define TT_MAC_ID_TELUGU               15
+#define TT_MAC_ID_KANNADA              16
+#define TT_MAC_ID_MALAYALAM            17
+#define TT_MAC_ID_SINHALESE            18
+#define TT_MAC_ID_BURMESE              19
+#define TT_MAC_ID_KHMER                20
+#define TT_MAC_ID_THAI                 21
+#define TT_MAC_ID_LAOTIAN              22
+#define TT_MAC_ID_GEORGIAN             23
+#define TT_MAC_ID_ARMENIAN             24
+#define TT_MAC_ID_MALDIVIAN            25
+#define TT_MAC_ID_SIMPLIFIED_CHINESE   25
+#define TT_MAC_ID_TIBETAN              26
+#define TT_MAC_ID_MONGOLIAN            27
+#define TT_MAC_ID_GEEZ                 28
+#define TT_MAC_ID_SLAVIC               29
+#define TT_MAC_ID_VIETNAMESE           30
+#define TT_MAC_ID_SINDHI               31
+#define TT_MAC_ID_UNINTERP             32
+
+

+
+

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_MACINTOSH charmaps and name entries.

+

+
values
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TT_MAC_ID_ROMAN +

+
TT_MAC_ID_JAPANESE +

+
TT_MAC_ID_TRADITIONAL_CHINESE
+

+
TT_MAC_ID_KOREAN +

+
TT_MAC_ID_ARABIC +

+
TT_MAC_ID_HEBREW +

+
TT_MAC_ID_GREEK +

+
TT_MAC_ID_RUSSIAN +

+
TT_MAC_ID_RSYMBOL +

+
TT_MAC_ID_DEVANAGARI +

+
TT_MAC_ID_GURMUKHI +

+
TT_MAC_ID_GUJARATI +

+
TT_MAC_ID_ORIYA +

+
TT_MAC_ID_BENGALI +

+
TT_MAC_ID_TAMIL +

+
TT_MAC_ID_TELUGU +

+
TT_MAC_ID_KANNADA +

+
TT_MAC_ID_MALAYALAM +

+
TT_MAC_ID_SINHALESE +

+
TT_MAC_ID_BURMESE +

+
TT_MAC_ID_KHMER +

+
TT_MAC_ID_THAI +

+
TT_MAC_ID_LAOTIAN +

+
TT_MAC_ID_GEORGIAN +

+
TT_MAC_ID_ARMENIAN +

+
TT_MAC_ID_MALDIVIAN +

+
TT_MAC_ID_SIMPLIFIED_CHINESE
+

+
TT_MAC_ID_TIBETAN +

+
TT_MAC_ID_MONGOLIAN +

+
TT_MAC_ID_GEEZ +

+
TT_MAC_ID_SLAVIC +

+
TT_MAC_ID_VIETNAMESE +

+
TT_MAC_ID_SINDHI +

+
TT_MAC_ID_UNINTERP +

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_ISO_ID_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_ISO_ID_7BIT_ASCII  0
+#define TT_ISO_ID_10646       1
+#define TT_ISO_ID_8859_1      2
+
+

+
+

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_ISO charmaps and name entries.

+

Their use is now deprecated.

+

+
values
+

+ + + + +
TT_ISO_ID_7BIT_ASCII +

ASCII.

+
TT_ISO_ID_10646 +

ISO/10646.

+
TT_ISO_ID_8859_1 +

Also known as Latin-1.

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_MS_ID_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_MS_ID_SYMBOL_CS    0
+#define TT_MS_ID_UNICODE_CS   1
+#define TT_MS_ID_SJIS         2
+#define TT_MS_ID_GB2312       3
+#define TT_MS_ID_BIG_5        4
+#define TT_MS_ID_WANSUNG      5
+#define TT_MS_ID_JOHAB        6
+#define TT_MS_ID_UCS_4       10
+
+

+
+

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_MICROSOFT charmaps and name entries.

+

+
values
+

+ + + + + + + + + +
TT_MS_ID_SYMBOL_CS +

Corresponds to Microsoft symbol encoding. See FT_ENCODING_MS_SYMBOL.

+
TT_MS_ID_UNICODE_CS +

Corresponds to a Microsoft WGL4 charmap, matching Unicode. See FT_ENCODING_UNICODE.

+
TT_MS_ID_SJIS +

Corresponds to SJIS Japanese encoding. See FT_ENCODING_SJIS.

+
TT_MS_ID_GB2312 +

Corresponds to Simplified Chinese as used in Mainland China. See FT_ENCODING_GB2312.

+
TT_MS_ID_BIG_5 +

Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. See FT_ENCODING_BIG5.

+
TT_MS_ID_WANSUNG +

Corresponds to Korean Wansung encoding. See FT_ENCODING_WANSUNG.

+
TT_MS_ID_JOHAB +

Corresponds to Johab encoding. See FT_ENCODING_JOHAB.

+
TT_MS_ID_UCS_4 +

Corresponds to UCS-4 or UTF-32 charmaps. This has been added to the OpenType specification version 1.4 (mid-2001.)

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_ADOBE_ID_XXX

+
+Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). +

+
+
+#define TT_ADOBE_ID_STANDARD  0
+#define TT_ADOBE_ID_EXPERT    1
+#define TT_ADOBE_ID_CUSTOM    2
+#define TT_ADOBE_ID_LATIN_1   3
+
+

+
+

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension!

+

+
values
+

+ + + + + +
TT_ADOBE_ID_STANDARD +

Adobe standard encoding.

+
TT_ADOBE_ID_EXPERT +

Adobe expert encoding.

+
TT_ADOBE_ID_CUSTOM +

Adobe custom encoding.

+
TT_ADOBE_ID_LATIN_1 +

Adobe Latin 1 encoding.

+
+
+
+
+ + +
[Index][TOC]
+ +
+

TT_Header

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_Header_
+  {
+    FT_Fixed   Table_Version;
+    FT_Fixed   Font_Revision;
+
+    FT_Long    CheckSum_Adjust;
+    FT_Long    Magic_Number;
+
+    FT_UShort  Flags;
+    FT_UShort  Units_Per_EM;
+
+    FT_Long    Created [2];
+    FT_Long    Modified[2];
+
+    FT_Short   xMin;
+    FT_Short   yMin;
+    FT_Short   xMax;
+    FT_Short   yMax;
+
+    FT_UShort  Mac_Style;
+    FT_UShort  Lowest_Rec_PPEM;
+
+    FT_Short   Font_Direction;
+    FT_Short   Index_To_Loc_Format;
+    FT_Short   Glyph_Data_Format;
+
+  } TT_Header;
+
+

+
+

A structure used to model a TrueType font header table. All fields follow the TrueType specification.

+

+
+
+ + +
[Index][TOC]
+ +
+

TT_HoriHeader

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_HoriHeader_
+  {
+    FT_Fixed   Version;
+    FT_Short   Ascender;
+    FT_Short   Descender;
+    FT_Short   Line_Gap;
+
+    FT_UShort  advance_Width_Max;      /* advance width maximum */
+
+    FT_Short   min_Left_Side_Bearing;  /* minimum left-sb       */
+    FT_Short   min_Right_Side_Bearing; /* minimum right-sb      */
+    FT_Short   xMax_Extent;            /* xmax extents          */
+    FT_Short   caret_Slope_Rise;
+    FT_Short   caret_Slope_Run;
+    FT_Short   caret_Offset;
+
+    FT_Short   Reserved[4];
+
+    FT_Short   metric_Data_Format;
+    FT_UShort  number_Of_HMetrics;
+
+    /* The following fields are not defined by the TrueType specification */
+    /* but they are used to connect the metrics header to the relevant    */
+    /* `HMTX' table.                                                      */
+
+    void*      long_metrics;
+    void*      short_metrics;
+
+  } TT_HoriHeader;
+
+

+
+

A structure used to model a TrueType horizontal header, the ‘hhea’ table, as well as the corresponding horizontal metrics table, i.e., the ‘hmtx’ table.

+

+
fields
+

+ + + + + + + + + + + + + + + + +
Version +

The table version.

+
Ascender +

The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.

+

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

+

You should use the ‘sTypoAscender’ field of the OS/2 table instead if you want the correct one.

+
Descender +

The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.

+

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

+

You should use the ‘sTypoDescender’ field of the OS/2 table instead if you want the correct one.

+
Line_Gap +

The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.

+
advance_Width_Max +

This field is the maximum of all advance widths found in the font. It can be used to compute the maximum width of an arbitrary string of text.

+
min_Left_Side_Bearing +

The minimum left side bearing of all glyphs within the font.

+
min_Right_Side_Bearing +

The minimum right side bearing of all glyphs within the font.

+
xMax_Extent +

The maximum horizontal extent (i.e., the ‘width’ of a glyph's bounding box) for all glyphs in the font.

+
caret_Slope_Rise +

The rise coefficient of the cursor's slope of the cursor (slope=rise/run).

+
caret_Slope_Run +

The run coefficient of the cursor's slope.

+
Reserved +

8 reserved bytes.

+
metric_Data_Format +

Always 0.

+
number_Of_HMetrics +

Number of HMetrics entries in the ‘hmtx’ table -- this value can be smaller than the total number of glyphs in the font.

+
long_metrics +

A pointer into the ‘hmtx’ table.

+
short_metrics +

A pointer into the ‘hmtx’ table.

+
+
+
note
+

IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should be identical except for the names of their fields which are different.

+

This ensures that a single function in the ‘ttload’ module is able to read both the horizontal and vertical headers.

+
+
+
+ + +
[Index][TOC]
+ +
+

TT_VertHeader

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_VertHeader_
+  {
+    FT_Fixed   Version;
+    FT_Short   Ascender;
+    FT_Short   Descender;
+    FT_Short   Line_Gap;
+
+    FT_UShort  advance_Height_Max;      /* advance height maximum */
+
+    FT_Short   min_Top_Side_Bearing;    /* minimum left-sb or top-sb       */
+    FT_Short   min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb   */
+    FT_Short   yMax_Extent;             /* xmax or ymax extents            */
+    FT_Short   caret_Slope_Rise;
+    FT_Short   caret_Slope_Run;
+    FT_Short   caret_Offset;
+
+    FT_Short   Reserved[4];
+
+    FT_Short   metric_Data_Format;
+    FT_UShort  number_Of_VMetrics;
+
+    /* The following fields are not defined by the TrueType specification */
+    /* but they're used to connect the metrics header to the relevant     */
+    /* `HMTX' or `VMTX' table.                                            */
+
+    void*      long_metrics;
+    void*      short_metrics;
+
+  } TT_VertHeader;
+
+

+
+

A structure used to model a TrueType vertical header, the ‘vhea’ table, as well as the corresponding vertical metrics table, i.e., the ‘vmtx’ table.

+

+
fields
+

+ + + + + + + + + + + + + + + + + + +
Version +

The table version.

+
Ascender +

The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.

+

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

+

You should use the ‘sTypoAscender’ field of the OS/2 table instead if you want the correct one.

+
Descender +

The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.

+

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

+

You should use the ‘sTypoDescender’ field of the OS/2 table instead if you want the correct one.

+
Line_Gap +

The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.

+
advance_Height_Max +

This field is the maximum of all advance heights found in the font. It can be used to compute the maximum height of an arbitrary string of text.

+
min_Top_Side_Bearing +

The minimum top side bearing of all glyphs within the font.

+
min_Bottom_Side_Bearing
+

The minimum bottom side bearing of all glyphs within the font.

+
yMax_Extent +

The maximum vertical extent (i.e., the ‘height’ of a glyph's bounding box) for all glyphs in the font.

+
caret_Slope_Rise +

The rise coefficient of the cursor's slope of the cursor (slope=rise/run).

+
caret_Slope_Run +

The run coefficient of the cursor's slope.

+
caret_Offset +

The cursor's offset for slanted fonts. This value is ‘reserved’ in vmtx version 1.0.

+
Reserved +

8 reserved bytes.

+
metric_Data_Format +

Always 0.

+
number_Of_HMetrics +

Number of VMetrics entries in the ‘vmtx’ table -- this value can be smaller than the total number of glyphs in the font.

+
long_metrics +

A pointer into the ‘vmtx’ table.

+
short_metrics +

A pointer into the ‘vmtx’ table.

+
+
+
note
+

IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should be identical except for the names of their fields which are different.

+

This ensures that a single function in the ‘ttload’ module is able to read both the horizontal and vertical headers.

+
+
+
+ + +
[Index][TOC]
+ +
+

TT_OS2

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_OS2_
+  {
+    FT_UShort  version;                /* 0x0001 - more or 0xFFFF */
+    FT_Short   xAvgCharWidth;
+    FT_UShort  usWeightClass;
+    FT_UShort  usWidthClass;
+    FT_Short   fsType;
+    FT_Short   ySubscriptXSize;
+    FT_Short   ySubscriptYSize;
+    FT_Short   ySubscriptXOffset;
+    FT_Short   ySubscriptYOffset;
+    FT_Short   ySuperscriptXSize;
+    FT_Short   ySuperscriptYSize;
+    FT_Short   ySuperscriptXOffset;
+    FT_Short   ySuperscriptYOffset;
+    FT_Short   yStrikeoutSize;
+    FT_Short   yStrikeoutPosition;
+    FT_Short   sFamilyClass;
+
+    FT_Byte    panose[10];
+
+    FT_ULong   ulUnicodeRange1;        /* Bits 0-31   */
+    FT_ULong   ulUnicodeRange2;        /* Bits 32-63  */
+    FT_ULong   ulUnicodeRange3;        /* Bits 64-95  */
+    FT_ULong   ulUnicodeRange4;        /* Bits 96-127 */
+
+    FT_Char    achVendID[4];
+
+    FT_UShort  fsSelection;
+    FT_UShort  usFirstCharIndex;
+    FT_UShort  usLastCharIndex;
+    FT_Short   sTypoAscender;
+    FT_Short   sTypoDescender;
+    FT_Short   sTypoLineGap;
+    FT_UShort  usWinAscent;
+    FT_UShort  usWinDescent;
+
+    /* only version 1 tables: */
+
+    FT_ULong   ulCodePageRange1;       /* Bits 0-31   */
+    FT_ULong   ulCodePageRange2;       /* Bits 32-63  */
+
+    /* only version 2 tables: */
+
+    FT_Short   sxHeight;
+    FT_Short   sCapHeight;
+    FT_UShort  usDefaultChar;
+    FT_UShort  usBreakChar;
+    FT_UShort  usMaxContext;
+
+  } TT_OS2;
+
+

+
+

A structure used to model a TrueType OS/2 table. This is the long table version. All fields comply to the TrueType specification.

+

Note that we now support old Mac fonts which do not include an OS/2 table. In this case, the ‘version’ field is always set to 0xFFFF.

+

+
+
+ + +
[Index][TOC]
+ +
+

TT_Postscript

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_Postscript_
+  {
+    FT_Fixed  FormatType;
+    FT_Fixed  italicAngle;
+    FT_Short  underlinePosition;
+    FT_Short  underlineThickness;
+    FT_ULong  isFixedPitch;
+    FT_ULong  minMemType42;
+    FT_ULong  maxMemType42;
+    FT_ULong  minMemType1;
+    FT_ULong  maxMemType1;
+
+    /* Glyph names follow in the file, but we don't   */
+    /* load them by default.  See the ttpost.c file.  */
+
+  } TT_Postscript;
+
+

+
+

A structure used to model a TrueType PostScript table. All fields comply to the TrueType specification. This structure does not reference the PostScript glyph names, which can be nevertheless accessed with the ‘ttpost’ module.

+

+
+
+ + +
[Index][TOC]
+ +
+

TT_PCLT

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_PCLT_
+  {
+    FT_Fixed   Version;
+    FT_ULong   FontNumber;
+    FT_UShort  Pitch;
+    FT_UShort  xHeight;
+    FT_UShort  Style;
+    FT_UShort  TypeFamily;
+    FT_UShort  CapHeight;
+    FT_UShort  SymbolSet;
+    FT_Char    TypeFace[16];
+    FT_Char    CharacterComplement[8];
+    FT_Char    FileName[6];
+    FT_Char    StrokeWeight;
+    FT_Char    WidthType;
+    FT_Byte    SerifStyle;
+    FT_Byte    Reserved;
+
+  } TT_PCLT;
+
+

+
+

A structure used to model a TrueType PCLT table. All fields comply to the TrueType specification.

+

+
+
+ + +
[Index][TOC]
+ +
+

TT_MaxProfile

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef struct  TT_MaxProfile_
+  {
+    FT_Fixed   version;
+    FT_UShort  numGlyphs;
+    FT_UShort  maxPoints;
+    FT_UShort  maxContours;
+    FT_UShort  maxCompositePoints;
+    FT_UShort  maxCompositeContours;
+    FT_UShort  maxZones;
+    FT_UShort  maxTwilightPoints;
+    FT_UShort  maxStorage;
+    FT_UShort  maxFunctionDefs;
+    FT_UShort  maxInstructionDefs;
+    FT_UShort  maxStackElements;
+    FT_UShort  maxSizeOfInstructions;
+    FT_UShort  maxComponentElements;
+    FT_UShort  maxComponentDepth;
+
+  } TT_MaxProfile;
+
+

+
+

The maximum profile is a table containing many max values which can be used to pre-allocate arrays. This ensures that no memory allocation occurs during a glyph load.

+

+
fields
+

+ + + + + + + + + + + + + + + + +
version +

The version number.

+
numGlyphs +

The number of glyphs in this TrueType font.

+
maxPoints +

The maximum number of points in a non-composite TrueType glyph. See also the structure element ‘maxCompositePoints’.

+
maxContours +

The maximum number of contours in a non-composite TrueType glyph. See also the structure element ‘maxCompositeContours’.

+
maxCompositePoints +

The maximum number of points in a composite TrueType glyph. See also the structure element ‘maxPoints’.

+
maxCompositeContours +

The maximum number of contours in a composite TrueType glyph. See also the structure element ‘maxContours’.

+
maxZones +

The maximum number of zones used for glyph hinting.

+
maxTwilightPoints +

The maximum number of points in the twilight zone used for glyph hinting.

+
maxStorage +

The maximum number of elements in the storage area used for glyph hinting.

+
maxFunctionDefs +

The maximum number of function definitions in the TrueType bytecode for this font.

+
maxInstructionDefs +

The maximum number of instruction definitions in the TrueType bytecode for this font.

+
maxStackElements +

The maximum number of stack elements used during bytecode interpretation.

+
maxSizeOfInstructions +

The maximum number of TrueType opcodes used for glyph hinting.

+
maxComponentElements +

The maximum number of simple (i.e., non- composite) glyphs in a composite glyph.

+
maxComponentDepth +

The maximum nesting depth of composite glyphs.

+
+
+
note
+

This structure is only used during font loading.

+
+
+
+ + +
[Index][TOC]
+ +
+

FT_Sfnt_Tag

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  typedef enum  FT_Sfnt_Tag_
+  {
+    ft_sfnt_head = 0,
+    ft_sfnt_maxp = 1,
+    ft_sfnt_os2  = 2,
+    ft_sfnt_hhea = 3,
+    ft_sfnt_vhea = 4,
+    ft_sfnt_post = 5,
+    ft_sfnt_pclt = 6,
+
+    sfnt_max   /* internal end mark */
+
+  } FT_Sfnt_Tag;
+
+

+
+

An enumeration used to specify the index of an SFNT table. Used in the FT_Get_Sfnt_Table API function.

+

+
+
+ + +
[Index][TOC]
+ +
+

FT_Get_Sfnt_Table

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  FT_EXPORT( void* )
+  FT_Get_Sfnt_Table( FT_Face      face,
+                     FT_Sfnt_Tag  tag );
+
+

+
+

Return a pointer to a given SFNT table within a face.

+

+
input
+

+ + + +
face +

A handle to the source.

+
tag +

The index of the SFNT table.

+
+
+
return
+

A type-less pointer to the table. This will be 0 in case of error, or if the corresponding table was not found OR loaded from the file.

+
+
note
+

The table is owned by the face object and disappears with it.

+

This function is only useful to access SFNT tables that are loaded by the sfnt, truetype, and opentype drivers. See FT_Sfnt_Tag for a list.

+
+
+
+ + +
[Index][TOC]
+ +
+

FT_Load_Sfnt_Table

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  FT_EXPORT( FT_Error )
+  FT_Load_Sfnt_Table( FT_Face    face,
+                      FT_ULong   tag,
+                      FT_Long    offset,
+                      FT_Byte*   buffer,
+                      FT_ULong*  length );
+
+

+
+

Load any font table into client memory.

+

+
input
+

+ + + + +
face +

A handle to the source face.

+
tag +

The four-byte tag of the table to load. Use the value 0 if you want to access the whole font file. Otherwise, you can use one of the definitions found in the FT_TRUETYPE_TAGS_H file, or forge a new one with FT_MAKE_TAG.

+
offset +

The starting offset in the table (or file if tag == 0).

+
+
+
output
+

+ + +
buffer +

The target buffer address. The client must ensure that the memory array is big enough to hold the data.

+
+
+
inout
+

+ + +
length +

If the ‘length’ parameter is NULL, then try to load the whole table. Return an error code if it fails.

+

Else, if ‘*length’ is 0, exit immediately while returning the table's (or file) full size in it.

+

Else the number of bytes to read from the table or file, from the starting offset.

+
+
+
return
+

FreeType error code. 0 means success.

+
+
note
+

If you need to determine the table's length you should first call this function with ‘*length’ set to 0, as in the following example:

+
+  FT_ULong  length = 0;
+
+
+  error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
+  if ( error ) { ... table does not exist ... }
+
+  buffer = malloc( length );
+  if ( buffer == NULL ) { ... not enough memory ... }
+
+  error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length );
+  if ( error ) { ... could not load table ... }
+
+
+
+
+ + +
[Index][TOC]
+ +
+

FT_Sfnt_Table_Info

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  FT_EXPORT( FT_Error )
+  FT_Sfnt_Table_Info( FT_Face    face,
+                      FT_UInt    table_index,
+                      FT_ULong  *tag,
+                      FT_ULong  *length );
+
+

+
+

Return information on an SFNT table.

+

+
input
+

+ + + +
face +

A handle to the source face.

+
table_index +

The index of an SFNT table. The function returns FT_Err_Table_Missing for an invalid value.

+
+
+
output
+

+ + + +
tag +

The name tag of the SFNT table.

+
length +

The length of the SFNT table.

+
+
+
return
+

FreeType error code. 0 means success.

+
+
note
+

SFNT tables with length zero are treated as missing.

+
+
+
+ + +
[Index][TOC]
+ +
+

FT_Get_CMap_Language_ID

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  FT_EXPORT( FT_ULong )
+  FT_Get_CMap_Language_ID( FT_CharMap  charmap );
+
+

+
+

Return TrueType/sfnt specific cmap language ID. Definitions of language ID values are in ‘freetype/ttnameid.h’.

+

+
input
+

+ + +
charmap +

The target charmap.

+
+
+
return
+

The language ID of ‘charmap’. If ‘charmap’ doesn't belong to a TrueType/sfnt face, just return 0 as the default value.

+
+
+
+ + +
[Index][TOC]
+ +
+

FT_Get_CMap_Format

+
+Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). +

+
+
+  FT_EXPORT( FT_Long )
+  FT_Get_CMap_Format( FT_CharMap  charmap );
+
+

+
+

Return TrueType/sfnt specific cmap format.

+

+
input
+

+ + +
charmap +

The target charmap.

+
+
+
return
+

The format of ‘charmap’. If ‘charmap’ doesn't belong to a TrueType/sfnt face, return -1.

+
+
+
+ + +
[Index][TOC]
+ +
+

FT_PARAM_TAG_UNPATENTED_HINTING

+
+

A constant used as the tag of an FT_Parameter structure to indicate that unpatented methods only should be used by the TrueType bytecode interpreter for a typeface opened by FT_Open_Face.

+

+
+
+ + +
[Index][TOC]
+ + + -- cgit v1.2.3