< prev index next >

src/java.desktop/share/native/libfreetype/include/freetype/ftsnames.h

Print this page

        

*** 1,24 **** ! /***************************************************************************/ ! /* */ ! /* ftsnames.h */ ! /* */ ! /* Simple interface to access SFNT `name' tables (which are used */ ! /* to hold font names, copyright info, notices, etc.) (specification). */ ! /* */ ! /* This is _not_ used to retrieve glyph names! */ ! /* */ ! /* 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 FTSNAMES_H_ #define FTSNAMES_H_ --- 1,24 ---- ! /**************************************************************************** ! * ! * ftsnames.h ! * ! * Simple interface to access SFNT 'name' tables (which are used ! * to hold font names, copyright info, notices, etc.) (specification). ! * ! * This is _not_ used to retrieve glyph names! ! * ! * Copyright (C) 1996-2019 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 FTSNAMES_H_ #define FTSNAMES_H_
*** 35,110 **** FT_BEGIN_HEADER ! /*************************************************************************/ ! /* */ ! /* <Section> */ ! /* sfnt_names */ ! /* */ ! /* <Title> */ ! /* SFNT Names */ ! /* */ ! /* <Abstract> */ ! /* Access the names embedded in TrueType and OpenType files. */ ! /* */ ! /* <Description> */ ! /* The TrueType and OpenType specifications allow the inclusion of */ ! /* a special names table (`name') in font files. This table contains */ ! /* textual (and internationalized) information regarding the font, */ ! /* like family name, copyright, version, etc. */ ! /* */ ! /* The definitions below are used to access them if available. */ ! /* */ ! /* Note that this has nothing to do with glyph names! */ ! /* */ ! /*************************************************************************/ ! ! ! /*************************************************************************/ ! /* */ ! /* <Struct> */ ! /* FT_SfntName */ ! /* */ ! /* <Description> */ ! /* A structure used to model an SFNT `name' table entry. */ ! /* */ ! /* <Fields> */ ! /* platform_id :: The platform ID for `string'. */ ! /* See @TT_PLATFORM_XXX for possible values. */ ! /* */ ! /* encoding_id :: The encoding ID for `string'. */ ! /* See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, */ ! /* @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX */ ! /* for possible values. */ ! /* */ ! /* language_id :: The language ID for `string'. */ ! /* See @TT_MAC_LANGID_XXX and @TT_MS_LANGID_XXX for */ ! /* possible values. */ ! /* */ ! /* Registered OpenType values for `language_id' are */ ! /* always smaller than 0x8000; values equal or larger */ ! /* than 0x8000 usually indicate a language tag string */ ! /* (introduced in OpenType version 1.6). Use function */ ! /* @FT_Get_Sfnt_LangTag with `language_id' as its */ ! /* argument to retrieve the associated language tag. */ ! /* */ ! /* name_id :: An identifier for `string'. */ ! /* See @TT_NAME_ID_XXX for possible values. */ ! /* */ ! /* string :: The `name' string. Note that its format differs */ ! /* depending on the (platform,encoding) pair, being */ ! /* either a string of bytes (without a terminating */ ! /* NULL byte) or containing UTF-16BE entities. */ ! /* */ ! /* string_len :: The length of `string' in bytes. */ ! /* */ ! /* <Note> */ ! /* Please refer to the TrueType or OpenType specification for more */ ! /* details. */ ! /* */ typedef struct FT_SfntName_ { FT_UShort platform_id; FT_UShort encoding_id; FT_UShort language_id; --- 35,112 ---- FT_BEGIN_HEADER ! /************************************************************************** ! * ! * @section: ! * sfnt_names ! * ! * @title: ! * SFNT Names ! * ! * @abstract: ! * Access the names embedded in TrueType and OpenType files. ! * ! * @description: ! * The TrueType and OpenType specifications allow the inclusion of a ! * special names table ('name') in font files. This table contains ! * textual (and internationalized) information regarding the font, like ! * family name, copyright, version, etc. ! * ! * The definitions below are used to access them if available. ! * ! * Note that this has nothing to do with glyph names! ! * ! */ ! ! ! /************************************************************************** ! * ! * @struct: ! * FT_SfntName ! * ! * @description: ! * A structure used to model an SFNT 'name' table entry. ! * ! * @fields: ! * platform_id :: ! * The platform ID for `string`. See @TT_PLATFORM_XXX for possible ! * values. ! * ! * encoding_id :: ! * The encoding ID for `string`. See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX, ! * @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX for possible ! * values. ! * ! * language_id :: ! * The language ID for `string`. See @TT_MAC_LANGID_XXX and ! * @TT_MS_LANGID_XXX for possible values. ! * ! * Registered OpenType values for `language_id` are always smaller than ! * 0x8000; values equal or larger than 0x8000 usually indicate a ! * language tag string (introduced in OpenType version 1.6). Use ! * function @FT_Get_Sfnt_LangTag with `language_id` as its argument to ! * retrieve the associated language tag. ! * ! * name_id :: ! * An identifier for `string`. See @TT_NAME_ID_XXX for possible ! * values. ! * ! * string :: ! * The 'name' string. Note that its format differs depending on the ! * (platform,encoding) pair, being either a string of bytes (without a ! * terminating `NULL` byte) or containing UTF-16BE entities. ! * ! * string_len :: ! * The length of `string` in bytes. ! * ! * @note: ! * Please refer to the TrueType or OpenType specification for more ! * details. ! */ typedef struct FT_SfntName_ { FT_UShort platform_id; FT_UShort encoding_id; FT_UShort language_id;
*** 114,243 **** FT_UInt string_len; /* in bytes */ } FT_SfntName; ! /*************************************************************************/ ! /* */ ! /* <Function> */ ! /* FT_Get_Sfnt_Name_Count */ ! /* */ ! /* <Description> */ ! /* Retrieve the number of name strings in the SFNT `name' table. */ ! /* */ ! /* <Input> */ ! /* face :: A handle to the source face. */ ! /* */ ! /* <Return> */ ! /* The number of strings in the `name' table. */ ! /* */ FT_EXPORT( FT_UInt ) FT_Get_Sfnt_Name_Count( FT_Face face ); ! /*************************************************************************/ ! /* */ ! /* <Function> */ ! /* FT_Get_Sfnt_Name */ ! /* */ ! /* <Description> */ ! /* Retrieve a string of the SFNT `name' table for a given index. */ ! /* */ ! /* <Input> */ ! /* face :: A handle to the source face. */ ! /* */ ! /* idx :: The index of the `name' string. */ ! /* */ ! /* <Output> */ ! /* aname :: The indexed @FT_SfntName structure. */ ! /* */ ! /* <Return> */ ! /* FreeType error code. 0~means success. */ ! /* */ ! /* <Note> */ ! /* The `string' array returned in the `aname' structure is not */ ! /* null-terminated. Note that you don't have to deallocate `string' */ ! /* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ ! /* */ ! /* Use @FT_Get_Sfnt_Name_Count to get the total number of available */ ! /* `name' table entries, then do a loop until you get the right */ ! /* platform, encoding, and name ID. */ ! /* */ ! /* `name' table format~1 entries can use language tags also, see */ ! /* @FT_Get_Sfnt_LangTag. */ ! /* */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_Name( FT_Face face, FT_UInt idx, FT_SfntName *aname ); ! /*************************************************************************/ ! /* */ ! /* <Struct> */ ! /* FT_SfntLangTag */ ! /* */ ! /* <Description> */ ! /* A structure to model a language tag entry from an SFNT `name' */ ! /* table. */ ! /* */ ! /* <Fields> */ ! /* string :: The language tag string, encoded in UTF-16BE */ ! /* (without trailing NULL bytes). */ ! /* */ ! /* string_len :: The length of `string' in *bytes*. */ ! /* */ ! /* <Note> */ ! /* Please refer to the TrueType or OpenType specification for more */ ! /* details. */ ! /* */ ! /* <Since> */ ! /* 2.8 */ ! /* */ typedef struct FT_SfntLangTag_ { FT_Byte* string; /* this string is *not* null-terminated! */ FT_UInt string_len; /* in bytes */ } FT_SfntLangTag; ! /*************************************************************************/ ! /* */ ! /* <Function> */ ! /* FT_Get_Sfnt_LangTag */ ! /* */ ! /* <Description> */ ! /* Retrieve the language tag associated with a language ID of an SFNT */ ! /* `name' table entry. */ ! /* */ ! /* <Input> */ ! /* face :: A handle to the source face. */ ! /* */ ! /* langID :: The language ID, as returned by @FT_Get_Sfnt_Name. */ ! /* This is always a value larger than 0x8000. */ ! /* */ ! /* <Output> */ ! /* alangTag :: The language tag associated with the `name' table */ ! /* entry's language ID. */ ! /* */ ! /* <Return> */ ! /* FreeType error code. 0~means success. */ ! /* */ ! /* <Note> */ ! /* The `string' array returned in the `alangTag' structure is not */ ! /* null-terminated. Note that you don't have to deallocate `string' */ ! /* by yourself; FreeType takes care of it if you call @FT_Done_Face. */ ! /* */ ! /* Only `name' table format~1 supports language tags. For format~0 */ ! /* tables, this function always returns FT_Err_Invalid_Table. For */ ! /* invalid format~1 language ID values, FT_Err_Invalid_Argument is */ ! /* returned. */ ! /* */ ! /* <Since> */ ! /* 2.8 */ ! /* */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_LangTag( FT_Face face, FT_UInt langID, FT_SfntLangTag *alangTag ); --- 116,263 ---- FT_UInt string_len; /* in bytes */ } FT_SfntName; ! /************************************************************************** ! * ! * @function: ! * FT_Get_Sfnt_Name_Count ! * ! * @description: ! * Retrieve the number of name strings in the SFNT 'name' table. ! * ! * @input: ! * face :: ! * A handle to the source face. ! * ! * @return: ! * The number of strings in the 'name' table. ! * ! * @note: ! * This function always returns an error if the config macro ! * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. ! */ FT_EXPORT( FT_UInt ) FT_Get_Sfnt_Name_Count( FT_Face face ); ! /************************************************************************** ! * ! * @function: ! * FT_Get_Sfnt_Name ! * ! * @description: ! * Retrieve a string of the SFNT 'name' table for a given index. ! * ! * @input: ! * face :: ! * A handle to the source face. ! * ! * idx :: ! * The index of the 'name' string. ! * ! * @output: ! * aname :: ! * The indexed @FT_SfntName structure. ! * ! * @return: ! * FreeType error code. 0~means success. ! * ! * @note: ! * The `string` array returned in the `aname` structure is not ! * null-terminated. Note that you don't have to deallocate `string` by ! * yourself; FreeType takes care of it if you call @FT_Done_Face. ! * ! * Use @FT_Get_Sfnt_Name_Count to get the total number of available ! * 'name' table entries, then do a loop until you get the right platform, ! * encoding, and name ID. ! * ! * 'name' table format~1 entries can use language tags also, see ! * @FT_Get_Sfnt_LangTag. ! * ! * This function always returns an error if the config macro ! * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. ! */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_Name( FT_Face face, FT_UInt idx, FT_SfntName *aname ); ! /************************************************************************** ! * ! * @struct: ! * FT_SfntLangTag ! * ! * @description: ! * A structure to model a language tag entry from an SFNT 'name' table. ! * ! * @fields: ! * string :: ! * The language tag string, encoded in UTF-16BE (without trailing ! * `NULL` bytes). ! * ! * string_len :: ! * The length of `string` in **bytes**. ! * ! * @note: ! * Please refer to the TrueType or OpenType specification for more ! * details. ! * ! * @since: ! * 2.8 ! */ typedef struct FT_SfntLangTag_ { FT_Byte* string; /* this string is *not* null-terminated! */ FT_UInt string_len; /* in bytes */ } FT_SfntLangTag; ! /************************************************************************** ! * ! * @function: ! * FT_Get_Sfnt_LangTag ! * ! * @description: ! * Retrieve the language tag associated with a language ID of an SFNT ! * 'name' table entry. ! * ! * @input: ! * face :: ! * A handle to the source face. ! * ! * langID :: ! * The language ID, as returned by @FT_Get_Sfnt_Name. This is always a ! * value larger than 0x8000. ! * ! * @output: ! * alangTag :: ! * The language tag associated with the 'name' table entry's language ! * ID. ! * ! * @return: ! * FreeType error code. 0~means success. ! * ! * @note: ! * The `string` array returned in the `alangTag` structure is not ! * null-terminated. Note that you don't have to deallocate `string` by ! * yourself; FreeType takes care of it if you call @FT_Done_Face. ! * ! * Only 'name' table format~1 supports language tags. For format~0 ! * tables, this function always returns FT_Err_Invalid_Table. For ! * invalid format~1 language ID values, FT_Err_Invalid_Argument is ! * returned. ! * ! * This function always returns an error if the config macro ! * `TT_CONFIG_OPTION_SFNT_NAMES` is not defined in `ftoption.h`. ! * ! * @since: ! * 2.8 ! */ FT_EXPORT( FT_Error ) FT_Get_Sfnt_LangTag( FT_Face face, FT_UInt langID, FT_SfntLangTag *alangTag );
< prev index next >