628 *
629 * Other encodings might be defined in the future.
630 *
631 * @values:
632 * FT_ENCODING_NONE ::
633 * The encoding value~0 is reserved for all formats except BDF, PCF,
634 * and Windows FNT; see below for more information.
635 *
636 * FT_ENCODING_UNICODE ::
637 * The Unicode character set. This value covers all versions of the
638 * Unicode repertoire, including ASCII and Latin-1. Most fonts include
639 * a Unicode charmap, but not all of them.
640 *
641 * For example, if you want to access Unicode value U+1F028 (and the
642 * font contains it), use value 0x1F028 as the input value for
643 * @FT_Get_Char_Index.
644 *
645 * FT_ENCODING_MS_SYMBOL ::
646 * Microsoft Symbol encoding, used to encode mathematical symbols and
647 * wingdings. For more information, see
648 * 'https://www.microsoft.com/typography/otspec/recom.htm',
649 * 'http://www.kostis.net/charsets/symbol.htm', and
650 * 'http://www.kostis.net/charsets/wingding.htm'.
651 *
652 * This encoding uses character codes from the PUA (Private Unicode
653 * Area) in the range U+F020-U+F0FF.
654 *
655 * FT_ENCODING_SJIS ::
656 * Shift JIS encoding for Japanese. More info at
657 * 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte
658 * encodings below.
659 *
660 * FT_ENCODING_PRC ::
661 * Corresponds to encoding systems mainly for Simplified Chinese as
662 * used in People's Republic of China (PRC). The encoding layout is
663 * based on GB~2312 and its supersets GBK and GB~18030.
664 *
665 * FT_ENCODING_BIG5 ::
666 * Corresponds to an encoding system for Traditional Chinese as used in
667 * Taiwan and Hong Kong.
668 *
1749 *
1750 * bitmap ::
1751 * This field is used as a bitmap descriptor. Note that the address
1752 * and content of the bitmap buffer can change between calls of
1753 * @FT_Load_Glyph and a few other functions.
1754 *
1755 * bitmap_left ::
1756 * The bitmap's left bearing expressed in integer pixels.
1757 *
1758 * bitmap_top ::
1759 * The bitmap's top bearing expressed in integer pixels. This is the
1760 * distance from the baseline to the top-most glyph scanline, upwards
1761 * y~coordinates being **positive**.
1762 *
1763 * outline ::
1764 * The outline descriptor for the current glyph image if its format is
1765 * @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, `outline` can be
1766 * transformed, distorted, emboldened, etc. However, it must not be
1767 * freed.
1768 *
1769 * num_subglyphs ::
1770 * The number of subglyphs in a composite glyph. This field is only
1771 * valid for the composite glyph format that should normally only be
1772 * loaded with the @FT_LOAD_NO_RECURSE flag.
1773 *
1774 * subglyphs ::
1775 * An array of subglyph descriptors for composite glyphs. There are
1776 * `num_subglyphs` elements in there. Currently internal to FreeType.
1777 *
1778 * control_data ::
1779 * Certain font drivers can also return the control data for a given
1780 * glyph image (e.g. TrueType bytecode, Type~1 charstrings, etc.).
1781 * This field is a pointer to such data; it is currently internal to
1782 * FreeType.
1783 *
1784 * control_len ::
1785 * This is the length in bytes of the control data. Currently internal
1786 * to FreeType.
1787 *
1788 * other ::
3916 /**************************************************************************
3917 *
3918 * @function:
3919 * FT_Get_Name_Index
3920 *
3921 * @description:
3922 * Return the glyph index of a given glyph name.
3923 *
3924 * @input:
3925 * face ::
3926 * A handle to the source face object.
3927 *
3928 * glyph_name ::
3929 * The glyph name.
3930 *
3931 * @return:
3932 * The glyph index. 0~means 'undefined character code'.
3933 */
3934 FT_EXPORT( FT_UInt )
3935 FT_Get_Name_Index( FT_Face face,
3936 FT_String* glyph_name );
3937
3938
3939 /**************************************************************************
3940 *
3941 * @enum:
3942 * FT_SUBGLYPH_FLAG_XXX
3943 *
3944 * @description:
3945 * A list of constants describing subglyphs. Please refer to the 'glyf'
3946 * table description in the OpenType specification for the meaning of the
3947 * various flags (which get synthesized for non-OpenType subglyphs).
3948 *
3949 * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
3950 *
3951 * @values:
3952 * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
3953 * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ::
3954 * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID ::
3955 * FT_SUBGLYPH_FLAG_SCALE ::
3956 * FT_SUBGLYPH_FLAG_XY_SCALE ::
4757 *
4758 * @description:
4759 * These three macros identify the FreeType source code version. Use
4760 * @FT_Library_Version to access them at runtime.
4761 *
4762 * @values:
4763 * FREETYPE_MAJOR ::
4764 * The major version number.
4765 * FREETYPE_MINOR ::
4766 * The minor version number.
4767 * FREETYPE_PATCH ::
4768 * The patch level.
4769 *
4770 * @note:
4771 * The version number of FreeType if built as a dynamic link library with
4772 * the 'libtool' package is _not_ controlled by these three macros.
4773 *
4774 */
4775 #define FREETYPE_MAJOR 2
4776 #define FREETYPE_MINOR 10
4777 #define FREETYPE_PATCH 0
4778
4779
4780 /**************************************************************************
4781 *
4782 * @function:
4783 * FT_Library_Version
4784 *
4785 * @description:
4786 * Return the version of the FreeType library being used. This is useful
4787 * when dynamically linking to the library, since one cannot use the
4788 * macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH.
4789 *
4790 * @input:
4791 * library ::
4792 * A source library handle.
4793 *
4794 * @output:
4795 * amajor ::
4796 * The major version number.
4797 *
|
628 *
629 * Other encodings might be defined in the future.
630 *
631 * @values:
632 * FT_ENCODING_NONE ::
633 * The encoding value~0 is reserved for all formats except BDF, PCF,
634 * and Windows FNT; see below for more information.
635 *
636 * FT_ENCODING_UNICODE ::
637 * The Unicode character set. This value covers all versions of the
638 * Unicode repertoire, including ASCII and Latin-1. Most fonts include
639 * a Unicode charmap, but not all of them.
640 *
641 * For example, if you want to access Unicode value U+1F028 (and the
642 * font contains it), use value 0x1F028 as the input value for
643 * @FT_Get_Char_Index.
644 *
645 * FT_ENCODING_MS_SYMBOL ::
646 * Microsoft Symbol encoding, used to encode mathematical symbols and
647 * wingdings. For more information, see
648 * 'https://www.microsoft.com/typography/otspec/recom.htm#non-standard-symbol-fonts',
649 * 'http://www.kostis.net/charsets/symbol.htm', and
650 * 'http://www.kostis.net/charsets/wingding.htm'.
651 *
652 * This encoding uses character codes from the PUA (Private Unicode
653 * Area) in the range U+F020-U+F0FF.
654 *
655 * FT_ENCODING_SJIS ::
656 * Shift JIS encoding for Japanese. More info at
657 * 'https://en.wikipedia.org/wiki/Shift_JIS'. See note on multi-byte
658 * encodings below.
659 *
660 * FT_ENCODING_PRC ::
661 * Corresponds to encoding systems mainly for Simplified Chinese as
662 * used in People's Republic of China (PRC). The encoding layout is
663 * based on GB~2312 and its supersets GBK and GB~18030.
664 *
665 * FT_ENCODING_BIG5 ::
666 * Corresponds to an encoding system for Traditional Chinese as used in
667 * Taiwan and Hong Kong.
668 *
1749 *
1750 * bitmap ::
1751 * This field is used as a bitmap descriptor. Note that the address
1752 * and content of the bitmap buffer can change between calls of
1753 * @FT_Load_Glyph and a few other functions.
1754 *
1755 * bitmap_left ::
1756 * The bitmap's left bearing expressed in integer pixels.
1757 *
1758 * bitmap_top ::
1759 * The bitmap's top bearing expressed in integer pixels. This is the
1760 * distance from the baseline to the top-most glyph scanline, upwards
1761 * y~coordinates being **positive**.
1762 *
1763 * outline ::
1764 * The outline descriptor for the current glyph image if its format is
1765 * @FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, `outline` can be
1766 * transformed, distorted, emboldened, etc. However, it must not be
1767 * freed.
1768 *
1769 * [Since 2.10.1] If @FT_LOAD_NO_SCALE is set, outline coordinates of
1770 * OpenType variation fonts for a selected instance are internally
1771 * handled as 26.6 fractional font units but returned as (rounded)
1772 * integers, as expected. To get unrounded font units, don't use
1773 * @FT_LOAD_NO_SCALE but load the glyph with @FT_LOAD_NO_HINTING and
1774 * scale it, using the font's `units_per_EM` value as the ppem.
1775 *
1776 * num_subglyphs ::
1777 * The number of subglyphs in a composite glyph. This field is only
1778 * valid for the composite glyph format that should normally only be
1779 * loaded with the @FT_LOAD_NO_RECURSE flag.
1780 *
1781 * subglyphs ::
1782 * An array of subglyph descriptors for composite glyphs. There are
1783 * `num_subglyphs` elements in there. Currently internal to FreeType.
1784 *
1785 * control_data ::
1786 * Certain font drivers can also return the control data for a given
1787 * glyph image (e.g. TrueType bytecode, Type~1 charstrings, etc.).
1788 * This field is a pointer to such data; it is currently internal to
1789 * FreeType.
1790 *
1791 * control_len ::
1792 * This is the length in bytes of the control data. Currently internal
1793 * to FreeType.
1794 *
1795 * other ::
3923 /**************************************************************************
3924 *
3925 * @function:
3926 * FT_Get_Name_Index
3927 *
3928 * @description:
3929 * Return the glyph index of a given glyph name.
3930 *
3931 * @input:
3932 * face ::
3933 * A handle to the source face object.
3934 *
3935 * glyph_name ::
3936 * The glyph name.
3937 *
3938 * @return:
3939 * The glyph index. 0~means 'undefined character code'.
3940 */
3941 FT_EXPORT( FT_UInt )
3942 FT_Get_Name_Index( FT_Face face,
3943 const FT_String* glyph_name );
3944
3945
3946 /**************************************************************************
3947 *
3948 * @enum:
3949 * FT_SUBGLYPH_FLAG_XXX
3950 *
3951 * @description:
3952 * A list of constants describing subglyphs. Please refer to the 'glyf'
3953 * table description in the OpenType specification for the meaning of the
3954 * various flags (which get synthesized for non-OpenType subglyphs).
3955 *
3956 * https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description
3957 *
3958 * @values:
3959 * FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS ::
3960 * FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ::
3961 * FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID ::
3962 * FT_SUBGLYPH_FLAG_SCALE ::
3963 * FT_SUBGLYPH_FLAG_XY_SCALE ::
4764 *
4765 * @description:
4766 * These three macros identify the FreeType source code version. Use
4767 * @FT_Library_Version to access them at runtime.
4768 *
4769 * @values:
4770 * FREETYPE_MAJOR ::
4771 * The major version number.
4772 * FREETYPE_MINOR ::
4773 * The minor version number.
4774 * FREETYPE_PATCH ::
4775 * The patch level.
4776 *
4777 * @note:
4778 * The version number of FreeType if built as a dynamic link library with
4779 * the 'libtool' package is _not_ controlled by these three macros.
4780 *
4781 */
4782 #define FREETYPE_MAJOR 2
4783 #define FREETYPE_MINOR 10
4784 #define FREETYPE_PATCH 1
4785
4786
4787 /**************************************************************************
4788 *
4789 * @function:
4790 * FT_Library_Version
4791 *
4792 * @description:
4793 * Return the version of the FreeType library being used. This is useful
4794 * when dynamically linking to the library, since one cannot use the
4795 * macros @FREETYPE_MAJOR, @FREETYPE_MINOR, and @FREETYPE_PATCH.
4796 *
4797 * @input:
4798 * library ::
4799 * A source library handle.
4800 *
4801 * @output:
4802 * amajor ::
4803 * The major version number.
4804 *
|