[SOLVED] CS interpreter /***************************************************************************/

$25

File Name: CS_interpreter_/***************************************************************************/.zip
File Size: 866.64 KB

5/5 - (1 vote)

/***************************************************************************/
/* */
/*t1tables.h */
/* */
/*Basic Type 1/Type 2 tables definitions and interface (specification*/
/*only). */
/* */
/*Copyright 1996-2015 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 __T1TABLES_H__
#define __T1TABLES_H__

#include
#include FT_FREETYPE_H

#ifdef FREETYPE_H
#error freetype.h of FreeType 1 has been loaded!
#error Please fix the directory search order for header files
#error so that freetype.h of FreeType 2 is found first.
#endif

FT_BEGIN_HEADER

/*************************************************************************/
/* */
/*

*/
/*type1_tables */
/* */
/* */<br />/*Type 1 Tables*/<br />/* */<br />/*<abstract> */ <br /> /*Type~1 (PostScript) specific font tables.*/ <br /> /* */ <br /> /* <description>*/<br />/*This section contains the definition of Type 1-specific tables,*/<br />/*including structures related to other PostScript font formats. */<br />/* */<br />/*<order> */ <br /> /*PS_FontInfoRec */ <br /> /*PS_FontInfo*/ <br /> /*PS_PrivateRec*/ <br /> /*PS_Private */ <br /> /* */ <br /> /*CID_FaceDictRec*/ <br /> /*CID_FaceDict */ <br /> /*CID_FaceInfoRec*/ <br /> /*CID_FaceInfo */ <br /> /* */ <br /> /*FT_Has_PS_Glyph_Names*/ <br /> /*FT_Get_PS_Font_Info*/ <br /> /*FT_Get_PS_Font_Private */ <br /> /*FT_Get_PS_Font_Value */ <br /> /* */ <br /> /*T1_Blend_Flags */ <br /> /*T1_EncodingType*/ <br /> /*PS_Dict_Keys */ <br /> /* */ <br /> /*************************************************************************/</order> </description></abstract>

/* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
/* structures in order to support Multiple Master fonts. */

/*************************************************************************/
/* */
/* */
/*PS_FontInfoRec */
/* */
/* */
/*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 structPS_FontInfoRec_
{
FT_String*version;
FT_String*notice;
FT_String*full_name;
FT_String*family_name;
FT_String*weight;
FT_Long italic_angle;
FT_Bool is_fixed_pitch;
FT_Shortunderline_position;
FT_UShort underline_thickness;

} PS_FontInfoRec;

/*************************************************************************/
/* */
/* */
/*PS_FontInfo*/
/* */
/* */
/*A handle to a @PS_FontInfoRec structure. */
/* */
typedef struct PS_FontInfoRec_*PS_FontInfo;

/*************************************************************************/
/* */
/* */
/*T1_FontInfo*/
/* */
/* */
/*This type is equivalent to @PS_FontInfoRec.It is deprecated but*/
/*kept to maintain source compatibility between various versions of*/
/*FreeType.*/
/* */
typedef PS_FontInfoRecT1_FontInfo;

/*************************************************************************/
/* */
/* */
/*PS_PrivateRec*/
/* */
/* */
/*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 structPS_PrivateRec_
{
FT_Int unique_id;
FT_Int lenIV;

FT_Bytenum_blue_values;
FT_Bytenum_other_blues;
FT_Bytenum_family_blues;
FT_Bytenum_family_other_blues;

FT_Short blue_values[14];
FT_Short other_blues[10];

FT_Short family_blues[14];
FT_Short family_other_blues[10];

FT_Fixed blue_scale;
FT_Int blue_shift;
FT_Int blue_fuzz;

FT_UShortstandard_width[1];
FT_UShortstandard_height[1];

FT_Bytenum_snap_widths;
FT_Bytenum_snap_heights;
FT_Boolforce_bold;
FT_Boolround_stem_up;

FT_Short snap_widths [13];/* including std width*/
FT_Short snap_heights[13];/* including std height */

FT_Fixed expansion_factor;

FT_Longlanguage_group;
FT_Longpassword;

FT_Short min_feature[2];

} PS_PrivateRec;

/*************************************************************************/
/* */
/* */
/*PS_Private */
/* */
/* */
/*A handle to a @PS_PrivateRec structure.*/
/* */
typedef struct PS_PrivateRec_*PS_Private;

/*************************************************************************/
/* */
/* */
/*T1_Private */
/* */
/* */
/* This type is equivalent to @PS_PrivateRec.It is deprecated but*/
/* kept to maintain source compatibility between various versions of */
/* FreeType. */
/* */
typedef PS_PrivateRecT1_Private;

