summaryrefslogtreecommitdiff
path: root/include/freetype/tttables.h
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2018-06-03 22:00:42 +0200
committerWerner Lemberg <wl@gnu.org>2018-06-03 22:00:42 +0200
commitf999375a9a834666f82928f9ad6293d9b25213a5 (patch)
tree2416528a574600ee96ea0ce9709143f5fc9d1d64 /include/freetype/tttables.h
parentdc170dea33545dbbbf18bb59b316117e73275889 (diff)
downloadfreetype2-f999375a9a834666f82928f9ad6293d9b25213a5.tar.gz
[GSoC] include/*.*, devel/*.*: Convert block comments to `light' style.
This second and final monster commit was created by applying Nikhil's scripts `docconverter.py' and `markify.py' to all C header and source files, followed up by minor manual clean-up. No change in functionality, of course. I used commit f7419907bc6044b9b7057f9789866426c804ba82 from https://github.com/nikramakrishnan/freetype-docs.git.
Diffstat (limited to 'include/freetype/tttables.h')
-rw-r--r--include/freetype/tttables.h972
1 files changed, 514 insertions, 458 deletions
diff --git a/include/freetype/tttables.h b/include/freetype/tttables.h
index ce6a61779..eac472d83 100644
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -1,20 +1,20 @@
-/***************************************************************************/
-/* */
-/* tttables.h */
-/* */
-/* Basic SFNT/TrueType tables definitions and interface */
-/* (specification only). */
-/* */
-/* Copyright 1996-2018 by */
-/* David Turner, Robert Wilhelm, and Werner Lemberg. */
-/* */
-/* This file is part of the FreeType project, and may only be used, */
-/* modified, and distributed under the terms of the FreeType project */
-/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
-/* this file you indicate that you have read the license and */
-/* understand and accept it fully. */
-/* */
-/***************************************************************************/
+/****************************************************************************
+ *
+ * tttables.h
+ *
+ * Basic SFNT/TrueType tables definitions and interface
+ * (specification only).
+ *
+ * Copyright 1996-2018 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * This file is part of the FreeType project, and may only be used,
+ * modified, and distributed under the terms of the FreeType project
+ * license, LICENSE.TXT. By continuing to use, modify, or distribute
+ * this file you indicate that you have read the license and
+ * understand and accept it fully.
+ *
+ */
#ifndef TTTABLES_H_
@@ -33,53 +33,53 @@
FT_BEGIN_HEADER
- /*************************************************************************/
- /* */
- /* <Section> */
- /* truetype_tables */
- /* */
- /* <Title> */
- /* TrueType Tables */
- /* */
- /* <Abstract> */
- /* TrueType specific table types and functions. */
- /* */
- /* <Description> */
- /* This section contains definitions of some basic tables specific to */
- /* TrueType and OpenType as well as some routines used to access and */
- /* process them. */
- /* */
- /* <Order> */
- /* TT_Header */
- /* TT_HoriHeader */
- /* TT_VertHeader */
- /* TT_OS2 */
- /* TT_Postscript */
- /* TT_PCLT */
- /* TT_MaxProfile */
- /* */
- /* FT_Sfnt_Tag */
- /* FT_Get_Sfnt_Table */
- /* FT_Load_Sfnt_Table */
- /* FT_Sfnt_Table_Info */
- /* */
- /* FT_Get_CMap_Language_ID */
- /* FT_Get_CMap_Format */
- /* */
- /* FT_PARAM_TAG_UNPATENTED_HINTING */
- /* */
- /*************************************************************************/
-
-
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_Header */
- /* */
- /* <Description> */
- /* A structure to model a TrueType font header table. All fields */
- /* follow the OpenType specification. */
- /* */
+ /**************************************************************************
+ *
+ * @Section:
+ * truetype_tables
+ *
+ * @Title:
+ * TrueType Tables
+ *
+ * @Abstract:
+ * TrueType specific table types and functions.
+ *
+ * @Description:
+ * This section contains definitions of some basic tables specific to
+ * TrueType and OpenType as well as some routines used to access and
+ * process them.
+ *
+ * @Order:
+ * TT_Header
+ * TT_HoriHeader
+ * TT_VertHeader
+ * TT_OS2
+ * TT_Postscript
+ * TT_PCLT
+ * TT_MaxProfile
+ *
+ * FT_Sfnt_Tag
+ * FT_Get_Sfnt_Table
+ * FT_Load_Sfnt_Table
+ * FT_Sfnt_Table_Info
+ *
+ * FT_Get_CMap_Language_ID
+ * FT_Get_CMap_Format
+ *
+ * FT_PARAM_TAG_UNPATENTED_HINTING
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_Header
+ *
+ * @Description:
+ * A structure to model a TrueType font header table. All fields
+ * follow the OpenType specification.
+ */
typedef struct TT_Header_
{
FT_Fixed Table_Version;
@@ -109,93 +109,109 @@ FT_BEGIN_HEADER
} TT_Header;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_HoriHeader */
- /* */
- /* <Description> */
- /* A structure to model a TrueType horizontal header, the `hhea' */
- /* table, as well as the corresponding horizontal metrics table, */
- /* `hmtx'. */
- /* */
- /* <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. */
- /* */
- /* caret_Offset :: The cursor's offset for slanted fonts. */
- /* */
- /* 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> */
- /* For an OpenType variation font, the values of the following fields */
- /* can change after a call to @FT_Set_Var_Design_Coordinates (and */
- /* friends) if the font contains an `MVAR' table: `caret_Slope_Rise', */
- /* `caret_Slope_Run', and `caret_Offset'. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_HoriHeader
+ *
+ * @Description:
+ * A structure to model a TrueType horizontal header, the `hhea'
+ * table, as well as the corresponding horizontal metrics table,
+ * `hmtx'.
+ *
+ * @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.
+ *
+ * caret_Offset ::
+ * The cursor's offset for slanted fonts.
+ *
+ * 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:
+ * For an OpenType variation font, the values of the following fields
+ * can change after a call to @FT_Set_Var_Design_Coordinates (and
+ * friends) if the font contains an `MVAR' table: `caret_Slope_Rise',
+ * `caret_Slope_Run', and `caret_Offset'.
+ */
typedef struct TT_HoriHeader_
{
FT_Fixed Version;
@@ -227,97 +243,113 @@ FT_BEGIN_HEADER
} TT_HoriHeader;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_VertHeader */
- /* */
- /* <Description> */
- /* A structure used to model a TrueType vertical header, the `vhea' */
- /* table, as well as the corresponding vertical metrics table, */
- /* `vmtx'. */
- /* */
- /* <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. */
- /* */
- /* Reserved :: 8~reserved bytes. */
- /* */
- /* metric_Data_Format :: Always~0. */
- /* */
- /* number_Of_VMetrics :: 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> */
- /* For an OpenType variation font, the values of the following fields */
- /* can change after a call to @FT_Set_Var_Design_Coordinates (and */
- /* friends) if the font contains an `MVAR' table: `Ascender', */
- /* `Descender', `Line_Gap', `caret_Slope_Rise', `caret_Slope_Run', */
- /* and `caret_Offset'. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_VertHeader
+ *
+ * @Description:
+ * A structure used to model a TrueType vertical header, the `vhea'
+ * table, as well as the corresponding vertical metrics table,
+ * `vmtx'.
+ *
+ * @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.
+ *
+ * Reserved ::
+ * 8~reserved bytes.
+ *
+ * metric_Data_Format ::
+ * Always~0.
+ *
+ * number_Of_VMetrics ::
+ * 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:
+ * For an OpenType variation font, the values of the following fields
+ * can change after a call to @FT_Set_Var_Design_Coordinates (and
+ * friends) if the font contains an `MVAR' table: `Ascender',
+ * `Descender', `Line_Gap', `caret_Slope_Rise', `caret_Slope_Run',
+ * and `caret_Offset'.
+ */
typedef struct TT_VertHeader_
{
FT_Fixed Version;
@@ -349,33 +381,33 @@ FT_BEGIN_HEADER
} TT_VertHeader;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_OS2 */
- /* */
- /* <Description> */
- /* A structure to model a TrueType `OS/2' table. All fields comply */
- /* to the OpenType specification. */
- /* */
- /* Note that we now support old Mac fonts that do not include an */
- /* `OS/2' table. In this case, the `version' field is always set to */
- /* 0xFFFF. */
- /* */
- /* <Note> */
- /* For an OpenType variation font, the values of the following fields */
- /* can change after a call to @FT_Set_Var_Design_Coordinates (and */
- /* friends) if the font contains an `MVAR' table: `sCapHeight', */
- /* `sTypoAscender', `sTypoDescender', `sTypoLineGap', `sxHeight', */
- /* `usWinAscent', `usWinDescent', `yStrikeoutPosition', */
- /* `yStrikeoutSize', `ySubscriptXOffset', `ySubScriptXSize', */
- /* `ySubscriptYOffset', `ySubscriptYSize', `ySuperscriptXOffset', */
- /* `ySuperscriptXSize', `ySuperscriptYOffset', and */
- /* `ySuperscriptYSize'. */
- /* */
- /* Possible values for bits in the `ulUnicodeRangeX' fields are given */
- /* by the @TT_UCR_XXX macros. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_OS2
+ *
+ * @Description:
+ * A structure to model a TrueType `OS/2' table. All fields comply
+ * to the OpenType specification.
+ *
+ * Note that we now support old Mac fonts that do not include an
+ * `OS/2' table. In this case, the `version' field is always set to
+ * 0xFFFF.
+ *
+ * @Note:
+ * For an OpenType variation font, the values of the following fields
+ * can change after a call to @FT_Set_Var_Design_Coordinates (and
+ * friends) if the font contains an `MVAR' table: `sCapHeight',
+ * `sTypoAscender', `sTypoDescender', `sTypoLineGap', `sxHeight',
+ * `usWinAscent', `usWinDescent', `yStrikeoutPosition',
+ * `yStrikeoutSize', `ySubscriptXOffset', `ySubScriptXSize',
+ * `ySubscriptYOffset', `ySubscriptYSize', `ySuperscriptXOffset',
+ * `ySuperscriptXSize', `ySuperscriptYOffset', and
+ * `ySuperscriptYSize'.
+ *
+ * Possible values for bits in the `ulUnicodeRangeX' fields are given
+ * by the @TT_UCR_XXX macros.
+ */
typedef struct TT_OS2_
{
@@ -435,23 +467,23 @@ FT_BEGIN_HEADER
} TT_OS2;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_Postscript */
- /* */
- /* <Description> */
- /* A structure to model a TrueType `post' table. All fields comply */
- /* to the OpenType specification. This structure does not reference */
- /* a font's PostScript glyph names; use @FT_Get_Glyph_Name to */
- /* retrieve them. */
- /* */
- /* <Note> */
- /* For an OpenType variation font, the values of the following fields */
- /* can change after a call to @FT_Set_Var_Design_Coordinates (and */
- /* friends) if the font contains an `MVAR' table: `underlinePosition' */
- /* and `underlineThickness'. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_Postscript
+ *
+ * @Description:
+ * A structure to model a TrueType `post' table. All fields comply
+ * to the OpenType specification. This structure does not reference
+ * a font's PostScript glyph names; use @FT_Get_Glyph_Name to
+ * retrieve them.
+ *
+ * @Note:
+ * For an OpenType variation font, the values of the following fields
+ * can change after a call to @FT_Set_Var_Design_Coordinates (and
+ * friends) if the font contains an `MVAR' table: `underlinePosition'
+ * and `underlineThickness'.
+ */
typedef struct TT_Postscript_
{
FT_Fixed FormatType;
@@ -470,15 +502,15 @@ FT_BEGIN_HEADER
} TT_Postscript;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_PCLT */
- /* */
- /* <Description> */
- /* A structure to model a TrueType `PCLT' table. All fields comply */
- /* to the OpenType specification. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_PCLT
+ *
+ * @Description:
+ * A structure to model a TrueType `PCLT' table. All fields comply
+ * to the OpenType specification.
+ */
typedef struct TT_PCLT_
{
FT_Fixed Version;
@@ -500,70 +532,85 @@ FT_BEGIN_HEADER
} TT_PCLT;
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_MaxProfile */
- /* */
- /* <Description> */
- /* The maximum profile (`maxp') table contains many max values, which */
- /* can be used to pre-allocate arrays for speeding up glyph loading */
- /* and hinting. */
- /* */
- /* <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 */
- /* `maxCompositePoints'. */
- /* */
- /* maxContours :: The maximum number of contours in a */
- /* non-composite TrueType glyph. See also */
- /* `maxCompositeContours'. */
- /* */
- /* maxCompositePoints :: The maximum number of points in a */
- /* composite TrueType glyph. See also */
- /* `maxPoints'. */
- /* */
- /* maxCompositeContours :: The maximum number of contours in a */
- /* composite TrueType glyph. See also */
- /* `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. */
- /* */
+ /**************************************************************************
+ *
+ * @Struct:
+ * TT_MaxProfile
+ *
+ * @Description:
+ * The maximum profile (`maxp') table contains many max values, which
+ * can be used to pre-allocate arrays for speeding up glyph loading
+ * and hinting.
+ *
+ * @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
+ * `maxCompositePoints'.
+ *
+ * maxContours ::
+ * The maximum number of contours in a
+ * non-composite TrueType glyph. See also
+ * `maxCompositeContours'.
+ *
+ * maxCompositePoints ::
+ * The maximum number of points in a
+ * composite TrueType glyph. See also
+ * `maxPoints'.
+ *
+ * maxCompositeContours ::
+ * The maximum number of contours in a
+ * composite TrueType glyph. See also
+ * `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.
+ */
typedef struct TT_MaxProfile_
{
FT_Fixed version;
@@ -585,31 +632,38 @@ FT_BEGIN_HEADER
} TT_MaxProfile;
- /*************************************************************************/
- /* */
- /* <Enum> */
- /* FT_Sfnt_Tag */
- /* */
- /* <Description> */
- /* An enumeration to specify indices of SFNT tables loaded and parsed */
- /* by FreeType during initialization of an SFNT font. Used in the */
- /* @FT_Get_Sfnt_Table API function. */
- /* */
- /* <Values> */
- /* FT_SFNT_HEAD :: To access the font's @TT_Header structure. */
- /* */
- /* FT_SFNT_MAXP :: To access the font's @TT_MaxProfile structure. */
- /* */
- /* FT_SFNT_OS2 :: To access the font's @TT_OS2 structure. */
- /* */
- /* FT_SFNT_HHEA :: To access the font's @TT_HoriHeader structure. */
- /* */
- /* FT_SFNT_VHEA :: To access the font's @TT_VertHeader structure. */
- /* */
- /* FT_SFNT_POST :: To access the font's @TT_Postscript structure. */
- /* */
- /* FT_SFNT_PCLT :: To access the font's @TT_PCLT structure. */
- /* */
+ /**************************************************************************
+ *
+ * @Enum:
+ * FT_Sfnt_Tag
+ *
+ * @Description:
+ * An enumeration to specify indices of SFNT tables loaded and parsed
+ * by FreeType during initialization of an SFNT font. Used in the
+ * @FT_Get_Sfnt_Table API function.
+ *
+ * @Values:
+ * FT_SFNT_HEAD ::
+ * To access the font's @TT_Header structure.
+ *
+ * FT_SFNT_MAXP ::
+ * To access the font's @TT_MaxProfile structure.
+ *
+ * FT_SFNT_OS2 ::
+ * To access the font's @TT_OS2 structure.
+ *
+ * FT_SFNT_HHEA ::
+ * To access the font's @TT_HoriHeader structure.
+ *
+ * FT_SFNT_VHEA ::
+ * To access the font's @TT_VertHeader structure.
+ *
+ * FT_SFNT_POST ::
+ * To access the font's @TT_Postscript structure.
+ *
+ * FT_SFNT_PCLT ::
+ * To access the font's @TT_PCLT structure.
+ */
typedef enum FT_Sfnt_Tag_
{
FT_SFNT_HEAD,
@@ -635,44 +689,46 @@ FT_BEGIN_HEADER
#define ft_sfnt_pclt FT_SFNT_PCLT
- /*************************************************************************/
- /* */
- /* <Function> */
- /* FT_Get_Sfnt_Table */
- /* */
- /* <Description> */
- /* Return a pointer to a given SFNT table stored 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 NULL in case of */
- /* error, or if the corresponding table was not found *OR* loaded */
- /* from the file. */
- /* */
- /* Use a typecast according to `tag' to access the structure */
- /* elements. */
- /* */
- /* <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. */
- /* */
- /* Here an example how to access the `vhea' table: */
- /* */
- /* { */
- /* TT_VertHeader* vert_header; */
- /* */
- /* */
- /* vert_header = */
- /* (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA ); */
- /* } */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * FT_Get_Sfnt_Table
+ *
+ * @Description:
+ * Return a pointer to a given SFNT table stored 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 NULL in case of
+ * error, or if the corresponding table was not found *OR* loaded
+ * from the file.
+ *
+ * Use a typecast according to `tag' to access the structure
+ * elements.
+ *
+ * @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.
+ *
+ * Here an example how to access the `vhea' table:
+ *
+ * {
+ * TT_VertHeader* vert_header;
+ *
+ *
+ * vert_header =
+ * (TT_VertHeader*)FT_Get_Sfnt_Table( face, FT_SFNT_VHEA );
+ * }
+ */
FT_EXPORT( void* )
FT_Get_Sfnt_Table( FT_Face face,
FT_Sfnt_Tag tag );
@@ -792,46 +848,46 @@ FT_BEGIN_HEADER
FT_ULong *length );
- /*************************************************************************/
- /* */
- /* <Function> */
- /* FT_Get_CMap_Language_ID */
- /* */
- /* <Description> */
- /* Return cmap language ID as specified in the OpenType standard. */
- /* Definitions of language ID values are in file @FT_TRUETYPE_IDS_H. */
- /* */
- /* <Input> */
- /* charmap :: */
- /* The target charmap. */
- /* */
- /* <Return> */
- /* The language ID of `charmap'. If `charmap' doesn't belong to an */
- /* SFNT face, just return~0 as the default value. */
- /* */
- /* For a format~14 cmap (to access Unicode IVS), the return value is */
- /* 0xFFFFFFFF. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * FT_Get_CMap_Language_ID
+ *
+ * @Description:
+ * Return cmap language ID as specified in the OpenType standard.
+ * Definitions of language ID values are in file @FT_TRUETYPE_IDS_H.
+ *
+ * @Input:
+ * charmap ::
+ * The target charmap.
+ *
+ * @Return:
+ * The language ID of `charmap'. If `charmap' doesn't belong to an
+ * SFNT face, just return~0 as the default value.
+ *
+ * For a format~14 cmap (to access Unicode IVS), the return value is
+ * 0xFFFFFFFF.
+ */
FT_EXPORT( FT_ULong )
FT_Get_CMap_Language_ID( FT_CharMap charmap );
- /*************************************************************************/
- /* */
- /* <Function> */
- /* FT_Get_CMap_Format */
- /* */
- /* <Description> */
- /* Return the format of an SFNT `cmap' table. */
- /* */
- /* <Input> */
- /* charmap :: */
- /* The target charmap. */
- /* */
- /* <Return> */
- /* The format of `charmap'. If `charmap' doesn't belong to an SFNT */
- /* face, return -1. */
- /* */
+ /**************************************************************************
+ *
+ * @Function:
+ * FT_Get_CMap_Format
+ *
+ * @Description:
+ * Return the format of an SFNT `cmap' table.
+ *
+ * @Input:
+ * charmap ::
+ * The target charmap.
+ *
+ * @Return:
+ * The format of `charmap'. If `charmap' doesn't belong to an SFNT
+ * face, return -1.
+ */
FT_EXPORT( FT_Long )
FT_Get_CMap_Format( FT_CharMap charmap );