* include/freetype/t1tables.h (t1_blend_max): Fix typo.
* src/base/ftstream.c: Simplify FT_ERROR calls. formatting, copyright update
This commit is contained in:
parent
78e004e843
commit
f8ba2005ab
33
ChangeLog
33
ChangeLog
@ -1,3 +1,8 @@
|
||||
2002-03-30 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* include/freetype/t1tables.h (t1_blend_max): Fix typo.
|
||||
* src/base/ftstream.c: Simplify FT_ERROR calls.
|
||||
|
||||
2002-03-29 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
|
||||
@ -146,6 +151,8 @@
|
||||
FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
|
||||
etc.
|
||||
|
||||
* ahloader.h [_STANDALONE_]: Removed all conditional code.
|
||||
|
||||
* include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
|
||||
type definitions of the CFF font driver.
|
||||
|
||||
@ -169,17 +176,25 @@
|
||||
FTDriver_initGlyphSlot => FT_Slot_InitFunc
|
||||
etc.
|
||||
|
||||
* include/freetype/internal/ftobjs.h, src/base/ftapi.c,
|
||||
src/base/ftobjs.c: Updated a few face method definitions:
|
||||
* include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
|
||||
few face method definitions:
|
||||
|
||||
FT_PSName_Requester => FT_Face_GetPostscriptNameFunc
|
||||
FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
|
||||
FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
|
||||
|
||||
* src/base/ftapi.c: New file. It contains backwards compatibility
|
||||
functions.
|
||||
|
||||
* include/freetype/internal/psaux.h, src/cid/cidload.c,
|
||||
src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
|
||||
src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
|
||||
Updated common PostScript type definitions.
|
||||
Renamed all enumeration values like to uppercase variants:
|
||||
|
||||
t1_token_any => T1_TOKEN_TYPE_ANY
|
||||
t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
|
||||
etc.
|
||||
|
||||
* include/freetype/internal/psglobals.h,
|
||||
include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
|
||||
@ -278,9 +293,9 @@
|
||||
(psh1_print_zone): This.
|
||||
|
||||
* include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
|
||||
src/base/ftobjs.c, src/base/ftinit.c: Adding the new
|
||||
FT_Library_Version API to return the library's current version in
|
||||
dynamic links.
|
||||
src/base/ftobjs.c: Adding the new FT_Library_Version API to return
|
||||
the library's current version in dynamic links.
|
||||
* src/base/ftinit.c (FT_Init_FreeType): Updated.
|
||||
|
||||
2002-03-06 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
@ -309,6 +324,9 @@
|
||||
Windows-encoded entries before Macintosh or Unicode ones, since it
|
||||
seems some fonts don't have reliable values here anyway.
|
||||
|
||||
* include/freetype/internal/psnames.h: Add typedef for
|
||||
`PSNames_Service'.
|
||||
|
||||
2002-03-05 Werner Lemberg <wl@gnu.org>
|
||||
|
||||
* builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
|
||||
@ -405,8 +423,9 @@
|
||||
ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
|
||||
ft_io_stream => ft_ansi_stream_io (in base/ftsystem.c only)
|
||||
|
||||
* Moving all memory and list management code to "src/base/ftutil.c"
|
||||
(previously in "ftobjs.c" and "ftlist.c" respectively).
|
||||
* src/base/ftutil.c: New file. Contains all memory and list
|
||||
management code (previously in "ftobjs.c" and "ftlist.c",
|
||||
respectively).
|
||||
|
||||
* include/freetype/internal/ftobjs.h: Moving all code related to
|
||||
glyph loaders to ...
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* recorders (specification only). These are used to support native */
|
||||
/* T1/T2 hints in the "type1", "cid" and "cff" font drivers. */
|
||||
/* */
|
||||
/* Copyright 2001 by */
|
||||
/* Copyright 2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -56,7 +56,7 @@ FT_BEGIN_HEADER
|
||||
(*PSH_Globals_DestroyFunc)( PSH_Globals globals );
|
||||
|
||||
|
||||
typedef struct PSH_Globals_FuncsRec_
|
||||
typedef struct PSH_Globals_FuncsRec_
|
||||
{
|
||||
PSH_Globals_NewFunc create;
|
||||
PSH_Globals_SetScaleFunc set_scale;
|
||||
@ -98,7 +98,7 @@ FT_BEGIN_HEADER
|
||||
/* strange happened (e.g. memory shortage). */
|
||||
/* */
|
||||
/* The hints accumulated in the object can later be used by the */
|
||||
/* Postscript hinter. */
|
||||
/* PostScript hinter. */
|
||||
/* */
|
||||
typedef struct T1_HintsRec_* T1_Hints;
|
||||
|
||||
@ -215,6 +215,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* @input: */
|
||||
/* hints :: A handle to the Type 1 hints recorder. */
|
||||
/* */
|
||||
/* end_point :: The index of the last point in the input glyph in */
|
||||
/* which the previously defined hints apply. */
|
||||
/* */
|
||||
@ -610,6 +611,7 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef PSHinter_Interface* PSHinter_Service;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __PSHINTS_H__ */
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* High-level interface for the `PSNames' module (in charge of */
|
||||
/* various functions related to Postscript glyph names conversion). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -232,6 +232,7 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef PSNames_Interface* PSNames_Service;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __PSNAMES_H__ */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* High-level `sfnt' driver interface (specification). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -133,7 +133,7 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <FuncType> */
|
||||
/* TT_Load_SFNT_HeaderRec_Func */
|
||||
/* TT_Load_SFNT_HeaderRec_Func */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* Loads the header of a SFNT font file. Supports collections. */
|
||||
@ -162,10 +162,10 @@ FT_BEGIN_HEADER
|
||||
/* values of `search_range', `entry_selector', and `range_shift'. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_Load_SFNT_HeaderRec_Func)( TT_Face face,
|
||||
FT_Stream stream,
|
||||
FT_Long face_index,
|
||||
SFNT_Header sfnt );
|
||||
(*TT_Load_SFNT_HeaderRec_Func)( TT_Face face,
|
||||
FT_Stream stream,
|
||||
FT_Long face_index,
|
||||
SFNT_Header sfnt );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -192,9 +192,9 @@ FT_BEGIN_HEADER
|
||||
/* TT_Load_Format_Tag(). */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_Load_Directory_Func)( TT_Face face,
|
||||
FT_Stream stream,
|
||||
SFNT_Header sfnt );
|
||||
(*TT_Load_Directory_Func)( TT_Face face,
|
||||
FT_Stream stream,
|
||||
SFNT_Header sfnt );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -278,12 +278,12 @@ FT_BEGIN_HEADER
|
||||
/* The `map.buffer' field is always freed before the glyph is loaded. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_Load_SBit_Image_Func)( TT_Face face,
|
||||
FT_ULong strike_index,
|
||||
FT_UInt glyph_index,
|
||||
FT_UInt load_flags,
|
||||
FT_Stream stream,
|
||||
FT_Bitmap *amap,
|
||||
(*TT_Load_SBit_Image_Func)( TT_Face face,
|
||||
FT_ULong strike_index,
|
||||
FT_UInt glyph_index,
|
||||
FT_UInt load_flags,
|
||||
FT_Stream stream,
|
||||
FT_Bitmap *amap,
|
||||
TT_SBit_MetricsRec *ametrics );
|
||||
|
||||
|
||||
@ -391,9 +391,9 @@ FT_BEGIN_HEADER
|
||||
/* released. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_CharMap_Load_Func)( TT_Face face,
|
||||
TT_CMapTable cmap,
|
||||
FT_Stream input );
|
||||
(*TT_CharMap_Load_Func)( TT_Face face,
|
||||
TT_CMapTable cmap,
|
||||
FT_Stream input );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -413,8 +413,8 @@ FT_BEGIN_HEADER
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_CharMap_Free_Func)( TT_Face face,
|
||||
TT_CMapTable cmap );
|
||||
(*TT_CharMap_Free_Func)( TT_Face face,
|
||||
TT_CMapTable cmap );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -471,53 +471,53 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct SFNT_Interface_
|
||||
{
|
||||
TT_Goto_Table_Func goto_table;
|
||||
TT_Goto_Table_Func goto_table;
|
||||
|
||||
TT_Init_Face_Func init_face;
|
||||
TT_Load_Face_Func load_face;
|
||||
TT_Done_Face_Func done_face;
|
||||
SFNT_Get_Interface_Func get_interface;
|
||||
TT_Init_Face_Func init_face;
|
||||
TT_Load_Face_Func load_face;
|
||||
TT_Done_Face_Func done_face;
|
||||
SFNT_Get_Interface_Func get_interface;
|
||||
|
||||
TT_Load_Any_Func load_any;
|
||||
TT_Load_Any_Func load_any;
|
||||
TT_Load_SFNT_HeaderRec_Func load_sfnt_header;
|
||||
TT_Load_Directory_Func load_directory;
|
||||
TT_Load_Directory_Func load_directory;
|
||||
|
||||
/* these functions are called by `load_face' but they can also */
|
||||
/* be called from external modules, if there is a need to do so */
|
||||
TT_Load_Table_Func load_header;
|
||||
TT_Load_Metrics_Func load_metrics;
|
||||
TT_Load_Table_Func load_charmaps;
|
||||
TT_Load_Table_Func load_max_profile;
|
||||
TT_Load_Table_Func load_os2;
|
||||
TT_Load_Table_Func load_psnames;
|
||||
TT_Load_Table_Func load_header;
|
||||
TT_Load_Metrics_Func load_metrics;
|
||||
TT_Load_Table_Func load_charmaps;
|
||||
TT_Load_Table_Func load_max_profile;
|
||||
TT_Load_Table_Func load_os2;
|
||||
TT_Load_Table_Func load_psnames;
|
||||
|
||||
TT_Load_Table_Func load_names;
|
||||
TT_Free_Table_Func free_names;
|
||||
TT_Load_Table_Func load_names;
|
||||
TT_Free_Table_Func free_names;
|
||||
|
||||
/* optional tables */
|
||||
TT_Load_Table_Func load_hdmx;
|
||||
TT_Free_Table_Func free_hdmx;
|
||||
TT_Load_Table_Func load_hdmx;
|
||||
TT_Free_Table_Func free_hdmx;
|
||||
|
||||
TT_Load_Table_Func load_kerning;
|
||||
TT_Load_Table_Func load_gasp;
|
||||
TT_Load_Table_Func load_pclt;
|
||||
TT_Load_Table_Func load_kerning;
|
||||
TT_Load_Table_Func load_gasp;
|
||||
TT_Load_Table_Func load_pclt;
|
||||
|
||||
/* see `ttload.h' */
|
||||
TT_Load_Table_Func load_bitmap_header;
|
||||
TT_Load_Table_Func load_bitmap_header;
|
||||
|
||||
/* see `ttsbit.h' */
|
||||
TT_Set_SBit_Strike_Func set_sbit_strike;
|
||||
TT_Load_Table_Func load_sbits;
|
||||
TT_Load_SBit_Image_Func load_sbit_image;
|
||||
TT_Free_Table_Func free_sbits;
|
||||
TT_Set_SBit_Strike_Func set_sbit_strike;
|
||||
TT_Load_Table_Func load_sbits;
|
||||
TT_Load_SBit_Image_Func load_sbit_image;
|
||||
TT_Free_Table_Func free_sbits;
|
||||
|
||||
/* see `ttpost.h' */
|
||||
TT_Get_PS_Name_Func get_psname;
|
||||
TT_Free_Table_Func free_psnames;
|
||||
TT_Get_PS_Name_Func get_psname;
|
||||
TT_Free_Table_Func free_psnames;
|
||||
|
||||
/* see `ttcmap.h' */
|
||||
TT_CharMap_Load_Func load_charmap;
|
||||
TT_CharMap_Free_Func free_charmap;
|
||||
TT_CharMap_Load_Func load_charmap;
|
||||
TT_CharMap_Free_Func free_charmap;
|
||||
|
||||
} SFNT_Interface;
|
||||
|
||||
@ -525,6 +525,7 @@ FT_BEGIN_HEADER
|
||||
/* transitional */
|
||||
typedef SFNT_Interface* SFNT_Service;
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
#endif /* __SFNT_H__ */
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Basic Type1/Type2 type definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -88,14 +88,9 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct T1_FontRec_
|
||||
{
|
||||
/* font info dictionary */
|
||||
PS_FontInfoRec font_info;
|
||||
|
||||
/* private dictionary */
|
||||
PS_PrivateRec private_dict;
|
||||
|
||||
/* top-level dictionary */
|
||||
FT_String* font_name;
|
||||
PS_FontInfoRec font_info; /* font info dictionary */
|
||||
PS_PrivateRec private_dict; /* private dictionary */
|
||||
FT_String* font_name; /* top-level dictionary */
|
||||
|
||||
T1_EncodingType encoding_type;
|
||||
T1_EncodingRec encoding;
|
||||
@ -183,15 +178,15 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct CID_FaceRec_
|
||||
{
|
||||
FT_FaceRec root;
|
||||
void* psnames;
|
||||
void* psaux;
|
||||
CID_FaceInfoRec cid;
|
||||
void* afm_data;
|
||||
CID_Subrs subrs;
|
||||
FT_FaceRec root;
|
||||
void* psnames;
|
||||
void* psaux;
|
||||
CID_FaceInfoRec cid;
|
||||
void* afm_data;
|
||||
CID_Subrs subrs;
|
||||
|
||||
/* since FT 2.1 - interface to PostScript hinter */
|
||||
void* pshinter;
|
||||
void* pshinter;
|
||||
|
||||
} CID_FaceRec;
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Basic SFNT/TrueType type definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -86,11 +86,11 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* num_tables :: The number of tables in file. */
|
||||
/* */
|
||||
/* search_range :: Must be 16*(max power of 2 <= num_tables). */
|
||||
/* search_range :: Must be `16 * (max power of 2 <= num_tables)'. */
|
||||
/* */
|
||||
/* entry_selector :: Must be log2 of search_range/16. */
|
||||
/* entry_selector :: Must be log2 of `search_range / 16'. */
|
||||
/* */
|
||||
/* range_shift :: Must be num_tables*16 - search_range. */
|
||||
/* range_shift :: Must be `num_tables * 16 - search_range'. */
|
||||
/* */
|
||||
typedef struct SFNT_HeaderRec_
|
||||
{
|
||||
@ -245,7 +245,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Type> TT_ShortMetrics */
|
||||
/* <Type> */
|
||||
/* TT_ShortMetrics */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A simple type to model the short metrics of the `hmtx' and `vmtx' */
|
||||
@ -387,9 +388,9 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct TT_Gasp_
|
||||
{
|
||||
FT_UShort version;
|
||||
FT_UShort numRanges;
|
||||
TT_GaspRange gaspRanges;
|
||||
FT_UShort version;
|
||||
FT_UShort numRanges;
|
||||
TT_GaspRange gaspRanges;
|
||||
|
||||
} TT_GaspRec;
|
||||
|
||||
@ -667,21 +668,21 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct TT_SBit_RangeRec
|
||||
{
|
||||
FT_UShort first_glyph;
|
||||
FT_UShort last_glyph;
|
||||
FT_UShort first_glyph;
|
||||
FT_UShort last_glyph;
|
||||
|
||||
FT_UShort index_format;
|
||||
FT_UShort image_format;
|
||||
FT_ULong image_offset;
|
||||
FT_UShort index_format;
|
||||
FT_UShort image_format;
|
||||
FT_ULong image_offset;
|
||||
|
||||
FT_ULong image_size;
|
||||
FT_ULong image_size;
|
||||
TT_SBit_MetricsRec metrics;
|
||||
FT_ULong num_glyphs;
|
||||
FT_ULong num_glyphs;
|
||||
|
||||
FT_ULong* glyph_offsets;
|
||||
FT_UShort* glyph_codes;
|
||||
FT_ULong* glyph_offsets;
|
||||
FT_UShort* glyph_codes;
|
||||
|
||||
FT_ULong table_offset;
|
||||
FT_ULong table_offset;
|
||||
|
||||
} TT_SBit_RangeRec, *TT_SBit_Range;
|
||||
|
||||
@ -689,7 +690,7 @@ FT_BEGIN_HEADER
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* <Struct> */
|
||||
/* TT_SBit_StrikeRec */
|
||||
/* TT_SBit_StrikeRec */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A structure used describe a given bitmap strike in the `EBLC' */
|
||||
@ -803,11 +804,11 @@ FT_BEGIN_HEADER
|
||||
TT_SBit_LineMetricsRec hori;
|
||||
TT_SBit_LineMetricsRec vert;
|
||||
|
||||
FT_Byte x_ppem;
|
||||
FT_Byte y_ppem;
|
||||
FT_Byte x_ppem;
|
||||
FT_Byte y_ppem;
|
||||
|
||||
FT_Byte x_ppem_substitute;
|
||||
FT_Byte y_ppem_substitute;
|
||||
FT_Byte x_ppem_substitute;
|
||||
FT_Byte y_ppem_substitute;
|
||||
|
||||
} TT_SBit_ScaleRec, *TT_SBit_Scale;
|
||||
|
||||
@ -893,7 +894,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct TT_Post_NamesRec_
|
||||
{
|
||||
FT_Bool loaded;
|
||||
FT_Bool loaded;
|
||||
|
||||
union
|
||||
{
|
||||
@ -945,10 +946,8 @@ FT_BEGIN_HEADER
|
||||
{
|
||||
FT_ULong language; /* for Mac fonts (originally ushort) */
|
||||
|
||||
FT_UShort* subHeaderKeys;
|
||||
/* high byte mapping table */
|
||||
/* value = subHeader index * 8 */
|
||||
|
||||
FT_UShort* subHeaderKeys; /* high byte mapping table */
|
||||
/* value = subHeader index * 8 */
|
||||
TT_CMap2SubHeader subHeaders;
|
||||
FT_UShort* glyphIdArray;
|
||||
FT_UShort numGlyphId; /* control value */
|
||||
@ -970,18 +969,18 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct TT_CMap4Rec_
|
||||
{
|
||||
FT_ULong language; /* for Mac fonts (originally ushort) */
|
||||
FT_ULong language; /* for Mac fonts (originally ushort) */
|
||||
|
||||
FT_UShort segCountX2; /* number of segments * 2 */
|
||||
FT_UShort searchRange; /* these parameters can be used */
|
||||
FT_UShort entrySelector; /* for a binary search */
|
||||
FT_UShort rangeShift;
|
||||
FT_UShort segCountX2; /* number of segments * 2 */
|
||||
FT_UShort searchRange; /* these parameters can be used */
|
||||
FT_UShort entrySelector; /* for a binary search */
|
||||
FT_UShort rangeShift;
|
||||
|
||||
TT_CMap4Segment segments;
|
||||
FT_UShort* glyphIdArray;
|
||||
FT_UShort numGlyphId; /* control value */
|
||||
TT_CMap4Segment segments;
|
||||
FT_UShort* glyphIdArray;
|
||||
FT_UShort numGlyphId; /* control value */
|
||||
|
||||
TT_CMap4Segment last_segment; /* last used segment; this is a small */
|
||||
TT_CMap4Segment last_segment; /* last used segment; this is a small */
|
||||
/* cache to potentially increase speed */
|
||||
} TT_CMap4Rec, *TT_CMap4;
|
||||
|
||||
@ -1018,13 +1017,13 @@ FT_BEGIN_HEADER
|
||||
|
||||
typedef struct TT_CMap8_12Rec_
|
||||
{
|
||||
FT_ULong language; /* for Mac fonts */
|
||||
FT_ULong language; /* for Mac fonts */
|
||||
|
||||
FT_ULong nGroups;
|
||||
TT_CMapGroup groups;
|
||||
FT_ULong nGroups;
|
||||
TT_CMapGroup groups;
|
||||
|
||||
TT_CMapGroup last_group; /* last used group; this is a small */
|
||||
/* cache to potentially increase speed */
|
||||
TT_CMapGroup last_group; /* last used group; this is a small */
|
||||
/* cache to potentially increase speed */
|
||||
} TT_CMap8_12Rec, *TT_CMap8_12;
|
||||
|
||||
|
||||
@ -1046,8 +1045,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
|
||||
typedef FT_UInt
|
||||
(*TT_CharMap_Func)( TT_CMapTable charmap,
|
||||
FT_ULong char_code );
|
||||
(*TT_CharMap_Func)( TT_CMapTable charmap,
|
||||
FT_ULong char_code );
|
||||
|
||||
typedef FT_ULong
|
||||
(*TT_CharNext_Func)( TT_CMapTable charmap,
|
||||
@ -1075,8 +1074,8 @@ FT_BEGIN_HEADER
|
||||
TT_CMap10Rec cmap10;
|
||||
} c;
|
||||
|
||||
TT_CharMap_Func get_index;
|
||||
TT_CharNext_Func get_next_char;
|
||||
TT_CharMap_Func get_index;
|
||||
TT_CharNext_Func get_next_char;
|
||||
|
||||
} TT_CMapTableRec;
|
||||
|
||||
@ -1102,8 +1101,6 @@ FT_BEGIN_HEADER
|
||||
} TT_CharMapRec;
|
||||
|
||||
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
@ -1123,7 +1120,7 @@ FT_BEGIN_HEADER
|
||||
/* following formats: TTF, OpenType-TT, and OpenType-CFF. */
|
||||
/* */
|
||||
/* Note, however, that the classes TT_Size, TT_GlyphSlot, and TT_CharMap */
|
||||
/* are not shared between font drivers, and are thus defined normally in */
|
||||
/* are not shared between font drivers, and are thus defined in */
|
||||
/* `ttobjs.h'. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
@ -1220,16 +1217,16 @@ FT_BEGIN_HEADER
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
/* <Note> */
|
||||
/* This function is normally equivalent to FT_STREAM_SEEK(offset) */
|
||||
/* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, but */
|
||||
/* alternative formats (e.g. compressed ones) might use something */
|
||||
/* This function is normally equivalent to FT_STREAM_SEEK(offset) */
|
||||
/* followed by FT_FRAME_ENTER(byte_count) with the loader's stream, */
|
||||
/* but alternative formats (e.g. compressed ones) might use something */
|
||||
/* different. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_Loader_StartGlyphFunc)( TT_Loader loader,
|
||||
FT_UInt glyph_index,
|
||||
FT_ULong offset,
|
||||
FT_UInt byte_count );
|
||||
(*TT_Loader_StartGlyphFunc)( TT_Loader loader,
|
||||
FT_UInt glyph_index,
|
||||
FT_ULong offset,
|
||||
FT_UInt byte_count );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -1248,7 +1245,7 @@ FT_BEGIN_HEADER
|
||||
/* FreeType error code. 0 means success. */
|
||||
/* */
|
||||
typedef FT_Error
|
||||
(*TT_Loader_ReadGlyphFunc)( TT_Loader loader );
|
||||
(*TT_Loader_ReadGlyphFunc)( TT_Loader loader );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -1263,8 +1260,7 @@ FT_BEGIN_HEADER
|
||||
/* loader :: The current TrueType glyph loader object. */
|
||||
/* */
|
||||
typedef void
|
||||
(*TT_Loader_EndGlyphFunc)( TT_Loader loader );
|
||||
|
||||
(*TT_Loader_EndGlyphFunc)( TT_Loader loader );
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -1337,6 +1333,10 @@ FT_BEGIN_HEADER
|
||||
/* not loaded by the driver on face opening. */
|
||||
/* See the `ttpost' module for more details. */
|
||||
/* */
|
||||
/* cmap_table :: XXX */
|
||||
/* */
|
||||
/* cmap_size :: XXX */
|
||||
/* */
|
||||
/* num_charmaps :: The number of character mappings in the */
|
||||
/* font. */
|
||||
/* */
|
||||
@ -1355,14 +1355,14 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* access_glyph_frame :: XXX */
|
||||
/* */
|
||||
/* forget_glyph_frame :: XXX */
|
||||
/* */
|
||||
/* read_glyph_header :: XXX */
|
||||
/* */
|
||||
/* read_simple_glyph :: XXX */
|
||||
/* */
|
||||
/* read_composite_glyph :: XXX */
|
||||
/* */
|
||||
/* forget_glyph_frame :: XXX */
|
||||
/* */
|
||||
/* sfnt :: A pointer to the SFNT `driver' interface. */
|
||||
/* */
|
||||
/* psnames :: A pointer to the `PSNames' module */
|
||||
@ -1433,15 +1433,12 @@ FT_BEGIN_HEADER
|
||||
/* num_kern_pairs :: The number of kerning pairs present in the */
|
||||
/* font file. The engine only loads the */
|
||||
/* first horizontal format 0 kern table it */
|
||||
/* finds in the font file. You should use */
|
||||
/* the `ttxkern' structures if you want to */
|
||||
/* access other kerning tables. Ignored */
|
||||
/* for Type 2 fonts. */
|
||||
/* finds in the font file. Ignored for */
|
||||
/* Type 2 fonts. */
|
||||
/* */
|
||||
/* kern_table_index :: The index of the kerning table in the font */
|
||||
/* kerning directory. Only used by the */
|
||||
/* ttxkern extension to avoid data */
|
||||
/* duplication. Ignored for Type 2 fonts. */
|
||||
/* kerning directory. Ignored for Type 2 */
|
||||
/* fonts. */
|
||||
/* */
|
||||
/* interpreter :: A pointer to the TrueType bytecode */
|
||||
/* interpreters field is also used to hook */
|
||||
@ -1451,56 +1448,56 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct TT_FaceRec_
|
||||
{
|
||||
FT_FaceRec root;
|
||||
FT_FaceRec root;
|
||||
|
||||
TTC_HeaderRec ttc_header;
|
||||
TTC_HeaderRec ttc_header;
|
||||
|
||||
FT_ULong format_tag;
|
||||
FT_UShort num_tables;
|
||||
TT_Table dir_tables;
|
||||
FT_ULong format_tag;
|
||||
FT_UShort num_tables;
|
||||
TT_Table dir_tables;
|
||||
|
||||
TT_Header header; /* TrueType header table */
|
||||
TT_HoriHeader horizontal; /* TrueType horizontal header */
|
||||
TT_Header header; /* TrueType header table */
|
||||
TT_HoriHeader horizontal; /* TrueType horizontal header */
|
||||
|
||||
TT_MaxProfile max_profile;
|
||||
FT_ULong max_components;
|
||||
TT_MaxProfile max_profile;
|
||||
FT_ULong max_components;
|
||||
|
||||
FT_Bool vertical_info;
|
||||
TT_VertHeader vertical; /* TT Vertical header, if present */
|
||||
FT_Bool vertical_info;
|
||||
TT_VertHeader vertical; /* TT Vertical header, if present */
|
||||
|
||||
FT_UShort num_names; /* number of name records */
|
||||
TT_NameTableRec name_table; /* name table */
|
||||
FT_UShort num_names; /* number of name records */
|
||||
TT_NameTableRec name_table; /* name table */
|
||||
|
||||
TT_OS2 os2; /* TrueType OS/2 table */
|
||||
TT_Postscript postscript; /* TrueType Postscript table */
|
||||
TT_OS2 os2; /* TrueType OS/2 table */
|
||||
TT_Postscript postscript; /* TrueType Postscript table */
|
||||
|
||||
#ifdef FT_CONFIG_OPTION_USE_CMAPS
|
||||
|
||||
FT_Byte* cmap_table; /* extracted 'cmap' table */
|
||||
FT_ULong cmap_size;
|
||||
FT_Byte* cmap_table; /* extracted 'cmap' table */
|
||||
FT_ULong cmap_size;
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
FT_Int num_charmaps;
|
||||
TT_CharMap charmaps; /* array of TT_CharMapRec */
|
||||
FT_Int num_charmaps;
|
||||
TT_CharMap charmaps; /* array of TT_CharMapRec */
|
||||
|
||||
#endif /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
TT_Goto_Table_Func goto_table;
|
||||
TT_Goto_Table_Func goto_table;
|
||||
|
||||
TT_Loader_StartGlyphFunc access_glyph_frame;
|
||||
TT_Loader_EndGlyphFunc forget_glyph_frame;
|
||||
TT_Loader_ReadGlyphFunc read_glyph_header;
|
||||
TT_Loader_ReadGlyphFunc read_simple_glyph;
|
||||
TT_Loader_ReadGlyphFunc read_composite_glyph;
|
||||
TT_Loader_StartGlyphFunc access_glyph_frame;
|
||||
TT_Loader_EndGlyphFunc forget_glyph_frame;
|
||||
TT_Loader_ReadGlyphFunc read_glyph_header;
|
||||
TT_Loader_ReadGlyphFunc read_simple_glyph;
|
||||
TT_Loader_ReadGlyphFunc read_composite_glyph;
|
||||
|
||||
/* a typeless pointer to the SFNT_Interface table used to load */
|
||||
/* the basic TrueType tables in the face object */
|
||||
void* sfnt;
|
||||
void* sfnt;
|
||||
|
||||
/* a typeless pointer to the PSNames_Interface table used to */
|
||||
/* handle glyph names <-> unicode & Mac values */
|
||||
void* psnames;
|
||||
void* psnames;
|
||||
|
||||
/***********************************************************************/
|
||||
/* */
|
||||
@ -1509,20 +1506,20 @@ FT_BEGIN_HEADER
|
||||
/***********************************************************************/
|
||||
|
||||
/* horizontal device metrics */
|
||||
TT_HdmxRec hdmx;
|
||||
TT_HdmxRec hdmx;
|
||||
|
||||
/* grid-fitting and scaling table */
|
||||
TT_GaspRec gasp; /* the `gasp' table */
|
||||
TT_GaspRec gasp; /* the `gasp' table */
|
||||
|
||||
/* PCL 5 table */
|
||||
TT_PCLT pclt;
|
||||
TT_PCLT pclt;
|
||||
|
||||
/* embedded bitmaps support */
|
||||
FT_Int num_sbit_strikes;
|
||||
TT_SBit_Strike sbit_strikes;
|
||||
FT_Int num_sbit_strikes;
|
||||
TT_SBit_Strike sbit_strikes;
|
||||
|
||||
FT_Int num_sbit_scales;
|
||||
TT_SBit_Scale sbit_scales;
|
||||
FT_Int num_sbit_scales;
|
||||
TT_SBit_Scale sbit_scales;
|
||||
|
||||
/* postscript names table */
|
||||
TT_Post_NamesRec postscript_names;
|
||||
@ -1535,29 +1532,29 @@ FT_BEGIN_HEADER
|
||||
/***********************************************************************/
|
||||
|
||||
/* the glyph locations */
|
||||
FT_UShort num_locations;
|
||||
FT_Long* glyph_locations;
|
||||
FT_UShort num_locations;
|
||||
FT_Long* glyph_locations;
|
||||
|
||||
/* the font program, if any */
|
||||
FT_ULong font_program_size;
|
||||
FT_Byte* font_program;
|
||||
FT_ULong font_program_size;
|
||||
FT_Byte* font_program;
|
||||
|
||||
/* the cvt program, if any */
|
||||
FT_ULong cvt_program_size;
|
||||
FT_Byte* cvt_program;
|
||||
FT_ULong cvt_program_size;
|
||||
FT_Byte* cvt_program;
|
||||
|
||||
/* the original, unscaled, control value table */
|
||||
FT_ULong cvt_size;
|
||||
FT_Short* cvt;
|
||||
FT_ULong cvt_size;
|
||||
FT_Short* cvt;
|
||||
|
||||
/* the format 0 kerning table, if any */
|
||||
FT_Int num_kern_pairs;
|
||||
FT_Int kern_table_index;
|
||||
TT_Kern0_Pair kern_pairs;
|
||||
FT_Int num_kern_pairs;
|
||||
FT_Int kern_table_index;
|
||||
TT_Kern0_Pair kern_pairs;
|
||||
|
||||
/* A pointer to the bytecode interpreter to use. This is also */
|
||||
/* used to hook the debugger for the `ttdebug' utility. */
|
||||
TT_Interpreter interpreter;
|
||||
TT_Interpreter interpreter;
|
||||
|
||||
|
||||
/***********************************************************************/
|
||||
@ -1567,7 +1564,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/***********************************************************************/
|
||||
|
||||
FT_Generic extra;
|
||||
FT_Generic extra;
|
||||
|
||||
} TT_FaceRec;
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Basic Type 1/Type 2 tables definitions and interface (specification */
|
||||
/* only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -81,11 +81,11 @@ FT_BEGIN_HEADER
|
||||
/* T1_FontInfo */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* this type is equivalent to @PS_FontInfoRec but has been deprecated */
|
||||
/* it is kept to maintain source compatibility between various */
|
||||
/* versions of FreeType */
|
||||
/* 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;
|
||||
typedef PS_FontInfoRec T1_FontInfo;
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
@ -94,9 +94,9 @@ FT_BEGIN_HEADER
|
||||
/* PS_PrivateRec */
|
||||
/* */
|
||||
/* <Description> */
|
||||
/* A structure used to model a Type1/Type2 private dictionary. Note */
|
||||
/* A structure used to model a Type1/Type2 private dictionary. Note */
|
||||
/* that for Multiple Master fonts, each instance has its own Private */
|
||||
/* dict. */
|
||||
/* dictionary. */
|
||||
/* */
|
||||
typedef struct PS_PrivateRec_
|
||||
{
|
||||
@ -143,9 +143,9 @@ FT_BEGIN_HEADER
|
||||
/* 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 */
|
||||
/* 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;
|
||||
|
||||
@ -186,22 +186,22 @@ FT_BEGIN_HEADER
|
||||
} 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
|
||||
/* 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_BLEND_MAX
|
||||
|
||||
|
||||
/* maximum number of Multiple Masters designs, as defined in the spec */
|
||||
@ -223,8 +223,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
} PS_DesignMapRec, *PS_DesignMap;
|
||||
|
||||
/* backwards-compatible definition */
|
||||
typedef PS_DesignMapRec T1_DesignMap;
|
||||
/* backwards-compatible definition */
|
||||
typedef PS_DesignMapRec T1_DesignMap;
|
||||
|
||||
|
||||
typedef struct PS_BlendRec_
|
||||
@ -247,8 +247,8 @@ FT_BEGIN_HEADER
|
||||
} PS_BlendRec, *PS_Blend;
|
||||
|
||||
|
||||
/* backwards-compatible definition */
|
||||
typedef PS_BlendRec T1_Blend;
|
||||
/* backwards-compatible definition */
|
||||
typedef PS_BlendRec T1_Blend;
|
||||
|
||||
|
||||
typedef struct CID_FaceDictRec_
|
||||
@ -272,8 +272,8 @@ FT_BEGIN_HEADER
|
||||
} CID_FaceDictRec, *CID_FaceDict;
|
||||
|
||||
|
||||
/* backwards-compatible definition */
|
||||
typedef CID_FaceDictRec CID_FontDict;
|
||||
/* backwards-compatible definition */
|
||||
typedef CID_FaceDictRec CID_FontDict;
|
||||
|
||||
|
||||
typedef struct CID_FaceInfoRec_
|
||||
@ -293,7 +293,6 @@ FT_BEGIN_HEADER
|
||||
FT_Int num_xuid;
|
||||
FT_ULong xuid[16];
|
||||
|
||||
|
||||
FT_ULong cidmap_offset;
|
||||
FT_Int fd_bytes;
|
||||
FT_Int gd_bytes;
|
||||
@ -313,11 +312,11 @@ FT_BEGIN_HEADER
|
||||
/* 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 */
|
||||
/* 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;
|
||||
typedef CID_FaceInfoRec CID_Info;
|
||||
|
||||
/* */
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* A routine used to compute vector angles with limited accuracy */
|
||||
/* and very high speed (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* A routine used to compute vector angles with limited accuracy */
|
||||
/* and very high speed (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Routines used to compute global metrics automatically (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Routines used to compute global metrics automatically */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -37,7 +37,8 @@ FT_BEGIN_HEADER
|
||||
|
||||
|
||||
/* compute global metrics automatically */
|
||||
FT_LOCAL( FT_Error ) ah_hinter_compute_globals( AH_Hinter* hinter );
|
||||
FT_LOCAL( FT_Error )
|
||||
ah_hinter_compute_globals( AH_Hinter* hinter );
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Routines used to load and analyze a given glyph before hinting */
|
||||
/* (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -39,6 +39,7 @@
|
||||
AH_Segment* segments;
|
||||
FT_Int dimension;
|
||||
|
||||
|
||||
edges = outline->horz_edges;
|
||||
edge_limit = edges + outline->num_hedges;
|
||||
segments = outline->horz_segments;
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* Routines used to load and analyze a given glyph before hinting */
|
||||
/* (specification). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Glyph hinter (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -1068,13 +1068,13 @@
|
||||
goto Exit;
|
||||
|
||||
FT_MEM_COPY( gloader->current.extra_points, slot->outline.points,
|
||||
slot->outline.n_points * sizeof ( FT_Vector ) );
|
||||
slot->outline.n_points * sizeof ( FT_Vector ) );
|
||||
|
||||
FT_MEM_COPY( gloader->current.outline.contours, slot->outline.contours,
|
||||
slot->outline.n_contours * sizeof ( short ) );
|
||||
slot->outline.n_contours * sizeof ( short ) );
|
||||
|
||||
FT_MEM_COPY( gloader->current.outline.tags, slot->outline.tags,
|
||||
slot->outline.n_points * sizeof ( char ) );
|
||||
slot->outline.n_points * sizeof ( char ) );
|
||||
|
||||
gloader->current.outline.n_points = slot->outline.n_points;
|
||||
gloader->current.outline.n_contours = slot->outline.n_contours;
|
||||
@ -1139,8 +1139,8 @@
|
||||
|
||||
case ft_glyph_format_composite:
|
||||
{
|
||||
FT_UInt nn, num_subglyphs = slot->num_subglyphs;
|
||||
FT_UInt num_base_subgs, start_point;
|
||||
FT_UInt nn, num_subglyphs = slot->num_subglyphs;
|
||||
FT_UInt num_base_subgs, start_point;
|
||||
FT_SubGlyph subglyph;
|
||||
|
||||
|
||||
@ -1152,7 +1152,7 @@
|
||||
goto Exit;
|
||||
|
||||
FT_MEM_COPY( gloader->current.subglyphs, slot->subglyphs,
|
||||
num_subglyphs * sizeof ( FT_SubGlyph ) );
|
||||
num_subglyphs * sizeof ( FT_SubGlyph ) );
|
||||
|
||||
gloader->current.num_subglyphs = num_subglyphs;
|
||||
num_base_subgs = gloader->base.num_subglyphs;
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Glyph hinter (declaration). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Glyph loader for the auto-hinting module (declaration only). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -21,13 +21,8 @@
|
||||
|
||||
/*************************************************************************/
|
||||
/* */
|
||||
/* This defines the AH_GlyphLoader type in two different ways: */
|
||||
/* */
|
||||
/* - If the module is compiled within FreeType 2, the type is simply a */
|
||||
/* typedef to FT_GlyphLoader. */
|
||||
/* */
|
||||
/* - If the module is compiled as a standalone object, AH_GlyphLoader */
|
||||
/* has its own implementation. */
|
||||
/* This defines the AH_GlyphLoader type; it is simply a typedef to */
|
||||
/* FT_GlyphLoader. */
|
||||
/* */
|
||||
/*************************************************************************/
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Auto-hinting module implementation (declaration). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
|
||||
#ifdef DEBUG_HINTER
|
||||
extern AH_Hinter* ah_debug_hinter = NULL;
|
||||
extern AH_Hinter* ah_debug_hinter = NULL;
|
||||
extern FT_Bool ah_debug_disable_horz = 0;
|
||||
extern FT_Bool ah_debug_disable_vert = 0;
|
||||
#endif
|
||||
@ -43,6 +43,7 @@
|
||||
{
|
||||
FT_Error error;
|
||||
|
||||
|
||||
error = ah_hinter_new( module->root.library, &module->hinter );
|
||||
#ifdef DEBUG_HINTER
|
||||
if ( !error )
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType auto hinting outline optimization (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -32,11 +32,11 @@
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_OBJECTS_H /* for FT_ALLOC_ARRAY() and FT_FREE() */
|
||||
#include FT_INTERNAL_OBJECTS_H /* for FT_ALLOC_ARRAY() and FT_FREE() */
|
||||
#include "ahoptim.h"
|
||||
|
||||
|
||||
/* define this macro to use brute force optimisation -- this is slow, */
|
||||
/* define this macro to use brute force optimization -- this is slow, */
|
||||
/* but a good way to perfect the distortion function `by hand' through */
|
||||
/* tweaking */
|
||||
#define AH_BRUTE_FORCE
|
||||
@ -65,6 +65,7 @@
|
||||
|
||||
#define FLOAT( x ) ( (float)( (x) / 64.0 ) )
|
||||
|
||||
|
||||
static void
|
||||
optim_log( const char* fmt, ... )
|
||||
{
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* General types and definitions for the auto-hint module */
|
||||
/* (specification only). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 Catharon Productions Inc. */
|
||||
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
|
||||
/* Author: David Turner */
|
||||
/* */
|
||||
/* This file is part of the Catharon Typography Project and shall only */
|
||||
@ -207,7 +207,7 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
/* prev :: The previous point in same contour. */
|
||||
/* */
|
||||
struct AH_Point
|
||||
struct AH_Point
|
||||
{
|
||||
AH_Flags flags; /* point flags used by hinter */
|
||||
FT_Pos ox, oy;
|
||||
@ -420,14 +420,14 @@ FT_BEGIN_HEADER
|
||||
/* */
|
||||
typedef struct AH_Globals_
|
||||
{
|
||||
FT_Int num_widths;
|
||||
FT_Int num_heights;
|
||||
FT_Int num_widths;
|
||||
FT_Int num_heights;
|
||||
|
||||
FT_Pos widths [AH_MAX_WIDTHS];
|
||||
FT_Pos heights[AH_MAX_HEIGHTS];
|
||||
FT_Pos widths [AH_MAX_WIDTHS];
|
||||
FT_Pos heights[AH_MAX_HEIGHTS];
|
||||
|
||||
FT_Pos blue_refs [ah_blue_max];
|
||||
FT_Pos blue_shoots[ah_blue_max];
|
||||
FT_Pos blue_refs [ah_blue_max];
|
||||
FT_Pos blue_shoots[ah_blue_max];
|
||||
|
||||
} AH_Globals;
|
||||
|
||||
@ -488,14 +488,15 @@ FT_BEGIN_HEADER
|
||||
} AH_Hinter;
|
||||
|
||||
|
||||
#ifdef DEBUG_HINTER
|
||||
extern AH_Hinter* ah_debug_hinter;
|
||||
extern FT_Bool ah_debug_disable_horz;
|
||||
extern FT_Bool ah_debug_disable_vert;
|
||||
#ifdef DEBUG_HINTER
|
||||
extern AH_Hinter* ah_debug_hinter;
|
||||
extern FT_Bool ah_debug_disable_horz;
|
||||
extern FT_Bool ah_debug_disable_vert;
|
||||
#else
|
||||
# define ah_debug_disable_horz 0
|
||||
# define ah_debug_disable_vert 0
|
||||
#endif /* DEBUG_HINTER */
|
||||
#define ah_debug_disable_horz 0
|
||||
#define ah_debug_disable_vert 0
|
||||
#endif /* DEBUG_HINTER */
|
||||
|
||||
|
||||
FT_END_HEADER
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
|
||||
# Copyright 2001 Catharon Productions Inc.
|
||||
# Copyright 2001, 2002 Catharon Productions Inc.
|
||||
#
|
||||
# This file is part of the Catharon Typography Project and shall only
|
||||
# be used, modified, and distributed under the terms of the Catharon
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
|
||||
# Copyright 2000 Catharon Productions Inc.
|
||||
# Copyright 2000, 2001 Catharon Productions Inc.
|
||||
# Author: David Turner
|
||||
#
|
||||
# This file is part of the Catharon Typography Project and shall only
|
||||
|
@ -1,4 +1,4 @@
|
||||
# FreeType 2 src/base Jamfile (c) 2001 David Turner
|
||||
# FreeType 2 src/base Jamfile (c) 2001, 2002 David Turner
|
||||
#
|
||||
|
||||
SubDir FT2_TOP src base ;
|
||||
|
@ -1,10 +1,10 @@
|
||||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftobjs.c */
|
||||
/* ftapi.c */
|
||||
/* */
|
||||
/* The FreeType private base classes (body). */
|
||||
/* The FreeType compatibility functions (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -25,6 +25,7 @@
|
||||
#include FT_TRUETYPE_TABLES_H
|
||||
#include FT_OUTLINE_H
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Single object library component (body only). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -30,4 +30,5 @@
|
||||
#include "ftobjs.c"
|
||||
#include "ftnames.c"
|
||||
|
||||
|
||||
/* END */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Arithmetic computations (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Memory debugger (body). */
|
||||
/* */
|
||||
/* Copyright 2001 by */
|
||||
/* Copyright 2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -43,15 +43,15 @@
|
||||
FT_Byte* address;
|
||||
FT_Long size; /* < 0 if the block was freed */
|
||||
|
||||
const char* alloc_file_name;
|
||||
const char* alloc_file_name;
|
||||
FT_Long alloc_line_no;
|
||||
|
||||
const char* free_file_name;
|
||||
const char* free_file_name;
|
||||
FT_Long free_line_no;
|
||||
|
||||
FT_MemNode link;
|
||||
|
||||
} FT_MemNodeRec;
|
||||
} FT_MemNodeRec;
|
||||
|
||||
|
||||
typedef struct FT_MemTableRec_
|
||||
@ -64,16 +64,16 @@
|
||||
FT_ULong alloc_current;
|
||||
FT_ULong alloc_max;
|
||||
|
||||
const char* file_name;
|
||||
const char* file_name;
|
||||
FT_Long line_no;
|
||||
|
||||
FT_Memory memory;
|
||||
FT_Pointer memory_user;
|
||||
FT_Pointer memory_user;
|
||||
FT_Alloc_Func alloc;
|
||||
FT_Free_Func free;
|
||||
FT_Realloc_Func realloc;
|
||||
|
||||
} FT_MemTableRec;
|
||||
} FT_MemTableRec;
|
||||
|
||||
|
||||
#define FT_MEM_SIZE_MIN 7
|
||||
@ -270,7 +270,7 @@
|
||||
table = NULL;
|
||||
}
|
||||
|
||||
Exit:
|
||||
Exit:
|
||||
return table;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,21 @@
|
||||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftgloadr.c */
|
||||
/* */
|
||||
/* The FreeType glyph loader (body). */
|
||||
/* */
|
||||
/* Copyright 2002 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. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_GLYPH_LOADER_H
|
||||
#include FT_INTERNAL_MEMORY_H
|
||||
@ -5,6 +23,7 @@
|
||||
#undef FT_COMPONENT
|
||||
#define FT_COMPONENT trace_gloader
|
||||
|
||||
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
@ -46,11 +65,11 @@
|
||||
|
||||
/* create a new glyph loader */
|
||||
FT_BASE_DEF( FT_Error )
|
||||
FT_GlyphLoader_New( FT_Memory memory,
|
||||
FT_GlyphLoader *aloader )
|
||||
FT_GlyphLoader_New( FT_Memory memory,
|
||||
FT_GlyphLoader *aloader )
|
||||
{
|
||||
FT_GlyphLoader loader;
|
||||
FT_Error error;
|
||||
FT_GlyphLoader loader;
|
||||
FT_Error error;
|
||||
|
||||
|
||||
if ( !FT_NEW( loader ) )
|
||||
@ -64,7 +83,7 @@
|
||||
|
||||
/* rewind the glyph loader - reset counters to 0 */
|
||||
FT_BASE_DEF( void )
|
||||
FT_GlyphLoader_Rewind( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Rewind( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_GlyphLoad base = &loader->base;
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
@ -81,7 +100,7 @@
|
||||
/* reset the glyph loader, frees all allocated tables */
|
||||
/* and starts from zero */
|
||||
FT_BASE_DEF( void )
|
||||
FT_GlyphLoader_Reset( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Reset( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_Memory memory = loader->memory;
|
||||
|
||||
@ -102,7 +121,7 @@
|
||||
|
||||
/* delete a glyph loader */
|
||||
FT_BASE_DEF( void )
|
||||
FT_GlyphLoader_Done( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Done( FT_GlyphLoader loader )
|
||||
{
|
||||
if ( loader )
|
||||
{
|
||||
@ -117,7 +136,7 @@
|
||||
|
||||
/* re-adjust the `current' outline fields */
|
||||
static void
|
||||
FT_GlyphLoader_Adjust_Points( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Adjust_Points( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_Outline* base = &loader->base.outline;
|
||||
FT_Outline* current = &loader->current.outline;
|
||||
@ -135,7 +154,7 @@
|
||||
|
||||
|
||||
FT_BASE_DEF( FT_Error )
|
||||
FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_CreateExtra( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_Error error;
|
||||
FT_Memory memory = loader->memory;
|
||||
@ -152,7 +171,7 @@
|
||||
|
||||
/* re-adjust the `current' subglyphs field */
|
||||
static void
|
||||
FT_GlyphLoader_Adjust_Subglyphs( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Adjust_Subglyphs( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_GlyphLoad base = &loader->base;
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
@ -167,9 +186,9 @@
|
||||
/* DOESN'T change the number of points within the loader! */
|
||||
/* */
|
||||
FT_BASE_DEF( FT_Error )
|
||||
FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader,
|
||||
FT_UInt n_points,
|
||||
FT_UInt n_contours )
|
||||
FT_GlyphLoader_CheckPoints( FT_GlyphLoader loader,
|
||||
FT_UInt n_points,
|
||||
FT_UInt n_contours )
|
||||
{
|
||||
FT_Memory memory = loader->memory;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
@ -190,11 +209,11 @@
|
||||
|
||||
if ( FT_RENEW_ARRAY( base->points, old_max, new_max ) ||
|
||||
FT_RENEW_ARRAY( base->tags, old_max, new_max ) )
|
||||
goto Exit;
|
||||
goto Exit;
|
||||
|
||||
if ( loader->use_extra &&
|
||||
FT_RENEW_ARRAY( loader->base.extra_points, old_max, new_max ) )
|
||||
goto Exit;
|
||||
goto Exit;
|
||||
|
||||
adjust = 1;
|
||||
loader->max_points = new_max;
|
||||
@ -227,12 +246,12 @@
|
||||
/* NOT change the number of subglyphs within the loader! */
|
||||
/* */
|
||||
FT_BASE_DEF( FT_Error )
|
||||
FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader,
|
||||
FT_UInt n_subs )
|
||||
FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader loader,
|
||||
FT_UInt n_subs )
|
||||
{
|
||||
FT_Memory memory = loader->memory;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_UInt new_max, old_max;
|
||||
FT_Memory memory = loader->memory;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_UInt new_max, old_max;
|
||||
|
||||
FT_GlyphLoad base = &loader->base;
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
@ -258,7 +277,7 @@
|
||||
|
||||
/* prepare loader for the addition of a new glyph on top of the base one */
|
||||
FT_BASE_DEF( void )
|
||||
FT_GlyphLoader_Prepare( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Prepare( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
|
||||
@ -274,14 +293,14 @@
|
||||
|
||||
/* add current glyph to the base image - and prepare for another */
|
||||
FT_BASE_DEF( void )
|
||||
FT_GlyphLoader_Add( FT_GlyphLoader loader )
|
||||
FT_GlyphLoader_Add( FT_GlyphLoader loader )
|
||||
{
|
||||
FT_GlyphLoad base = &loader->base;
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
FT_GlyphLoad base = &loader->base;
|
||||
FT_GlyphLoad current = &loader->current;
|
||||
|
||||
FT_UInt n_curr_contours = current->outline.n_contours;
|
||||
FT_UInt n_base_points = base->outline.n_points;
|
||||
FT_UInt n;
|
||||
FT_UInt n_curr_contours = current->outline.n_contours;
|
||||
FT_UInt n_base_points = base->outline.n_points;
|
||||
FT_UInt n;
|
||||
|
||||
|
||||
base->outline.n_points =
|
||||
@ -302,8 +321,8 @@
|
||||
|
||||
|
||||
FT_BASE_DEF( FT_Error )
|
||||
FT_GlyphLoader_CopyPoints( FT_GlyphLoader target,
|
||||
FT_GlyphLoader source )
|
||||
FT_GlyphLoader_CopyPoints( FT_GlyphLoader target,
|
||||
FT_GlyphLoader source )
|
||||
{
|
||||
FT_Error error;
|
||||
FT_UInt num_points = source->base.outline.n_points;
|
||||
@ -318,16 +337,16 @@
|
||||
|
||||
|
||||
FT_MEM_COPY( out->points, in->points,
|
||||
num_points * sizeof ( FT_Vector ) );
|
||||
num_points * sizeof ( FT_Vector ) );
|
||||
FT_MEM_COPY( out->tags, in->tags,
|
||||
num_points * sizeof ( char ) );
|
||||
num_points * sizeof ( char ) );
|
||||
FT_MEM_COPY( out->contours, in->contours,
|
||||
num_contours * sizeof ( short ) );
|
||||
num_contours * sizeof ( short ) );
|
||||
|
||||
/* do we need to copy the extra points? */
|
||||
if ( target->use_extra && source->use_extra )
|
||||
FT_MEM_COPY( target->base.extra_points, source->base.extra_points,
|
||||
num_points * sizeof ( FT_Vector ) );
|
||||
num_points * sizeof ( FT_Vector ) );
|
||||
|
||||
out->n_points = (short)num_points;
|
||||
out->n_contours = (short)num_contours;
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType convenience functions to handle glyphs (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType initialization layer (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Generic list support for FreeType (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* Mac FOND support. Written by just@letterror.com. */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -7,7 +7,7 @@
|
||||
/* */
|
||||
/* This is _not_ used to retrieve glyph names! */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* The FreeType private base classes (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -28,6 +28,7 @@
|
||||
#include <string.h> /* for strcmp() */
|
||||
#include <setjmp.h> /* for setjmp() and longjmp() */
|
||||
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_validator_init( FT_Validator valid,
|
||||
const FT_Byte* base,
|
||||
@ -46,10 +47,12 @@
|
||||
{
|
||||
int result;
|
||||
|
||||
|
||||
result = setjmp( valid->jump_buffer );
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
FT_BASE_DEF( void )
|
||||
ft_validator_error( FT_Validator valid,
|
||||
FT_Error error )
|
||||
@ -72,8 +75,8 @@
|
||||
/*************************************************************************/
|
||||
|
||||
|
||||
/* create a new input stream from a FT_Open_Args structure */
|
||||
/* */
|
||||
/* create a new input stream from a FT_Open_Args structure */
|
||||
/* */
|
||||
static FT_Error
|
||||
ft_input_stream_new( FT_Library library,
|
||||
FT_Open_Args* args,
|
||||
@ -92,6 +95,7 @@
|
||||
|
||||
*astream = 0;
|
||||
memory = library->memory;
|
||||
|
||||
if ( FT_NEW( stream ) )
|
||||
goto Exit;
|
||||
|
||||
@ -101,8 +105,8 @@
|
||||
{
|
||||
/* create a memory-based stream */
|
||||
FT_Stream_OpenMemory( stream,
|
||||
(const FT_Byte*)args->memory_base,
|
||||
args->memory_size );
|
||||
(const FT_Byte*)args->memory_base,
|
||||
args->memory_size );
|
||||
}
|
||||
else if ( args->flags & ft_open_pathname )
|
||||
{
|
||||
@ -134,7 +138,6 @@
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void
|
||||
ft_input_stream_free( FT_Stream stream,
|
||||
FT_Int external )
|
||||
@ -143,6 +146,7 @@
|
||||
{
|
||||
FT_Memory memory = stream->memory;
|
||||
|
||||
|
||||
FT_Stream_Close( stream );
|
||||
|
||||
if ( !external )
|
||||
@ -172,7 +176,7 @@
|
||||
ft_glyphslot_init( FT_GlyphSlot slot )
|
||||
{
|
||||
FT_Driver driver = slot->face->driver;
|
||||
FT_Driver_Class clazz = driver->clazz;
|
||||
FT_Driver_Class clazz = driver->clazz;
|
||||
FT_Memory memory = driver->root.memory;
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Slot_Internal internal;
|
||||
@ -232,7 +236,7 @@
|
||||
ft_glyphslot_done( FT_GlyphSlot slot )
|
||||
{
|
||||
FT_Driver driver = slot->face->driver;
|
||||
FT_Driver_Class clazz = driver->clazz;
|
||||
FT_Driver_Class clazz = driver->clazz;
|
||||
FT_Memory memory = driver->root.memory;
|
||||
|
||||
|
||||
@ -262,7 +266,7 @@
|
||||
{
|
||||
FT_Error error;
|
||||
FT_Driver driver;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Memory memory;
|
||||
FT_GlyphSlot slot;
|
||||
|
||||
@ -305,10 +309,10 @@
|
||||
{
|
||||
if ( slot )
|
||||
{
|
||||
FT_Driver driver = slot->face->driver;
|
||||
FT_Memory memory = driver->root.memory;
|
||||
FT_GlyphSlot* parent;
|
||||
FT_GlyphSlot cur;
|
||||
FT_Driver driver = slot->face->driver;
|
||||
FT_Memory memory = driver->root.memory;
|
||||
FT_GlyphSlot* parent;
|
||||
FT_GlyphSlot cur;
|
||||
|
||||
|
||||
/* Remove slot from its parent face's list */
|
||||
@ -497,6 +501,7 @@
|
||||
FT_UInt EM = face->units_per_EM;
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
|
||||
slot->linearHoriAdvance = FT_MulDiv( slot->linearHoriAdvance,
|
||||
(FT_Long)metrics->x_ppem << 16, EM );
|
||||
|
||||
@ -596,19 +601,19 @@
|
||||
if ( face->autohint.finalizer )
|
||||
face->autohint.finalizer( face->autohint.data );
|
||||
|
||||
/* Discard glyph slots for this face */
|
||||
/* Discard glyph slots for this face. */
|
||||
/* Beware! FT_Done_GlyphSlot() changes the field `face->glyph' */
|
||||
while ( face->glyph )
|
||||
FT_Done_GlyphSlot( face->glyph );
|
||||
|
||||
/* Discard all sizes for this face */
|
||||
/* discard all sizes for this face */
|
||||
FT_List_Finalize( &face->sizes_list,
|
||||
(FT_List_Destructor)destroy_size,
|
||||
memory,
|
||||
driver );
|
||||
face->size = 0;
|
||||
|
||||
/* Now discard client data */
|
||||
/* now discard client data */
|
||||
if ( face->generic.finalizer )
|
||||
face->generic.finalizer( face );
|
||||
|
||||
@ -618,10 +623,12 @@
|
||||
{
|
||||
FT_Int n;
|
||||
|
||||
|
||||
for ( n = 0; n < face->num_charmaps; n++ )
|
||||
{
|
||||
FT_CMap cmap = FT_CMAP( face->charmaps[n] );
|
||||
|
||||
|
||||
FT_CMap_Done( cmap );
|
||||
|
||||
face->charmaps[n] = NULL;
|
||||
@ -639,7 +646,8 @@
|
||||
clazz->done_face( face );
|
||||
|
||||
/* close the stream for this face if needed */
|
||||
ft_input_stream_free( face->stream,
|
||||
ft_input_stream_free(
|
||||
face->stream,
|
||||
( face->face_flags & FT_FACE_FLAG_EXTERNAL_STREAM ) != 0 );
|
||||
|
||||
face->stream = 0;
|
||||
@ -1066,13 +1074,13 @@
|
||||
FT_New_Size( FT_Face face,
|
||||
FT_Size *asize )
|
||||
{
|
||||
FT_Error error;
|
||||
FT_Memory memory;
|
||||
FT_Driver driver;
|
||||
FT_Error error;
|
||||
FT_Memory memory;
|
||||
FT_Driver driver;
|
||||
FT_Driver_Class clazz;
|
||||
|
||||
FT_Size size = 0;
|
||||
FT_ListNode node = 0;
|
||||
FT_Size size = 0;
|
||||
FT_ListNode node = 0;
|
||||
|
||||
|
||||
if ( !face )
|
||||
@ -1200,7 +1208,7 @@
|
||||
{
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Driver driver;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Size_Metrics* metrics;
|
||||
FT_Long dim_x, dim_y;
|
||||
|
||||
@ -1269,7 +1277,7 @@
|
||||
{
|
||||
FT_Error error = FT_Err_Ok;
|
||||
FT_Driver driver;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Driver_Class clazz;
|
||||
FT_Size_Metrics* metrics = &face->size->metrics;
|
||||
|
||||
|
||||
@ -1435,6 +1443,7 @@
|
||||
FT_Face face = cmap->charmap.face;
|
||||
FT_Memory memory = FT_FACE_MEMORY(face);
|
||||
|
||||
|
||||
if ( clazz->done )
|
||||
clazz->done( cmap );
|
||||
|
||||
@ -1454,6 +1463,7 @@
|
||||
FT_Memory memory;
|
||||
FT_CMap cmap;
|
||||
|
||||
|
||||
if ( clazz == NULL || charmap == NULL || charmap->face == NULL )
|
||||
return FT_Err_Invalid_Argument;
|
||||
|
||||
@ -1468,7 +1478,7 @@
|
||||
if ( clazz->init )
|
||||
{
|
||||
error = clazz->init( cmap, init_data );
|
||||
if (error)
|
||||
if ( error )
|
||||
goto Fail;
|
||||
}
|
||||
|
||||
@ -1478,7 +1488,7 @@
|
||||
face->num_charmaps+1 ) )
|
||||
goto Fail;
|
||||
|
||||
face->charmaps[ face->num_charmaps++ ] = (FT_CharMap) cmap;
|
||||
face->charmaps[face->num_charmaps++] = (FT_CharMap)cmap;
|
||||
}
|
||||
|
||||
Exit:
|
||||
@ -1509,6 +1519,7 @@
|
||||
{
|
||||
FT_CMap cmap = FT_CMAP( face->charmap );
|
||||
|
||||
|
||||
result = cmap->clazz->char_index( cmap, charcode );
|
||||
}
|
||||
return result;
|
||||
@ -1516,8 +1527,6 @@
|
||||
|
||||
#else /* !FT_CONFIG_OPTION_USE_CMAPS */
|
||||
|
||||
|
||||
|
||||
FT_EXPORT_DEF( FT_UInt )
|
||||
FT_Get_Char_Index( FT_Face face,
|
||||
FT_ULong charcode )
|
||||
@ -1543,8 +1552,9 @@
|
||||
FT_Get_First_Char( FT_Face face,
|
||||
FT_UInt *agindex )
|
||||
{
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
|
||||
|
||||
if ( face && face->charmap )
|
||||
{
|
||||
@ -1569,8 +1579,8 @@
|
||||
FT_ULong charcode,
|
||||
FT_UInt *agindex )
|
||||
{
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
FT_ULong result = 0;
|
||||
FT_UInt gindex = 0;
|
||||
|
||||
|
||||
if ( face && face->charmap )
|
||||
@ -1578,6 +1588,7 @@
|
||||
FT_UInt32 code = (FT_UInt32)charcode;
|
||||
FT_CMap cmap = FT_CMAP( face->charmap );
|
||||
|
||||
|
||||
gindex = cmap->clazz->char_next( cmap, &code );
|
||||
result = ( gindex == 0 ) ? 0 : code;
|
||||
}
|
||||
@ -1673,8 +1684,8 @@
|
||||
FT_HAS_GLYPH_NAMES( face ) )
|
||||
{
|
||||
/* now, lookup for glyph name */
|
||||
FT_Driver driver = face->driver;
|
||||
FT_Module_Class* clazz = FT_MODULE_CLASS( driver );
|
||||
FT_Driver driver = face->driver;
|
||||
FT_Module_Class* clazz = FT_MODULE_CLASS( driver );
|
||||
|
||||
|
||||
if ( clazz->get_interface )
|
||||
@ -1707,7 +1718,7 @@
|
||||
result = face->internal->postscript_name;
|
||||
if ( !result )
|
||||
{
|
||||
/* now, lookup for glyph name */
|
||||
/* now, look up glyph name */
|
||||
FT_Driver driver = face->driver;
|
||||
FT_Module_Class* clazz = FT_MODULE_CLASS( driver );
|
||||
|
||||
@ -1792,8 +1803,8 @@
|
||||
FT_Glyph_Format format,
|
||||
FT_ListNode* node )
|
||||
{
|
||||
FT_ListNode cur;
|
||||
FT_Renderer result = 0;
|
||||
FT_ListNode cur;
|
||||
FT_Renderer result = 0;
|
||||
|
||||
|
||||
if ( !library )
|
||||
@ -1938,7 +1949,7 @@
|
||||
{
|
||||
/* test for valid `library' delayed to FT_Lookup_Renderer() */
|
||||
|
||||
return FT_Lookup_Renderer( library, format, 0 );
|
||||
return FT_Lookup_Renderer( library, format, 0 );
|
||||
}
|
||||
|
||||
|
||||
@ -2055,7 +2066,7 @@
|
||||
FT_Render_Glyph( FT_GlyphSlot slot,
|
||||
FT_UInt render_mode )
|
||||
{
|
||||
FT_Library library;
|
||||
FT_Library library;
|
||||
|
||||
|
||||
if ( !slot )
|
||||
@ -2205,7 +2216,7 @@
|
||||
if ( FT_MODULE_IS_DRIVER( module ) )
|
||||
{
|
||||
/* allocate glyph loader if needed */
|
||||
FT_Driver driver = FT_DRIVER( module );
|
||||
FT_Driver driver = FT_DRIVER( module );
|
||||
|
||||
|
||||
driver->clazz = (FT_Driver_Class)module->clazz;
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* FreeType outline management (body). */
|
||||
/* */
|
||||
/* Copyright 1996-2001 by */
|
||||
/* Copyright 1996-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -358,13 +358,13 @@
|
||||
return FT_Err_Invalid_Argument;
|
||||
|
||||
FT_MEM_COPY( target->points, source->points,
|
||||
source->n_points * sizeof ( FT_Vector ) );
|
||||
source->n_points * sizeof ( FT_Vector ) );
|
||||
|
||||
FT_MEM_COPY( target->tags, source->tags,
|
||||
source->n_points * sizeof ( FT_Byte ) );
|
||||
source->n_points * sizeof ( FT_Byte ) );
|
||||
|
||||
FT_MEM_COPY( target->contours, source->contours,
|
||||
source->n_contours * sizeof ( FT_Short ) );
|
||||
source->n_contours * sizeof ( FT_Short ) );
|
||||
|
||||
/* copy all flags, except the `ft_outline_owner' one */
|
||||
is_owner = target->flags & ft_outline_owner;
|
||||
|
@ -4,7 +4,7 @@
|
||||
/* */
|
||||
/* I/O stream support (body). */
|
||||
/* */
|
||||
/* Copyright 2000-2001 by */
|
||||
/* Copyright 2000-2001, 2002 by */
|
||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||
/* */
|
||||
/* This file is part of the FreeType project, and may only be used, */
|
||||
@ -69,8 +69,8 @@
|
||||
{
|
||||
if ( stream->read( stream, pos, 0, 0 ) )
|
||||
{
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_Seek", pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
pos, stream->size ));
|
||||
|
||||
error = FT_Err_Invalid_Stream_Operation;
|
||||
}
|
||||
@ -78,8 +78,8 @@
|
||||
/* note that seeking to the first position after the file is valid */
|
||||
else if ( pos > stream->size )
|
||||
{
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_Seek", pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
pos, stream->size ));
|
||||
|
||||
error = FT_Err_Invalid_Stream_Operation;
|
||||
}
|
||||
@ -124,8 +124,8 @@
|
||||
|
||||
if ( pos >= stream->size )
|
||||
{
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_ReadAt", pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_ReadAt: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
pos, stream->size ));
|
||||
|
||||
return FT_Err_Invalid_Stream_Operation;
|
||||
}
|
||||
@ -145,8 +145,9 @@
|
||||
|
||||
if ( read_bytes < count )
|
||||
{
|
||||
FT_ERROR(( "%s: invalid read; expected %lu bytes, got %lu\n",
|
||||
"FT_Stream_ReadAt", count, read_bytes ));
|
||||
FT_ERROR(( "FT_Stream_ReadAt:" ));
|
||||
FT_ERROR(( " invalid read; expected %lu bytes, got %lu\n",
|
||||
count, read_bytes ));
|
||||
|
||||
error = FT_Err_Invalid_Stream_Operation;
|
||||
}
|
||||
@ -263,7 +264,7 @@
|
||||
/* */
|
||||
/* In this case, the loader code handles the 0-length table */
|
||||
/* gracefully; however, stream.cursor is really set to 0 by the */
|
||||
/* FT_Stream_EnterFrame() call, and this is not an error. */
|
||||
/* FT_Stream_EnterFrame() call, and this is not an error. */
|
||||
/* */
|
||||
FT_ASSERT( stream );
|
||||
|
||||
@ -416,8 +417,8 @@
|
||||
|
||||
Fail:
|
||||
*error = FT_Err_Invalid_Stream_Operation;
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_ReadChar", stream->pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_ReadChar: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
stream->pos, stream->size ));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -509,7 +510,7 @@
|
||||
|
||||
Fail:
|
||||
*error = FT_Err_Invalid_Stream_Operation;
|
||||
FT_ERROR(( "FT_Stream_ReadShort:" ));
|
||||
FT_ERROR(( "FT_Stream_ReadShortLE:" ));
|
||||
FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
stream->pos, stream->size ));
|
||||
|
||||
@ -556,8 +557,9 @@
|
||||
|
||||
Fail:
|
||||
*error = FT_Err_Invalid_Stream_Operation;
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_ReadOffset", stream->pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_ReadOffset:" ));
|
||||
FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
stream->pos, stream->size ));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -567,7 +569,7 @@
|
||||
FT_Stream_ReadLong( FT_Stream stream,
|
||||
FT_Error* error )
|
||||
{
|
||||
FT_Byte reads[4];
|
||||
FT_Byte reads[4];
|
||||
FT_Byte* p = 0;
|
||||
FT_Long result = 0;
|
||||
|
||||
@ -601,8 +603,8 @@
|
||||
return result;
|
||||
|
||||
Fail:
|
||||
FT_ERROR(( "%s: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
"FT_Stream_ReadLong", stream->pos, stream->size ));
|
||||
FT_ERROR(( "FT_Stream_ReadLong: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
stream->pos, stream->size ));
|
||||
*error = FT_Err_Invalid_Stream_Operation;
|
||||
|
||||
return 0;
|
||||
@ -647,7 +649,7 @@
|
||||
return result;
|
||||
|
||||
Fail:
|
||||
FT_ERROR(( "FT_Stream_ReadLong:" ));
|
||||
FT_ERROR(( "FT_Stream_ReadLongLE:" ));
|
||||
FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
|
||||
stream->pos, stream->size ));
|
||||
*error = FT_Err_Invalid_Stream_Operation;
|
||||
|
@ -1,3 +1,21 @@
|
||||
/***************************************************************************/
|
||||
/* */
|
||||
/* ftutil.c */
|
||||
/* */
|
||||
/* FreeType utility file for memory and list management (body). */
|
||||
/* */
|
||||
/* Copyright 2002 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. */
|
||||
/* */
|
||||
/***************************************************************************/
|
||||
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_INTERNAL_DEBUG_H
|
||||
#include FT_INTERNAL_MEMORY_H
|
||||
@ -309,3 +327,4 @@
|
||||
}
|
||||
|
||||
|
||||
/* END */
|
||||
|
@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
|
||||
# Copyright 1996-2000 by
|
||||
# Copyright 1996-2000, 2002 by
|
||||
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
#
|
||||
# This file is part of the FreeType project, and may only be used, modified,
|
||||
|
Loading…
Reference in New Issue
Block a user