/*************************************************************************/
/* */
/* */
/*T1_Blend_Flags */
/* */
/* */
/*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.*/
/* */
/* */
/*T1_BLEND_UNDERLINE_POSITION :: */
/*T1_BLEND_UNDERLINE_THICKNESS ::*/
/*T1_BLEND_ITALIC_ANGLE :: */
/*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 :: */
/* */
typedef enumT1_Blend_Flags_
{
/* required fields in a FontInfo blend dictionary */
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_MAX/* do not remove */

} T1_Blend_Flags;

/* these constants are deprecated; use the corresponding */
/* `T1_Blend_Flags values instead */
#define t1_blend_underline_position T1_BLEND_UNDERLINE_POSITION
#define t1_blend_underline_thicknessT1_BLEND_UNDERLINE_THICKNESS
#define t1_blend_italic_angle T1_BLEND_ITALIC_ANGLE
#define t1_blend_blue_valuesT1_BLEND_BLUE_VALUES
#define t1_blend_other_bluesT1_BLEND_OTHER_BLUES
#define t1_blend_standard_widthsT1_BLEND_STANDARD_WIDTH
#define t1_blend_standard_heightT1_BLEND_STANDARD_HEIGHT
#define t1_blend_stem_snap_widths T1_BLEND_STEM_SNAP_WIDTHS
#define t1_blend_stem_snap_heightsT1_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_maxT1_BLEND_MAX

/* */

/* 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 */
#define T1_MAX_MM_AXIS4

/* maximum number of elements in a design map */
#define T1_MAX_MM_MAP_POINTS20

/* this structure is used to store the BlendDesignMap entry for an axis */
typedef structPS_DesignMap_
{
FT_Bytenum_points;
FT_Long* design_points;
FT_Fixed*blend_points;

} PS_DesignMapRec, *PS_DesignMap;

/* backwards-compatible definition */
typedef PS_DesignMapRecT1_DesignMap;

typedef structPS_BlendRec_
{
FT_UIntnum_designs;
FT_UIntnum_axis;

FT_String* axis_names[T1_MAX_MM_AXIS];
FT_Fixed*design_pos[T1_MAX_MM_DESIGNS];
PS_DesignMapRecdesign_map[T1_MAX_MM_AXIS];

FT_Fixed*weight_vector;
FT_Fixed*default_weight_vector;

PS_FontInfofont_infos[T1_MAX_MM_DESIGNS + 1];
PS_Private privates[T1_MAX_MM_DESIGNS + 1];

FT_ULong blend_bitflags;

FT_BBox* bboxes[T1_MAX_MM_DESIGNS + 1];

/* since 2.3.0 */

/* undocumented, optional: the default design instance; */
/* corresponds to default_weight_vector */
/* num_default_design_vector == 0 means it is not present */
/* in the font and associated metrics files */
FT_UIntdefault_design_vector[T1_MAX_MM_DESIGNS];
FT_UIntnum_default_design_vector;

} PS_BlendRec, *PS_Blend;

/* backwards-compatible definition */
typedef PS_BlendRecT1_Blend;

/*************************************************************************/
/* */
/* */
/*CID_FaceDictRec*/
/* */
/* */
/*A structure used to represent data in a CID top-level dictionary.*/
/* */
typedef structCID_FaceDictRec_
{
PS_PrivateRecprivate_dict;

FT_UIntlen_buildchar;
FT_Fixed forcebold_threshold;
FT_Pos stroke_width;
FT_Fixed expansion_factor;

FT_Bytepaint_type;
FT_Bytefont_type;
FT_Matrixfont_matrix;
FT_Vectorfont_offset;

FT_UIntnum_subrs;
FT_ULong subrmap_offset;
FT_Int sd_bytes;

} CID_FaceDictRec;

/*************************************************************************/
/* */
/* */
/*CID_FaceDict */
/* */
/* */
/*A handle to a @CID_FaceDictRec structure.*/
/* */
typedef struct CID_FaceDictRec_*CID_FaceDict;

/*************************************************************************/
/* */
/* */
/*CID_FontDict */
/* */
/* */
/*This type is equivalent to @CID_FaceDictRec.It is deprecated but */
/*kept to maintain source compatibility between various versions of*/
/*FreeType.*/
/* */
typedef CID_FaceDictRecCID_FontDict;

