diff options
Diffstat (limited to 'thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h')
-rwxr-xr-x | thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h | 747 |
1 files changed, 369 insertions, 378 deletions
diff --git a/thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h b/thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h index a14255e..5a68750 100755 --- a/thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h +++ b/thirdparties/common/include/libfreetype/freetype2/freetype/t1tables.h @@ -34,40 +34,39 @@ FT_BEGIN_HEADER - /*************************************************************************/ - /* */ - /* <Section> */ - /* type1_tables */ - /* */ - /* <Title> */ - /* Type 1 Tables */ - /* */ - /* <Abstract> */ - /* Type~1 (PostScript) specific font tables. */ - /* */ - /* <Description> */ - /* This section contains the definition of Type 1-specific tables, */ - /* including structures related to other PostScript font formats. */ - /* */ - /*************************************************************************/ - - - /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ - /* structures in order to support Multiple Master fonts. */ - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfoRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* FontInfo dictionary. */ - /* */ - typedef struct PS_FontInfoRec_ - { +/*************************************************************************/ +/* */ +/* <Section> */ +/* type1_tables */ +/* */ +/* <Title> */ +/* Type 1 Tables */ +/* */ +/* <Abstract> */ +/* Type~1 (PostScript) specific font tables. */ +/* */ +/* <Description> */ +/* This section contains the definition of Type 1-specific tables, */ +/* including structures related to other PostScript font formats. */ +/* */ +/*************************************************************************/ + + +/* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */ +/* structures in order to support Multiple Master fonts. */ + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* PS_FontInfoRec */ +/* */ +/* <Description> */ +/* A structure used to model a Type~1 or Type~2 FontInfo dictionary. */ +/* Note that for Multiple Master fonts, each instance has its own */ +/* FontInfo dictionary. */ +/* */ +typedef struct PS_FontInfoRec_ { FT_String* version; FT_String* notice; FT_String* full_name; @@ -78,45 +77,44 @@ FT_BEGIN_HEADER FT_Short underline_position; FT_UShort underline_thickness; - } PS_FontInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_FontInfo */ - /* */ - /* <Description> */ - /* A handle to a @PS_FontInfoRec structure. */ - /* */ - typedef struct PS_FontInfoRec_* PS_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_FontInfo */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_FontInfoRec T1_FontInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_PrivateRec */ - /* */ - /* <Description> */ - /* A structure used to model a Type~1 or Type~2 private dictionary. */ - /* Note that for Multiple Master fonts, each instance has its own */ - /* Private dictionary. */ - /* */ - typedef struct PS_PrivateRec_ - { +} PS_FontInfoRec; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* PS_FontInfo */ +/* */ +/* <Description> */ +/* A handle to a @PS_FontInfoRec structure. */ +/* */ +typedef struct PS_FontInfoRec_* PS_FontInfo; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* T1_FontInfo */ +/* */ +/* <Description> */ +/* This type is equivalent to @PS_FontInfoRec. It is deprecated but */ +/* kept to maintain source compatibility between various versions of */ +/* FreeType. */ +/* */ +typedef PS_FontInfoRec T1_FontInfo; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* PS_PrivateRec */ +/* */ +/* <Description> */ +/* A structure used to model a Type~1 or Type~2 private dictionary. */ +/* Note that for Multiple Master fonts, each instance has its own */ +/* Private dictionary. */ +/* */ +typedef struct PS_PrivateRec_ { FT_Int unique_id; FT_Int lenIV; @@ -153,45 +151,44 @@ FT_BEGIN_HEADER FT_Short min_feature[2]; - } PS_PrivateRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* PS_Private */ - /* */ - /* <Description> */ - /* A handle to a @PS_PrivateRec structure. */ - /* */ - typedef struct PS_PrivateRec_* PS_Private; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* T1_Private */ - /* */ - /* <Description> */ - /* This type is equivalent to @PS_PrivateRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef PS_PrivateRec T1_Private; - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_Blend_Flags */ - /* */ - /* <Description> */ - /* A set of flags used to indicate which fields are present in a */ - /* given blend dictionary (font info or private). Used to support */ - /* Multiple Masters fonts. */ - /* */ - typedef enum T1_Blend_Flags_ - { +} PS_PrivateRec; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* PS_Private */ +/* */ +/* <Description> */ +/* A handle to a @PS_PrivateRec structure. */ +/* */ +typedef struct PS_PrivateRec_* PS_Private; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* T1_Private */ +/* */ +/* <Description> */ +/* This type is equivalent to @PS_PrivateRec. It is deprecated but */ +/* kept to maintain source compatibility between various versions of */ +/* FreeType. */ +/* */ +typedef PS_PrivateRec T1_Private; + + +/*************************************************************************/ +/* */ +/* <Enum> */ +/* T1_Blend_Flags */ +/* */ +/* <Description> */ +/* A set of flags used to indicate which fields are present in a */ +/* given blend dictionary (font info or private). Used to support */ +/* Multiple Masters fonts. */ +/* */ +typedef enum T1_Blend_Flags_ { /*# required fields in a FontInfo blend dictionary */ T1_BLEND_UNDERLINE_POSITION = 0, T1_BLEND_UNDERLINE_THICKNESS, @@ -213,12 +210,12 @@ FT_BEGIN_HEADER /*# never remove */ T1_BLEND_MAX - } T1_Blend_Flags; +} T1_Blend_Flags; - /* */ +/* */ - /*# backwards compatible definitions */ +/*# backwards compatible definitions */ #define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION #define t1_blend_underline_thickness T1_BLEND_UNDERLINE_THICKNESS #define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE @@ -236,31 +233,29 @@ FT_BEGIN_HEADER #define t1_blend_max T1_BLEND_MAX - /* maximum number of Multiple Masters designs, as defined in the spec */ +/* maximum number of Multiple Masters designs, as defined in the spec */ #define T1_MAX_MM_DESIGNS 16 - /* maximum number of Multiple Masters axes, as defined in the spec */ +/* maximum number of Multiple Masters axes, as defined in the spec */ #define T1_MAX_MM_AXIS 4 - /* maximum number of elements in a design map */ +/* maximum number of elements in a design map */ #define T1_MAX_MM_MAP_POINTS 20 - /* this structure is used to store the BlendDesignMap entry for an axis */ - typedef struct PS_DesignMap_ - { +/* this structure is used to store the BlendDesignMap entry for an axis */ +typedef struct PS_DesignMap_ { FT_Byte num_points; FT_Long* design_points; FT_Fixed* blend_points; - } PS_DesignMapRec, *PS_DesignMap; +} PS_DesignMapRec, *PS_DesignMap; - /* backwards-compatible definition */ - typedef PS_DesignMapRec T1_DesignMap; +/* backwards-compatible definition */ +typedef PS_DesignMapRec T1_DesignMap; - typedef struct PS_BlendRec_ - { +typedef struct PS_BlendRec_ { FT_UInt num_designs; FT_UInt num_axis; @@ -287,23 +282,22 @@ FT_BEGIN_HEADER FT_UInt default_design_vector[T1_MAX_MM_DESIGNS]; FT_UInt num_default_design_vector; - } PS_BlendRec, *PS_Blend; +} PS_BlendRec, *PS_Blend; - /* backwards-compatible definition */ - typedef PS_BlendRec T1_Blend; +/* backwards-compatible definition */ +typedef PS_BlendRec T1_Blend; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDictRec */ - /* */ - /* <Description> */ - /* A structure used to represent data in a CID top-level dictionary. */ - /* */ - typedef struct CID_FaceDictRec_ - { +/*************************************************************************/ +/* */ +/* <Struct> */ +/* CID_FaceDictRec */ +/* */ +/* <Description> */ +/* A structure used to represent data in a CID top-level dictionary. */ +/* */ +typedef struct CID_FaceDictRec_ { PS_PrivateRec private_dict; FT_UInt len_buildchar; @@ -320,36 +314,35 @@ FT_BEGIN_HEADER FT_ULong subrmap_offset; FT_Int sd_bytes; - } CID_FaceDictRec; +} CID_FaceDictRec; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceDict */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceDictRec structure. */ - /* */ - typedef struct CID_FaceDictRec_* CID_FaceDict; +/*************************************************************************/ +/* */ +/* <Struct> */ +/* CID_FaceDict */ +/* */ +/* <Description> */ +/* A handle to a @CID_FaceDictRec structure. */ +/* */ +typedef struct CID_FaceDictRec_* CID_FaceDict; - /* */ +/* */ - /* backwards-compatible definition */ - typedef CID_FaceDictRec CID_FontDict; +/* backwards-compatible definition */ +typedef CID_FaceDictRec CID_FontDict; - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfoRec */ - /* */ - /* <Description> */ - /* A structure used to represent CID Face information. */ - /* */ - typedef struct CID_FaceInfoRec_ - { +/*************************************************************************/ +/* */ +/* <Struct> */ +/* CID_FaceInfoRec */ +/* */ +/* <Description> */ +/* A structure used to represent CID Face information. */ +/* */ +typedef struct CID_FaceInfoRec_ { FT_String* cid_font_name; FT_Fixed cid_version; FT_Int cid_font_type; @@ -375,156 +368,154 @@ FT_BEGIN_HEADER FT_ULong data_offset; - } CID_FaceInfoRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_FaceInfo */ - /* */ - /* <Description> */ - /* A handle to a @CID_FaceInfoRec structure. */ - /* */ - typedef struct CID_FaceInfoRec_* CID_FaceInfo; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* CID_Info */ - /* */ - /* <Description> */ - /* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ - /* kept to maintain source compatibility between various versions of */ - /* FreeType. */ - /* */ - typedef CID_FaceInfoRec CID_Info; - - - /************************************************************************ - * - * @function: - * FT_Has_PS_Glyph_Names - * - * @description: - * Return true if a given face provides reliable PostScript glyph - * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, - * except that certain fonts (mostly TrueType) contain incorrect - * glyph name tables. - * - * When this function returns true, the caller is sure that the glyph - * names returned by @FT_Get_Glyph_Name are reliable. - * - * @input: - * face :: - * face handle - * - * @return: - * Boolean. True if glyph names are reliable. - * - */ - FT_EXPORT( FT_Int ) - FT_Has_PS_Glyph_Names( FT_Face face ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Info - * - * @description: - * Retrieve the @PS_FontInfoRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_info :: - * Output font info structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the font info structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function will - * return the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Info( FT_Face face, - PS_FontInfo afont_info ); - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Private - * - * @description: - * Retrieve the @PS_PrivateRec structure corresponding to a given - * PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * @output: - * afont_private :: - * Output private dictionary structure pointer. - * - * @return: - * FreeType error code. 0~means success. - * - * @note: - * The string pointers within the @PS_PrivateRec structure are owned by - * the face and don't need to be freed by the caller. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Error ) - FT_Get_PS_Font_Private( FT_Face face, - PS_Private afont_private ); - - - /*************************************************************************/ - /* */ - /* <Enum> */ - /* T1_EncodingType */ - /* */ - /* <Description> */ - /* An enumeration describing the `Encoding' entry in a Type 1 */ - /* dictionary. */ - /* */ - typedef enum T1_EncodingType_ - { +} CID_FaceInfoRec; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* CID_FaceInfo */ +/* */ +/* <Description> */ +/* A handle to a @CID_FaceInfoRec structure. */ +/* */ +typedef struct CID_FaceInfoRec_* CID_FaceInfo; + + +/*************************************************************************/ +/* */ +/* <Struct> */ +/* CID_Info */ +/* */ +/* <Description> */ +/* This type is equivalent to @CID_FaceInfoRec. It is deprecated but */ +/* kept to maintain source compatibility between various versions of */ +/* FreeType. */ +/* */ +typedef CID_FaceInfoRec CID_Info; + + +/************************************************************************ + * + * @function: + * FT_Has_PS_Glyph_Names + * + * @description: + * Return true if a given face provides reliable PostScript glyph + * names. This is similar to using the @FT_HAS_GLYPH_NAMES macro, + * except that certain fonts (mostly TrueType) contain incorrect + * glyph name tables. + * + * When this function returns true, the caller is sure that the glyph + * names returned by @FT_Get_Glyph_Name are reliable. + * + * @input: + * face :: + * face handle + * + * @return: + * Boolean. True if glyph names are reliable. + * + */ +FT_EXPORT( FT_Int ) +FT_Has_PS_Glyph_Names( FT_Face face ); + + +/************************************************************************ + * + * @function: + * FT_Get_PS_Font_Info + * + * @description: + * Retrieve the @PS_FontInfoRec structure corresponding to a given + * PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * @output: + * afont_info :: + * Output font info structure pointer. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The string pointers within the font info structure are owned by + * the face and don't need to be freed by the caller. + * + * If the font's format is not PostScript-based, this function will + * return the `FT_Err_Invalid_Argument' error code. + * + */ +FT_EXPORT( FT_Error ) +FT_Get_PS_Font_Info( FT_Face face, + PS_FontInfo afont_info ); + + +/************************************************************************ + * + * @function: + * FT_Get_PS_Font_Private + * + * @description: + * Retrieve the @PS_PrivateRec structure corresponding to a given + * PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * @output: + * afont_private :: + * Output private dictionary structure pointer. + * + * @return: + * FreeType error code. 0~means success. + * + * @note: + * The string pointers within the @PS_PrivateRec structure are owned by + * the face and don't need to be freed by the caller. + * + * If the font's format is not PostScript-based, this function returns + * the `FT_Err_Invalid_Argument' error code. + * + */ +FT_EXPORT( FT_Error ) +FT_Get_PS_Font_Private( FT_Face face, + PS_Private afont_private ); + + +/*************************************************************************/ +/* */ +/* <Enum> */ +/* T1_EncodingType */ +/* */ +/* <Description> */ +/* An enumeration describing the `Encoding' entry in a Type 1 */ +/* dictionary. */ +/* */ +typedef enum T1_EncodingType_ { T1_ENCODING_TYPE_NONE = 0, T1_ENCODING_TYPE_ARRAY, T1_ENCODING_TYPE_STANDARD, T1_ENCODING_TYPE_ISOLATIN1, T1_ENCODING_TYPE_EXPERT - } T1_EncodingType; +} T1_EncodingType; - /*************************************************************************/ - /* */ - /* <Enum> */ - /* PS_Dict_Keys */ - /* */ - /* <Description> */ - /* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ - /* the Type~1 dictionary entry to retrieve. */ - /* */ - typedef enum PS_Dict_Keys_ - { +/*************************************************************************/ +/* */ +/* <Enum> */ +/* PS_Dict_Keys */ +/* */ +/* <Description> */ +/* An enumeration used in calls to @FT_Get_PS_Font_Value to identify */ +/* the Type~1 dictionary entry to retrieve. */ +/* */ +typedef enum PS_Dict_Keys_ { /* conventionally in the font dictionary */ PS_DICT_FONT_TYPE, /* FT_Byte */ PS_DICT_FONT_MATRIX, /* FT_Fixed */ @@ -579,80 +570,80 @@ FT_BEGIN_HEADER PS_DICT_MAX = PS_DICT_ITALIC_ANGLE - } PS_Dict_Keys; - - - /************************************************************************ - * - * @function: - * FT_Get_PS_Font_Value - * - * @description: - * Retrieve the value for the supplied key from a PostScript font. - * - * @input: - * face :: - * PostScript face handle. - * - * key :: - * An enumeration value representing the dictionary key to retrieve. - * - * idx :: - * For array values, this specifies the index to be returned. - * - * value :: - * A pointer to memory into which to write the value. - * - * valen_len :: - * The size, in bytes, of the memory supplied for the value. - * - * @output: - * value :: - * The value matching the above key, if it exists. - * - * @return: - * The amount of memory (in bytes) required to hold the requested - * value (if it exists, -1 otherwise). - * - * @note: - * The values returned are not pointers into the internal structures of - * the face, but are `fresh' copies, so that the memory containing them - * belongs to the calling application. This also enforces the - * `read-only' nature of these values, i.e., this function cannot be - * used to manipulate the face. - * - * `value' is a void pointer because the values returned can be of - * various types. - * - * If either `value' is NULL or `value_len' is too small, just the - * required memory size for the requested entry is returned. - * - * The `idx' parameter is used, not only to retrieve elements of, for - * example, the FontMatrix or FontBBox, but also to retrieve name keys - * from the CharStrings dictionary, and the charstrings themselves. It - * is ignored for atomic values. - * - * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To - * get the value as in the font stream, you need to divide by - * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). - * - * IMPORTANT: Only key/value pairs read by the FreeType interpreter can - * be retrieved. So, for example, PostScript procedures such as NP, - * ND, and RD are not available. Arbitrary keys are, obviously, not be - * available either. - * - * If the font's format is not PostScript-based, this function returns - * the `FT_Err_Invalid_Argument' error code. - * - */ - FT_EXPORT( FT_Long ) - FT_Get_PS_Font_Value( FT_Face face, - PS_Dict_Keys key, - FT_UInt idx, - void *value, - FT_Long value_len ); - - /* */ +} PS_Dict_Keys; + + +/************************************************************************ + * + * @function: + * FT_Get_PS_Font_Value + * + * @description: + * Retrieve the value for the supplied key from a PostScript font. + * + * @input: + * face :: + * PostScript face handle. + * + * key :: + * An enumeration value representing the dictionary key to retrieve. + * + * idx :: + * For array values, this specifies the index to be returned. + * + * value :: + * A pointer to memory into which to write the value. + * + * valen_len :: + * The size, in bytes, of the memory supplied for the value. + * + * @output: + * value :: + * The value matching the above key, if it exists. + * + * @return: + * The amount of memory (in bytes) required to hold the requested + * value (if it exists, -1 otherwise). + * + * @note: + * The values returned are not pointers into the internal structures of + * the face, but are `fresh' copies, so that the memory containing them + * belongs to the calling application. This also enforces the + * `read-only' nature of these values, i.e., this function cannot be + * used to manipulate the face. + * + * `value' is a void pointer because the values returned can be of + * various types. + * + * If either `value' is NULL or `value_len' is too small, just the + * required memory size for the requested entry is returned. + * + * The `idx' parameter is used, not only to retrieve elements of, for + * example, the FontMatrix or FontBBox, but also to retrieve name keys + * from the CharStrings dictionary, and the charstrings themselves. It + * is ignored for atomic values. + * + * PS_DICT_BLUE_SCALE returns a value that is scaled up by 1000. To + * get the value as in the font stream, you need to divide by + * 65536000.0 (to remove the FT_Fixed scale, and the x1000 scale). + * + * IMPORTANT: Only key/value pairs read by the FreeType interpreter can + * be retrieved. So, for example, PostScript procedures such as NP, + * ND, and RD are not available. Arbitrary keys are, obviously, not be + * available either. + * + * If the font's format is not PostScript-based, this function returns + * the `FT_Err_Invalid_Argument' error code. + * + */ +FT_EXPORT( FT_Long ) +FT_Get_PS_Font_Value( FT_Face face, + PS_Dict_Keys key, + FT_UInt idx, + void *value, + FT_Long value_len ); + +/* */ FT_END_HEADER |