2000-05-02 12:57:43 +02:00
|
|
|
/***************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* t1tables.h */
|
|
|
|
/* */
|
2000-07-14 08:16:47 +02:00
|
|
|
/* Basic Type 1/Type 2 tables definitions and interface (specification */
|
|
|
|
/* only). */
|
2000-05-02 12:57:43 +02:00
|
|
|
/* */
|
2001-06-28 19:49:10 +02:00
|
|
|
/* Copyright 1996-2001 by */
|
2000-05-02 12:57:43 +02:00
|
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
|
|
|
/* */
|
2000-07-11 08:12:20 +02:00
|
|
|
/* This file is part of the FreeType project, and may only be used, */
|
|
|
|
/* modified, and distributed under the terms of the FreeType project */
|
2000-05-02 12:57:43 +02:00
|
|
|
/* 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. */
|
|
|
|
/* */
|
|
|
|
/***************************************************************************/
|
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
#ifndef __T1TABLES_H__
|
|
|
|
#define __T1TABLES_H__
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
2000-12-04 23:53:55 +01:00
|
|
|
#include <ft2build.h>
|
2000-12-01 00:12:33 +01:00
|
|
|
#include FT_FREETYPE_H
|
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
FT_BEGIN_HEADER
|
2000-08-01 15:17:04 +02:00
|
|
|
|
2000-12-09 01:45:38 +01:00
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <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. */
|
|
|
|
/* */
|
|
|
|
/*************************************************************************/
|
2001-06-28 19:49:10 +02:00
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
/* Note that we separate font data in T1_FontInfo and T1_Private */
|
|
|
|
/* structures in order to support Multiple Master fonts. */
|
|
|
|
|
|
|
|
|
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* T1_FontInfo */
|
|
|
|
/* */
|
|
|
|
/* <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
|
2000-05-02 12:57:43 +02:00
|
|
|
{
|
2000-07-11 08:12:20 +02:00
|
|
|
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_Short underline_position;
|
|
|
|
FT_UShort underline_thickness;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-05-02 12:57:43 +02:00
|
|
|
} T1_FontInfo;
|
|
|
|
|
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Struct> */
|
|
|
|
/* T1_Private */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A structure used to model a Type1/Type2 FontInfo dictionary. Note */
|
|
|
|
/* that for Multiple Master fonts, each instance has its own Private */
|
|
|
|
/* dict. */
|
2000-07-11 08:50:03 +02:00
|
|
|
/* */
|
2000-07-11 08:12:20 +02:00
|
|
|
typedef struct T1_Private
|
2000-05-02 12:57:43 +02:00
|
|
|
{
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Int unique_id;
|
|
|
|
FT_Int lenIV;
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Byte num_blue_values;
|
|
|
|
FT_Byte num_other_blues;
|
|
|
|
FT_Byte num_family_blues;
|
|
|
|
FT_Byte num_family_other_blues;
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Short blue_values[14];
|
|
|
|
FT_Short other_blues[10];
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Short family_blues [14];
|
|
|
|
FT_Short family_other_blues[10];
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Fixed blue_scale;
|
|
|
|
FT_Int blue_shift;
|
|
|
|
FT_Int blue_fuzz;
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_UShort standard_width[1];
|
|
|
|
FT_UShort standard_height[1];
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Byte num_snap_widths;
|
|
|
|
FT_Byte num_snap_heights;
|
|
|
|
FT_Bool force_bold;
|
|
|
|
FT_Bool round_stem_up;
|
2000-05-02 12:57:43 +02:00
|
|
|
|
* include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
with Make on Windows 2000, as well as problems when "make distclean" is
invoked on a non-Unix platform when there is no "config.mk" in the
current directory..
* builds/freetype.mk: fixed a problem with object deletions under
Dos/Windows/OS/2 systems
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* src/tools/docmaker.py: improved the script to add the current date
at the footer of each web page (useful to distinguish between versions)
* Jamfile: fixed incorrect HDRMACRO argument.
* TODO: removed the cubic arc bbox computation note, since it has been
fixed recently..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
2001-05-11 16:25:57 +02:00
|
|
|
FT_Short snap_widths [13]; /* including std width */
|
|
|
|
FT_Short snap_heights[13]; /* including std height */
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Long language_group;
|
|
|
|
FT_Long password;
|
2000-05-02 12:57:43 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Short min_feature[2];
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-05-02 12:57:43 +02:00
|
|
|
} T1_Private;
|
|
|
|
|
2000-05-03 20:15:52 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
/*************************************************************************/
|
|
|
|
/* */
|
|
|
|
/* <Enum> */
|
|
|
|
/* T1_Blend_Flags */
|
|
|
|
/* */
|
|
|
|
/* <Description> */
|
|
|
|
/* A set of flags used to indicate which fields are present in a */
|
|
|
|
/* given blen dictionary (font info or private). Used to support */
|
|
|
|
/* Multiple Masters fonts. */
|
|
|
|
/* */
|
2000-05-11 20:23:52 +02:00
|
|
|
typedef enum
|
|
|
|
{
|
* include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
with Make on Windows 2000, as well as problems when "make distclean" is
invoked on a non-Unix platform when there is no "config.mk" in the
current directory..
* builds/freetype.mk: fixed a problem with object deletions under
Dos/Windows/OS/2 systems
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* src/tools/docmaker.py: improved the script to add the current date
at the footer of each web page (useful to distinguish between versions)
* Jamfile: fixed incorrect HDRMACRO argument.
* TODO: removed the cubic arc bbox computation note, since it has been
fixed recently..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
2001-05-11 16:25:57 +02:00
|
|
|
/*# required fields in a FontInfo blend dictionary */
|
2000-05-24 23:12:02 +02:00
|
|
|
t1_blend_underline_position = 0,
|
2000-05-11 20:23:52 +02:00
|
|
|
t1_blend_underline_thickness,
|
|
|
|
t1_blend_italic_angle,
|
2000-05-17 01:44:38 +02:00
|
|
|
|
* include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
with Make on Windows 2000, as well as problems when "make distclean" is
invoked on a non-Unix platform when there is no "config.mk" in the
current directory..
* builds/freetype.mk: fixed a problem with object deletions under
Dos/Windows/OS/2 systems
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* src/tools/docmaker.py: improved the script to add the current date
at the footer of each web page (useful to distinguish between versions)
* Jamfile: fixed incorrect HDRMACRO argument.
* TODO: removed the cubic arc bbox computation note, since it has been
fixed recently..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
2001-05-11 16:25:57 +02:00
|
|
|
/*# required fields in a Private blend dictionary */
|
2000-05-11 20:23:52 +02:00
|
|
|
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,
|
|
|
|
|
* include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
to the core API (using Cordic algorithms).
* builds/top_level.mk, builds/newline, builds/detect.mk: fixed problems
with Make on Windows 2000, as well as problems when "make distclean" is
invoked on a non-Unix platform when there is no "config.mk" in the
current directory..
* builds/freetype.mk: fixed a problem with object deletions under
Dos/Windows/OS/2 systems
* src/tools: added new directory to hold tools and test programs
moved docmaker.py, glnames.py to it..
* src/tools/docmaker.py: improved the script to add the current date
at the footer of each web page (useful to distinguish between versions)
* Jamfile: fixed incorrect HDRMACRO argument.
* TODO: removed the cubic arc bbox computation note, since it has been
fixed recently..
* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
formatting
2001-05-11 16:25:57 +02:00
|
|
|
/*# never remove */
|
2000-05-11 20:23:52 +02:00
|
|
|
t1_blend_max
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-05-24 23:12:02 +02:00
|
|
|
} T1_Blend_Flags;
|
2000-05-11 20:23:52 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
|
|
|
|
/* maximum number of Multiple Masters designs, as defined in the spec */
|
|
|
|
#define T1_MAX_MM_DESIGNS 16
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
/* maximum number of Multiple Masters axes, as defined in the spec */
|
2000-06-29 05:14:25 +02:00
|
|
|
#define T1_MAX_MM_AXIS 4
|
2000-05-26 04:07:40 +02:00
|
|
|
|
|
|
|
/* maximum number of elements in a design map */
|
2000-07-11 08:12:20 +02:00
|
|
|
#define T1_MAX_MM_MAP_POINTS 20
|
|
|
|
|
2000-05-11 20:23:52 +02:00
|
|
|
|
2000-05-24 23:12:02 +02:00
|
|
|
/* this structure is used to store the BlendDesignMap entry for an axis */
|
2000-07-11 08:12:20 +02:00
|
|
|
typedef struct T1_DesignMap_
|
2000-05-11 20:23:52 +02:00
|
|
|
{
|
2000-05-24 23:12:02 +02:00
|
|
|
FT_Byte num_points;
|
|
|
|
FT_Fixed* design_points;
|
|
|
|
FT_Fixed* blend_points;
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-05-24 23:12:02 +02:00
|
|
|
} T1_DesignMap;
|
2000-05-11 20:23:52 +02:00
|
|
|
|
2000-05-26 04:07:40 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
typedef struct T1_Blend_
|
2000-05-11 20:23:52 +02:00
|
|
|
{
|
2000-05-24 23:12:02 +02:00
|
|
|
FT_UInt num_designs;
|
|
|
|
FT_UInt num_axis;
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_String* axis_names[T1_MAX_MM_AXIS];
|
|
|
|
FT_Fixed* design_pos[T1_MAX_MM_DESIGNS];
|
|
|
|
T1_DesignMap design_map[T1_MAX_MM_AXIS];
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-05-26 04:07:40 +02:00
|
|
|
FT_Fixed* weight_vector;
|
|
|
|
FT_Fixed* default_weight_vector;
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
T1_FontInfo* font_infos[T1_MAX_MM_DESIGNS + 1];
|
|
|
|
T1_Private* privates [T1_MAX_MM_DESIGNS + 1];
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-05-24 23:12:02 +02:00
|
|
|
FT_ULong blend_bitflags;
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-05-11 20:23:52 +02:00
|
|
|
} T1_Blend;
|
|
|
|
|
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
typedef struct CID_FontDict_
|
2000-05-03 20:15:52 +02:00
|
|
|
{
|
2000-07-11 08:12:20 +02:00
|
|
|
T1_Private private_dict;
|
2000-05-03 20:15:52 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_UInt len_buildchar;
|
|
|
|
FT_Fixed forcebold_threshold;
|
|
|
|
FT_Pos stroke_width;
|
|
|
|
FT_Fixed expansion_factor;
|
2000-07-14 08:16:47 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Byte paint_type;
|
|
|
|
FT_Byte font_type;
|
|
|
|
FT_Matrix font_matrix;
|
2000-08-24 00:47:44 +02:00
|
|
|
FT_Vector font_offset;
|
2000-06-01 05:27:48 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_UInt num_subrs;
|
|
|
|
FT_ULong subrmap_offset;
|
|
|
|
FT_Int sd_bytes;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-05-03 20:15:52 +02:00
|
|
|
} CID_FontDict;
|
|
|
|
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
typedef struct CID_Info_
|
2000-05-03 20:15:52 +02:00
|
|
|
{
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_String* cid_font_name;
|
|
|
|
FT_Fixed cid_version;
|
|
|
|
FT_Int cid_font_type;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_String* registry;
|
|
|
|
FT_String* ordering;
|
|
|
|
FT_Int supplement;
|
2000-05-03 20:15:52 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
T1_FontInfo font_info;
|
|
|
|
FT_BBox font_bbox;
|
|
|
|
FT_ULong uid_base;
|
2000-05-03 20:15:52 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_Int num_xuid;
|
|
|
|
FT_ULong xuid[16];
|
2000-05-17 01:44:38 +02:00
|
|
|
|
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_ULong cidmap_offset;
|
|
|
|
FT_Int fd_bytes;
|
|
|
|
FT_Int gd_bytes;
|
|
|
|
FT_ULong cid_count;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-06-01 05:27:48 +02:00
|
|
|
FT_Int num_dicts;
|
2000-05-05 03:39:02 +02:00
|
|
|
CID_FontDict* font_dicts;
|
2000-05-17 01:44:38 +02:00
|
|
|
|
2000-07-11 08:12:20 +02:00
|
|
|
FT_ULong data_offset;
|
2000-06-01 05:27:48 +02:00
|
|
|
|
2000-05-03 20:15:52 +02:00
|
|
|
} CID_Info;
|
|
|
|
|
|
|
|
|
2001-01-11 10:27:49 +01:00
|
|
|
/* */
|
|
|
|
|
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
FT_END_HEADER
|
2000-08-01 15:17:04 +02:00
|
|
|
|
2000-12-01 00:12:33 +01:00
|
|
|
#endif /* __T1TABLES_H__ */
|
2000-07-11 08:12:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
/* END */
|