/*************************************************************************/
/* */
/* */
/*CID_FaceInfoRec*/
/* */
/* */
/*A structure used to represent CID Face information.*/
/* */
typedef structCID_FaceInfoRec_
{
FT_String*cid_font_name;
FT_Fixedcid_version;
FT_Intcid_font_type;

FT_String*registry;
FT_String*ordering;
FT_Intsupplement;

PS_FontInfoRecfont_info;
FT_BBox font_bbox;
FT_ULonguid_base;

FT_Intnum_xuid;
FT_ULongxuid[16];

FT_ULongcidmap_offset;
FT_Intfd_bytes;
FT_Intgd_bytes;
FT_ULongcid_count;

FT_Intnum_dicts;
CID_FaceDictfont_dicts;

FT_ULongdata_offset;

} CID_FaceInfoRec;

/*************************************************************************/
/* */
/* */
/*CID_FaceInfo */
/* */
/* */
/*A handle to a @CID_FaceInfoRec structure.*/
/* */
typedef struct CID_FaceInfoRec_*CID_FaceInfo;

/*************************************************************************/
/* */
/* */
/*CID_Info */
/* */
/* */
/* This type is equivalent to @CID_FaceInfoRec.It is deprecated but*/
/* kept to maintain source compatibility between various versions of */
/* FreeType. */
/* */
typedef CID_FaceInfoRecCID_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_Faceface );

/************************************************************************
*
* @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:
*String pointers within the @PS_FontInfoRec structure are owned by
*the face and dont need to be freed by the caller.Missing entries
*in the fonts FontInfo dictionary are represented by NULL pointers.
*
*If the fonts 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_Faceface,
PS_FontInfoafont_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 dont need to be freed by the caller.
*
*If the fonts 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_Privateafont_private );

/*************************************************************************/
/* */
/* */
/*T1_EncodingType*/
/* */
/* */
/*An enumeration describing the `Encoding entry in a Type 1 */
/*dictionary.*/
/* */
/* */
/*T1_ENCODING_TYPE_NONE :: */
/*T1_ENCODING_TYPE_ARRAY ::*/
/*T1_ENCODING_TYPE_STANDARD :: */
/*T1_ENCODING_TYPE_ISOLATIN1 ::*/
/*T1_ENCODING_TYPE_EXPERT :: */
/* */
typedef enumT1_EncodingType_
{
T1_ENCODING_TYPE_NONE = 0,
T1_ENCODING_TYPE_ARRAY,
T1_ENCODING_TYPE_STANDARD,
T1_ENCODING_TYPE_ISOLATIN1,
T1_ENCODING_TYPE_EXPERT

} T1_EncodingType;

