@ -46,21 +46,21 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* Note that we separate font data in T1_FontInfo and T1_Private */
/* structures in order to support Multiple Master fonts. */
/* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
/* structures in order to support Multiple Master fonts. */
/*************************************************************************/
/* */
/* <Struct> */
/* T1_FontInfo */
/* PS_FontInfoRec */
/* */
/* <Description> */
/* A structure used to model a Type1/Type2 FontInfo dictionary. Note */
/* that for Multiple Master fonts, each instance has its own */
/* FontInfo. */
/* */
typedef struct T1_FontInfo
typedef struct PS_FontInfoRec
{
FT_String * version ;
FT_String * notice ;
@ -72,20 +72,33 @@ FT_BEGIN_HEADER
FT_Short underline_position ;
FT_UShort underline_thickness ;
} T1 _FontInfo;
} PS_FontInfoRec , * PS _FontInfo;
/*************************************************************************/
/* */
/* <Struct> */
/* T1_Private */
/* T1_FontInfo */
/* */
/* <Description> */
/* A structure used to model a Type1/Type2 FontInfo dictionary. Note */
/* this type is equivalent to @PS_FontInfoRec but has been deprecated */
/* it is 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 Type1/Type2 private dictionary. Note */
/* that for Multiple Master fonts, each instance has its own Private */
/* dict. */
/* */
typedef struct T1_Private
typedef struct PS_PrivateRec_
{
FT_Int unique_id ;
FT_Int lenIV ;
@ -121,7 +134,20 @@ FT_BEGIN_HEADER
FT_Short min_feature [ 2 ] ;
} T1_Private ;
} PS_PrivateRec , * PS_Private ;
/*************************************************************************/
/* */
/* <Struct> */
/* T1_Private */
/* */
/* <Description> */
/* this type is equivalent to @PS_PrivateRec but has been deprecated */
/* it is kept to maintain source compatibility between various */
/* versions of FreeType */
/* */
typedef PS_PrivateRec T1_Private ;
/*************************************************************************/
@ -137,29 +163,47 @@ FT_BEGIN_HEADER
typedef enum
{
/*# required fields in a FontInfo blend dictionary */
t1_blend_underline_position = 0 ,
t1_blend_underline_thickness ,
t1_blend_italic_angle ,
T1_BLEND_UNDERLINE_POSITION = 0 ,
T1_BLEND_UNDERLINE_THICKNESS ,
T1_BLEND_ITALIC_ANGLE ,
/*# required fields in a Private blend dictionary */
t1_blend_blue_values ,
t1_blend_other_blues ,
t1_blend_standard_width ,
t1_blend_standard_height ,
t1_blend_stem_snap_widths ,
t1_blend_stem_snap_heights ,
t1_blend_blue_scale ,
t1_blend_blue_shift ,
t1_blend_family_blues ,
t1_blend_family_other_blues ,
t1_blend_force_bold ,
T1_BLEND_BLUE_VALUES ,
T1_BLEND_OTHER_BLUES ,
T1_BLEND_STANDARD_WIDTH ,
T1_BLEND_STANDARD_HEIGHT ,
T1_BLEND_STEM_SNAP_WIDTHS ,
T1_BLEND_STEM_SNAP_HEIGHTS ,
T1_BLEND_BLUE_SCALE ,
T1_BLEND_BLUE_SHIFT ,
T1_BLEND_FAMILY_BLUES ,
T1_BLEND_FAMILY_OTHER_BLUES ,
T1_BLEND_FORCE_BOLD ,
/*# never remove */
t1_blend_max
T1_BLEND_MAX
} T1_Blend_Flags ;
/* 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
# define t1_blend_blue_values T1_BLEND_BLUE_VALUES
# define t1_blend_other_blues T1_BLEND_OTHER_BLUES
# define t1_blend_standard_widths T1_BLEND_STANDARD_WIDTH
# define t1_blend_standard_height T1_BLEND_STANDARD_HEIGHT
# define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS
# define t1_blend_stem_snap_heights T1_BLEND_STEM_SNAP_HEIGHTS
# define t1_blend_blue_scale T1_BLEND_BLUE_SCALE
# define t1_blend_blue_shift T1_BLEND_BLUE_SHIFT
# define t1_blend_family_blues T1_BLEND_FAMILY_BLUES
# define t1_blend_family_other_blues T1_BLEND_FAMILY_OTHER_BLUES
# define t1_blend_force_bold T1_BLEND_FORCE_BOLD
# define t1_blend_max T1_BELND_MAX
/* maximum number of Multiple Masters designs, as defined in the spec */
# define T1_MAX_MM_DESIGNS 16
@ -171,87 +215,110 @@ FT_BEGIN_HEADER
/* this structure is used to store the BlendDesignMap entry for an axis */
typedef struct T1 _DesignMap_
typedef struct PS _DesignMap_
{
FT_Byte num_points ;
FT_Fixed * design_points ;
FT_Fixed * blend_points ;
} T1_DesignMap ;
} PS_DesignMapRec , * PS_DesignMap ;
/* backwards-compatible definition */
typedef PS_DesignMapRec T1_DesignMap ;
typedef struct T1_Blend_
typedef struct PS_BlendRec _
{
FT_UInt num_designs ;
FT_UInt num_axis ;
FT_UInt num_designs ;
FT_UInt num_axis ;
FT_String * axis_names [ T1_MAX_MM_AXIS ] ;
FT_Fixed * design_pos [ T1_MAX_MM_DESIGNS ] ;
PS_DesignMapRec design_map [ T1_MAX_MM_AXIS ] ;
FT_Fixed * weight_vector ;
FT_Fixed * default_weight_vector ;
FT_String * axis_names [ T1_MAX_MM_AXIS ] ;
FT_Fixed * design_pos [ T1_MAX_MM_DESIGNS ] ;
T1_DesignMap design_map [ T1_MAX_MM_AXIS ] ;
PS_FontInfo font_infos [ T1_MAX_MM_DESIGNS + 1 ] ;
PS_Private privates [ T1_MAX_MM_DESIGNS + 1 ] ;
FT_Fixed * weight_vector ;
FT_Fixed * default_weight_vector ;
FT_ULong blend_bitflags ;
T1_FontInfo * font_infos [ T1_MAX_MM_DESIGNS + 1 ] ;
T1_Private * privates [ T1_MAX_MM_DESIGNS + 1 ] ;
} PS_BlendRec , * PS_Blend ;
FT_ULong blend_bitflags ;
} T1_Blend ;
/* backwards-compatible definition */
typedef PS_BlendRec T1_Blend ;
typedef struct CID_FontDict _
typedef struct CID_FaceDictRec _
{
T1_Private private_dict ;
PS_PrivateRec private_dict ;
FT_UInt len_buildchar ;
FT_Fixed forcebold_threshold ;
FT_Pos stroke_width ;
FT_Fixed expansion_factor ;
FT_UInt len_buildchar ;
FT_Fixed forcebold_threshold ;
FT_Pos stroke_width ;
FT_Fixed expansion_factor ;
FT_Byte paint_type ;
FT_Byte font_type ;
FT_Matrix font_matrix ;
FT_Vector font_offset ;
FT_Byte paint_type ;
FT_Byte font_type ;
FT_Matrix font_matrix ;
FT_Vector font_offset ;
FT_UInt num_subrs ;
FT_ULong subrmap_offset ;
FT_Int sd_bytes ;
FT_UInt num_subrs ;
FT_ULong subrmap_offset ;
FT_Int sd_bytes ;
} CID_Font Dict ;
} CID_FaceDictRec , * CID_Face Dict ;
typedef struct CID_Info_
/* backwards-compatible definition */
typedef CID_FaceDictRec CID_FontDict ;
typedef struct CID_FaceInfoRec_
{
FT_String * cid_font_name ;
FT_Fixed cid_version ;
FT_Int cid_font_type ;
FT_String * cid_font_name ;
FT_Fixed cid_version ;
FT_Int cid_font_type ;
FT_String * registry ;
FT_String * ordering ;
FT_Int supplement ;
FT_String * registry ;
FT_String * ordering ;
FT_Int supplement ;
T1_FontInfo font_info ;
FT_BBox font_bbox ;
FT_ULong uid_base ;
PS_FontInfoRec font_info ;
FT_BBox font_bbox ;
FT_ULong uid_base ;
FT_Int num_xuid ;
FT_ULong xuid [ 16 ] ;
FT_Int num_xuid ;
FT_ULong xuid [ 16 ] ;
FT_ULong cidmap_offset ;
FT_Int fd_bytes ;
FT_Int gd_bytes ;
FT_ULong cid_count ;
FT_ULong cidmap_offset ;
FT_Int fd_bytes ;
FT_Int gd_bytes ;
FT_ULong cid_count ;
FT_Int num_dicts ;
CID_FontDict * font_dicts ;
FT_Int num_dicts ;
CID_FaceDict font_dicts ;
FT_ULong data_offset ;
FT_ULong data_offset ;
} CID_Info ;
} CID_FaceInfoRec , * CID_Face Info ;
/*************************************************************************/
/* */
/* <Struct> */
/* CID_Info */
/* */
/* <Description> */
/* this type is equivalent to @CID_FaceInfoRec but has been deprecated */
/* it is kept to maintain source compatibility between various */
/* versions of FreeType */
/* */
typedef CID_FaceInfoRec CID_Info ;
/* */