/*************************************************************************/
/* */
/* */
/*PS_Dict_Keys */
/* */
/* */
/*An enumeration used in calls to @FT_Get_PS_Font_Value to identify*/
/*the Type~1 dictionary entry to retrieve. */
/* */
/* */
/*PS_DICT_FONT_TYPE :: */
/*PS_DICT_FONT_MATRIX :: */
/*PS_DICT_FONT_BBOX :: */
/*PS_DICT_PAINT_TYPE ::*/
/*PS_DICT_FONT_NAME :: */
/*PS_DICT_UNIQUE_ID :: */
/*PS_DICT_NUM_CHAR_STRINGS ::*/
/*PS_DICT_CHAR_STRING_KEY :: */
/*PS_DICT_CHAR_STRING :: */
/*PS_DICT_ENCODING_TYPE :: */
/*PS_DICT_ENCODING_ENTRY ::*/
/*PS_DICT_NUM_SUBRS :: */
/*PS_DICT_SUBR ::*/
/*PS_DICT_STD_HW ::*/
/*PS_DICT_STD_VW ::*/
/*PS_DICT_NUM_BLUE_VALUES :: */
/*PS_DICT_BLUE_VALUE ::*/
/*PS_DICT_BLUE_FUZZ :: */
/*PS_DICT_NUM_OTHER_BLUES :: */
/*PS_DICT_OTHER_BLUE ::*/
/*PS_DICT_NUM_FAMILY_BLUES ::*/
/*PS_DICT_FAMILY_BLUE :: */
/*PS_DICT_NUM_FAMILY_OTHER_BLUES ::*/
/*PS_DICT_FAMILY_OTHER_BLUE :: */
/*PS_DICT_BLUE_SCALE ::*/
/*PS_DICT_BLUE_SHIFT ::*/
/*PS_DICT_NUM_STEM_SNAP_H :: */
/*PS_DICT_STEM_SNAP_H :: */
/*PS_DICT_NUM_STEM_SNAP_V :: */
/*PS_DICT_STEM_SNAP_V :: */
/*PS_DICT_FORCE_BOLD ::*/
/*PS_DICT_RND_STEM_UP :: */
/*PS_DICT_MIN_FEATURE :: */
/*PS_DICT_LEN_IV ::*/
/*PS_DICT_PASSWORD ::*/
/*PS_DICT_LANGUAGE_GROUP ::*/
/*PS_DICT_VERSION :: */
/*PS_DICT_NOTICE ::*/
/*PS_DICT_FULL_NAME :: */
/*PS_DICT_FAMILY_NAME :: */
/*PS_DICT_WEIGHT ::*/
/*PS_DICT_IS_FIXED_PITCH ::*/
/*PS_DICT_UNDERLINE_POSITION ::*/
/*PS_DICT_UNDERLINE_THICKNESS :: */
/*PS_DICT_FS_TYPE :: */
/*PS_DICT_ITALIC_ANGLE ::*/
/* */
typedef enumPS_Dict_Keys_
{
/* conventionally in the font dictionary */
PS_DICT_FONT_TYPE,/* FT_Byte */
PS_DICT_FONT_MATRIX,/* FT_Fixed*/
PS_DICT_FONT_BBOX,/* FT_Fixed*/
PS_DICT_PAINT_TYPE, /* FT_Byte */
PS_DICT_FONT_NAME,/* FT_String**/
PS_DICT_UNIQUE_ID,/* FT_Int*/
PS_DICT_NUM_CHAR_STRINGS, /* FT_Int*/
PS_DICT_CHAR_STRING_KEY,/* FT_String**/
PS_DICT_CHAR_STRING,/* FT_String**/
PS_DICT_ENCODING_TYPE,/* T1_EncodingType */
PS_DICT_ENCODING_ENTRY, /* FT_String**/

/* conventionally in the font Private dictionary */
PS_DICT_NUM_SUBRS,/* FT_Int */
PS_DICT_SUBR, /* FT_String* */
PS_DICT_STD_HW, /* FT_UShort*/
PS_DICT_STD_VW, /* FT_UShort*/
PS_DICT_NUM_BLUE_VALUES,/* FT_Byte*/
PS_DICT_BLUE_VALUE, /* FT_Short */
PS_DICT_BLUE_FUZZ,/* FT_Int */
PS_DICT_NUM_OTHER_BLUES,/* FT_Byte*/
PS_DICT_OTHER_BLUE, /* FT_Short */
PS_DICT_NUM_FAMILY_BLUES, /* FT_Byte*/
PS_DICT_FAMILY_BLUE,/* FT_Short */
PS_DICT_NUM_FAMILY_OTHER_BLUES, /* FT_Byte*/
PS_DICT_FAMILY_OTHER_BLUE,/* FT_Short */
PS_DICT_BLUE_SCALE, /* FT_Fixed */
PS_DICT_BLUE_SHIFT, /* FT_Int */
PS_DICT_NUM_STEM_SNAP_H,/* FT_Byte*/
PS_DICT_STEM_SNAP_H,/* FT_Short */
PS_DICT_NUM_STEM_SNAP_V,/* FT_Byte*/
PS_DICT_STEM_SNAP_V,/* FT_Short */
PS_DICT_FORCE_BOLD, /* FT_Bool*/
PS_DICT_RND_STEM_UP,/* FT_Bool*/
PS_DICT_MIN_FEATURE,/* FT_Short */
PS_DICT_LEN_IV, /* FT_Int */
PS_DICT_PASSWORD, /* FT_Long*/
PS_DICT_LANGUAGE_GROUP, /* FT_Long*/

/* conventionally in the font FontInfo dictionary */
PS_DICT_VERSION,/* FT_String* */
PS_DICT_NOTICE, /* FT_String* */
PS_DICT_FULL_NAME,/* FT_String* */
PS_DICT_FAMILY_NAME,/* FT_String* */
PS_DICT_WEIGHT, /* FT_String* */
PS_DICT_IS_FIXED_PITCH, /* FT_Bool*/
PS_DICT_UNDERLINE_POSITION, /* FT_Short */
PS_DICT_UNDERLINE_THICKNESS,/* FT_UShort*/
PS_DICT_FS_TYPE,/* FT_UShort*/
PS_DICT_ITALIC_ANGLE, /* FT_Long*/

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 fonts 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_Keyskey,
FT_UInt idx,
void *value,
FT_Long value_len );

/* */

FT_END_HEADER

#endif /* __T1TABLES_H__ */

/* END */

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS interpreter /***************************************************************************/
$25