Cleanups.

This commit is contained in:
Werner Lemberg 2003-04-22 07:49:24 +00:00
parent 90e979e7be
commit 3ae7cc997a
18 changed files with 332 additions and 216 deletions

View File

@ -77,9 +77,11 @@
* src/cache/ftlru.c: Fixed an invalid assertion check. * src/cache/ftlru.c: Fixed an invalid assertion check.
* src/autohint/ahglyph.h, src/autohint/ahglyph.c, * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
src/autohint/ahglobal.c, src/autohint/ahhint.c: Fixed blue-scale arguments.
problem. * src/autohint/ahglyph.h: Updated.
* src/autohint/ahhint.c (ah_hinter_load): Updated.
* src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
* src/cache/ftccache.c: Fixed small bug that could crash the cache * src/cache/ftccache.c: Fixed small bug that could crash the cache
in rare circumstances (mostly with broken fonts). in rare circumstances (mostly with broken fonts).
@ -169,8 +171,8 @@
Fixing the slight distortion problem that ocurred due to the latest Fixing the slight distortion problem that ocurred due to the latest
auto-hinter changes. auto-hinter changes.
* src/autohint/ahhint.c: Disabled the advance width "correction" * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
which seemed to provide more trouble than benefits. "correction" which seemed to provide more trouble than benefits.
2003-02-13 Graham Asher <graham.asher@btinternet.com> 2003-02-13 Graham Asher <graham.asher@btinternet.com>
@ -203,10 +205,16 @@
display a waterfall with a font without a Unicode charmap (e.g. display a waterfall with a font without a Unicode charmap (e.g.
SYMBOL.TTF). SYMBOL.TTF).
* src/autohint/ahtypes.h, src/autohint/ahhint.c, src/base/ftobjs.c, Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
src/truetype/ttobjs.c: Implemented FT_CONFIG_CHESTER_BLUE_SCALE, patch from David Chester, but with a much simpler (and saner)
corresponding to the last patch from David Chester, but with a much implementation.
simpler (and saner) implementation.
* src/autohint/ahhint.c (ah_hinter_load_glyph)
[FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
the top of non-capital letters is aligned on a pixel boundary
whenever possible.
* src/base/ftobjs.c, src/truetype/ttobjs.c:
* src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting
rid of stem snapping seems to work well here (though the stems are rid of stem snapping seems to work well here (though the stems are
@ -217,7 +225,8 @@
2003-01-22 David Chester <davidchester@qmx.net> 2003-01-22 David Chester <davidchester@qmx.net>
* src/autohint/ahhint.c: Small fix to the stem width optimization. * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
stem width optimization.
2003-01-22 David Turner <david@freetype.org> 2003-01-22 David Turner <david@freetype.org>
@ -308,8 +317,27 @@
[FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
features. features.
* src/autohint/ahglobal.h, src/autohint/ahglobal.c, * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
src/autohint/ahglyph.c, src/autohint/ahtypes.h: Add blue zone for `fijkdbh'.
* src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
[FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
* src/autohint/ahglyph.c (ah_outline_compute_edges)
[FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
(ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
Increase threshold for `best_dist'.
* src/autohint/ahhint.c (ah_compute_stem_width)
[FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
handling.
(ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
version of `ah_compute_stem_width'.
(ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
alignment when stem widths are less than 1.5 pixels wide centers the
stem slightly off-center of the center of a pixel (this increases
sharpness and consistency).
[FT_CONFIG_CHESTER_SERIF]: Use special version of
`ah_compute_stem_width'.
* src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
`AH_BLUE_SMALL_F_TOP'.
2003-01-11 David Turner <david@freetype.org> 2003-01-11 David Turner <david@freetype.org>
@ -328,10 +356,15 @@
2003-01-08 Owen Taylor <owen@redhat.com> 2003-01-08 Owen Taylor <owen@redhat.com>
* src/autohint/ahtypes.h, src/autohint/ahhint.c, Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
src/pshinter/pshalgo3.h, src/pshinter/pshalgo3.c: Implemented the postscript hinters.
FT_RENDER_MODE_LIGHT hinting mode in the auto and postscript
hinters. * src/autohint/ahhint.c (ah_compute_stem_width): Handle
hinter->do_stem_adjust.
(ah_hinter_load_glyph): Set hinter->do_stem_adjust.
* src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
* src/pshinter/pshalgo3.h, src/pshinter/pshalgo3.c:
* include/freetype/freetype.h (FT_Render_Mode): Add * include/freetype/freetype.h (FT_Render_Mode): Add
FT_RENDER_MODE_LIGHT. FT_RENDER_MODE_LIGHT.
@ -457,9 +490,13 @@
support fot the first GSUB lookups. Nothing that really compiles support fot the first GSUB lookups. Nothing that really compiles
for now though. for now though.
* src/autohint/ahhint.c: Disabled serif stem width quantization. It * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
produces slightly better shapes though this is not distinguishable width quantization. It produces slightly better shapes though this
with many fonts. is not distinguishable with many fonts.
Remove other dead code.
* src/Jamfile, src/*/Jamfile: Simplified.
Use $(FT2_SRC_DIR).
2002-11-06 David Turner <david@freetype.org> 2002-11-06 David Turner <david@freetype.org>

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing BDF-specific strings (specification). */ /* FreeType API for accessing BDF-specific strings (specification). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -49,20 +49,20 @@ FT_BEGIN_HEADER
* FT_PropertyType * FT_PropertyType
* *
* @description: * @description:
* list of BDF property types * A list of BDF property types.
* *
* @values: * @values:
* BDF_PROPERTY_TYPE_NONE :: * BDF_PROPERTY_TYPE_NONE ::
* value 0 is used to indicate a missing property * Value 0 is used to indicate a missing property.
* *
* BDF_PROPERTY_TYPE_ATOM :: * BDF_PROPERTY_TYPE_ATOM ::
* property is a string atom * Property is a string atom.
* *
* BDF_PROPERTY_TYPE_INTEGER :: * BDF_PROPERTY_TYPE_INTEGER ::
* property is a 32-bit signed integer * Property is a 32-bit signed integer.
* *
* BDF_PROPERTY_TYPE_CARDINAL :: * BDF_PROPERTY_TYPE_CARDINAL ::
* property is a 32-bit unsigned integer * Property is a 32-bit unsigned integer.
*/ */
typedef enum typedef enum
{ {
@ -76,34 +76,39 @@ FT_BEGIN_HEADER
/********************************************************************** /**********************************************************************
* *
* @type: BDF_Property * @type:
* BDF_Property
* *
* @description: * @description:
* handle to a @BDF_PropertyRec structure used to model a given * A handle to a @BDF_PropertyRec structure to model a given
* BDF/PCF property * BDF/PCF property.
*/ */
typedef struct BDF_PropertyRec_* BDF_Property; typedef struct BDF_PropertyRec_* BDF_Property;
/********************************************************************** /**********************************************************************
* *
* @struct: BDF_PropertyRec * @struct:
* BDF_PropertyRec
* *
* @description: * @description:
* models a given BDF/PCF property * This structure models a given BDF/PCF property.
* *
* @note: * @fields:
* type :: property type * type :: The property type.
* u.atom :: atom string, when type is @BDF_PROPERTY_TYPE_ATOM *
* u.integer :: signed integer, when type is @BDF_PROPERTY_TYPE_INTEGER * u.atom :: The atom string, if type is @BDF_PROPERTY_TYPE_ATOM.
* u.cardinal :: unsigned integer, when type is @BDF_PROPERTY_TYPE_CARDINAL * u.integer :: A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
* u.cardinal :: An unsigned integer, if type is
* @BDF_PROPERTY_TYPE_CARDINAL.
*/ */
typedef struct BDF_PropertyRec_ typedef struct BDF_PropertyRec_
{ {
BDF_PropertyType type; BDF_PropertyType type;
union { union {
const char* atom; const char* atom;
FT_Int32 integer; FT_Int32 integer;
FT_UInt32 cardinal; FT_UInt32 cardinal;
} u; } u;
@ -121,7 +126,7 @@ FT_BEGIN_HEADER
* *
* @input: * @input:
* face :: * face ::
* handle to input face * A handle to the input face.
* *
* @output: * @output:
* acharset_encoding :: * acharset_encoding ::
@ -131,7 +136,7 @@ FT_BEGIN_HEADER
* Charset registry, as a C string, owned by the face. * Charset registry, as a C string, owned by the face.
* *
* @return: * @return:
* FreeType rror code. 0 means success. * FreeType error code. 0 means success.
* *
* @note: * @note:
* This function only works with BDF faces, returning an error otherwise. * This function only works with BDF faces, returning an error otherwise.
@ -141,31 +146,33 @@ FT_BEGIN_HEADER
const char* *acharset_encoding, const char* *acharset_encoding,
const char* *acharset_registry ); const char* *acharset_registry );
/********************************************************************** /**********************************************************************
* *
* @function: * @function:
* FT_Get_BDF_Property * FT_Get_BDF_Property
* *
* @description: * @description:
* Retrieves a BDF property from a BDF or PCF font file * Retrieves a BDF property from a BDF or PCF font file.
* *
* @input: * @input:
* face :: handle to input face * face :: A handle to the input face.
* name :: property name *
* name :: The property name.
* *
* @output: * @output:
* aproperty :: the property * aproperty :: The property.
* *
* @return: * @return:
* FreeType error code. 0 means success. * FreeType error code. 0 means success.
* *
* @note: * @note:
* This function works with BDF _and_ PCF fonts. It returns an error * This function works with BDF _and_ PCF fonts. It returns an error
* otherwise. it also returns an error when the property is not in the * otherwise. It also returns an error if the property is not in the
* font. * font.
* *
* in case of error, "aproperty->type" is always set to * In case of error, "aproperty->type" is always set to
* @BDF_PROPERTY_TYPE_NONE * @BDF_PROPERTY_TYPE_NONE.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_BDF_Property( FT_Face face, FT_Get_BDF_Property( FT_Face face,

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Gzip-compressed stream support. */ /* Gzip-compressed stream support. */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -40,47 +40,54 @@ FT_BEGIN_HEADER
/* */ /* */
/*************************************************************************/ /*************************************************************************/
/************************************************************************ /************************************************************************
* *
* @type: FT_Stream_OpenGzip * @function:
* FT_Stream_OpenGzip
* *
* @description: * @description:
* open a new stream to parse gzip-compressed font files. This is * Open a new stream to parse gzip-compressed font files. This is
* mainly used to support the compressed *.pcf.gz fonts that come * mainly used to support the compressed *.pcf.gz fonts that come
* with XFree86 * with XFree86.
* *
* @input: * @input:
* stream :: target embedding stream * stream :: The target embedding stream.
* source :: source stream, used to *
* source :: The source stream.
* *
* @return: * @return:
* error code. 0 means success * FreeType error code. 0 means success.
* *
* @note: * @note:
* the source stream must be opened _before_ calling this function. * The source stream must be opened _before_ calling this function.
* *
* calling @FT_Stream_Close on the new stream will *not* call * Calling @FT_Stream_Close on the new stream will *not* call
* @FT_Stream_Close on the source stream. None of the stream objects * @FT_Stream_Close on the source stream. None of the stream objects
* will be released to the heap. * will be released to the heap.
* *
* the stream implementation is very basic, and resets the decompression * The stream implementation is very basic and resets the decompression
* process each time seeking backwards is needed within the stream * process each time seeking backwards is needed within the stream.
* *
* in certain builds of the library, gzip compression recognition is * In certain builds of the library, gzip compression recognition is
* automatic when calling @FT_New_Face or @FT_Open_Face. This means that * automatically handled when calling @FT_New_Face or @FT_Open_Face.
* if no font driver is capable of handling the raw compressed file, * This means that if no font driver is capable of handling the raw
* the library will try to open a gzip stream from it and re-open * compressed file, the library will try to open a gzipped stream from
* the face with it. * it and re-open the face with it.
* *
* this function may return "FT_Err_Unimplemented" if your build of * This function may return "FT_Err_Unimplemented" if your build of
* FreeType was not compiled with zlib support. * FreeType was not compiled with zlib support.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Stream_OpenGzip( FT_Stream stream, FT_Stream_OpenGzip( FT_Stream stream,
FT_Stream source ); FT_Stream source );
/* */ /* */
FT_END_HEADER FT_END_HEADER
#endif /* __FTGZIP_H__ */ #endif /* __FTGZIP_H__ */
/* END */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType incremental loading (specification). */ /* FreeType incremental loading (specification). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -186,10 +186,10 @@ FT_BEGIN_HEADER
*/ */
typedef FT_Error typedef FT_Error
(*FT_Incremental_GetGlyphMetricsFunc) (*FT_Incremental_GetGlyphMetricsFunc)
( FT_Incremental incremental, ( FT_Incremental incremental,
FT_UInt glyph_index, FT_UInt glyph_index,
FT_Bool vertical, FT_Bool vertical,
FT_Incremental_MetricsRec *ametrics ); FT_Incremental_MetricsRec *ametrics );
/************************************************************************** /**************************************************************************

View File

@ -2,9 +2,9 @@
/* */ /* */
/* ftpfr.h */ /* ftpfr.h */
/* */ /* */
/* FreeType API for accessing PFR-specific data */ /* FreeType API for accessing PFR-specific data (specification only). */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -49,42 +49,44 @@ FT_BEGIN_HEADER
* FT_Get_PFR_Metrics * FT_Get_PFR_Metrics
* *
* @description: * @description:
* returns the outline and metrics resolutions of a given PFR * Return the outline and metrics resolutions of a given PFR face.
* face.
* *
* @input: * @input:
* face :: handle to input face. It can be a non-PFR face. * face :: Handle to the input face. It can be a non-PFR face.
* *
* @output: * @output:
* aoutline_resolution :: * aoutline_resolution ::
* outline resolution. This is equivalent to "face->units_per_EM". * Outline resolution. This is equivalent to `face->units_per_EM'.
* optional (parameter can be NULL) * Optional (parameter can be NULL).
* *
* ametrics_resolution :: * ametrics_resolution ::
* metrics_resolution. This is equivalent to "outline_resolution" * Metrics resolution. This is equivalent to `outline_resolution'
* for non-PFR fonts. can be NULL * for non-PFR fonts. Optional (parameter can be NULL).
* optional (parameter can be NULL)
* *
* ametrics_x_scale :: * ametrics_x_scale ::
* a 16.16 fixed-point number used to scale distance expressed * A 16.16 fixed-point number used to scale distance expressed
* in metrics units to device sub-pixels. This is equivalent to * in metrics units to device sub-pixels. This is equivalent to
* 'face->size->x_scale', but for metrics only. * `face->size->x_scale', but for metrics only. Optional (parameter
* optional (parameter can be NULL) * can be NULL)
* *
* ametrics_y_scale :: * ametrics_y_scale ::
* same as 'ametrics_x_scale', but for the vertical direction. * Same as `ametrics_x_scale' but for the vertical direction.
* optional (parameter can be NULL) * optional (parameter can be NULL)
* *
* @return:
* FreeType error code. 0 means success.
*
* @note: * @note:
* if the input face is not a PFR, this function will return an error. * If the input face is not a PFR, this function will return an error.
* However, in all cases, it will return valid values. * However, in all cases, it will return valid values.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_PFR_Metrics( FT_Face face, FT_Get_PFR_Metrics( FT_Face face,
FT_UInt *aoutline_resolution, FT_UInt *aoutline_resolution,
FT_UInt *ametrics_resolution, FT_UInt *ametrics_resolution,
FT_Fixed *ametrics_x_scale, FT_Fixed *ametrics_x_scale,
FT_Fixed *ametrics_y_scale ); FT_Fixed *ametrics_y_scale );
/********************************************************************** /**********************************************************************
* *
@ -92,25 +94,30 @@ FT_BEGIN_HEADER
* FT_Get_PFR_Kerning * FT_Get_PFR_Kerning
* *
* @description: * @description:
* returns the kerning pair corresponding to two glyphs in * Return the kerning pair corresponding to two glyphs in a PFR face.
* a PFR face. The distance is expressed in metrics units, unlike * The distance is expressed in metrics units, unlike the result of
* the result of @FT_Get_Kerning. * @FT_Get_Kerning.
* *
* @input: * @input:
* face :: handle to input face. * face :: A handle to the input face.
* left :: left glyph index *
* right :: right glyph index * left :: Index of the left glyph.
*
* right :: Index of the right glyph.
* *
* @output: * @output:
* avector :: kerning vector * avector :: A kerning vector.
*
* @return:
* FreeType error code. 0 means success.
* *
* @note: * @note:
* this function always return distances in original PFR metrics * This function always return distances in original PFR metrics
* units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED
* mode, which always return distances converted to outline units. * mode, which always returns distances converted to outline units.
* *
* you can use the value of the 'x_scale' and 'y_scale' parameters * You can use the value of the `x_scale' and `y_scale' parameters
* returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels * returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_PFR_Kerning( FT_Face face, FT_Get_PFR_Kerning( FT_Face face,
@ -118,36 +125,39 @@ FT_BEGIN_HEADER
FT_UInt right, FT_UInt right,
FT_Vector *avector ); FT_Vector *avector );
/********************************************************************** /**********************************************************************
* *
* @function: * @function:
* FT_Get_PFR_Advance * FT_Get_PFR_Advance
* *
* @description: * @description:
* returns a given glyph advance, expressed in original metrics units, * Return a given glyph advance, expressed in original metrics units,
* from a PFR font. * from a PFR font.
* *
* @input: * @input:
* face :: handle to input face. * face :: A handle to the input face.
* gindex :: glyph index *
* gindex :: The glyph index.
* *
* @output: * @output:
* aadvance :: glyph advance in metrics units * aadvance :: The glyph advance in metrics units.
* *
* @return: * @return:
* error code. 0 means success * FreeType error code. 0 means success.
* *
* @note: * @note:
* you can use the 'x_scale' or 'y_scale' results of @FT_Get_PFR_Metrics * You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics
* to convert the advance to device sub-pixels (i.e. 1/64th of pixels) * to convert the advance to device sub-pixels (i.e. 1/64th of pixels).
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_PFR_Advance( FT_Face face, FT_Get_PFR_Advance( FT_Face face,
FT_UInt gindex, FT_UInt gindex,
FT_Pos *aadvance ); FT_Pos *aadvance );
/* */ /* */
FT_END_HEADER FT_END_HEADER
#endif /* __FTBDF_H__ */ #endif /* __FTBDF_H__ */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType API for accessing Windows fnt-specific data. */ /* FreeType API for accessing Windows fnt-specific data. */
/* */ /* */
/* Copyright 2002 by */ /* Copyright 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -93,31 +93,31 @@ FT_BEGIN_HEADER
} FT_WinFNT_HeaderRec, *FT_WinFNT_Header; } FT_WinFNT_HeaderRec, *FT_WinFNT_Header;
/********************************************************************** /**********************************************************************
* *
* @function: * @function:
* FT_Get_WinFNT_Header * FT_Get_WinFNT_Header
* *
* @description: * @description:
* Retrieves a Windows FNT font info header. * Retrieve a Windows FNT font info header.
* *
* @input: * @input:
* face :: handle to input face * face :: A handle to the input face.
* *
* @output: * @output:
* header :: WinFNT header. * aheader :: The WinFNT header.
* *
* @return: * @return:
* FreeType error code. 0 means success. * FreeType error code. 0 means success.
* *
* @note: * @note:
* This function only works with Windows FNT faces, returning an erro * This function only works with Windows FNT faces, returning an error
* otherwise. * otherwise.
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Get_WinFNT_Header( FT_Face face, FT_Get_WinFNT_Header( FT_Face face,
FT_WinFNT_HeaderRec *header ); FT_WinFNT_HeaderRec *aheader );
/* */ /* */

View File

@ -5,7 +5,7 @@
/* Basic Windows FNT/FON type definitions and interface (specification */ /* Basic Windows FNT/FON type definitions and interface (specification */
/* only). */ /* only). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* The FreeType private base classes (specification). */ /* The FreeType private base classes (specification). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -539,26 +539,28 @@ FT_BEGIN_HEADER
/* */ /* */
/* /*
* free the bitmap of a given glyphslot when needed * Free the bitmap of a given glyphslot when needed
* (i.e. only when it was allocated with ft_glyphslot_alloc_bitmap) * (i.e., only when it was allocated with ft_glyphslot_alloc_bitmap).
*/ */
FT_BASE( void ) FT_BASE( void )
ft_glyphslot_free_bitmap( FT_GlyphSlot slot ); ft_glyphslot_free_bitmap( FT_GlyphSlot slot );
/* /*
* allocate a new bitmap buffer in a glyph slot * Allocate a new bitmap buffer in a glyph slot.
*/ */
FT_BASE( FT_Error ) FT_BASE( FT_Error )
ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot, ft_glyphslot_alloc_bitmap( FT_GlyphSlot slot,
FT_ULong size ); FT_ULong size );
/* /*
* set the bitmap buffer in a glyph slot to a given pointer. * Set the bitmap buffer in a glyph slot to a given pointer.
* the buffer will not be freed by a later call to ft_glyphslot_free_bitmap * The buffer will not be freed by a later call to ft_glyphslot_free_bitmap.
*/ */
FT_BASE( void ) FT_BASE( void )
ft_glyphslot_set_bitmap( FT_GlyphSlot slot, ft_glyphslot_set_bitmap( FT_GlyphSlot slot,
FT_Pointer buffer ); FT_Pointer buffer );
/*************************************************************************/ /*************************************************************************/

View File

@ -2,7 +2,7 @@
FreeType font driver for pcf fonts FreeType font driver for pcf fonts
Copyright (C) 2000-2001 by Copyright (C) 2000, 2001, 2002 by
Francesco Zappa Nardelli Francesco Zappa Nardelli
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy

View File

@ -1,9 +1,28 @@
#ifndef __FT_INTERNAL_PFR_H__ /***************************************************************************/
#define __FT_INTERNAL_PFR_H__ /* */
/* pfr.h */
/* */
/* Internal PFR service functions (specification only). */
/* */
/* Copyright 2002, 2003 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 __PFR_H__
#define __PFR_H__
#include <ft2build.h> #include <ft2build.h>
#include FT_FREETYPE_H #include FT_FREETYPE_H
FT_BEGIN_HEADER FT_BEGIN_HEADER
typedef FT_Error (*FT_PFR_GetMetricsFunc)( FT_Face face, typedef FT_Error (*FT_PFR_GetMetricsFunc)( FT_Face face,
@ -21,16 +40,21 @@ FT_BEGIN_HEADER
FT_UInt gindex, FT_UInt gindex,
FT_Pos *aadvance ); FT_Pos *aadvance );
typedef struct FT_PFR_ServiceRec_
typedef struct FT_PFR_ServiceRec_
{ {
FT_PFR_GetMetricsFunc get_metrics; FT_PFR_GetMetricsFunc get_metrics;
FT_PFR_GetKerningFunc get_kerning; FT_PFR_GetKerningFunc get_kerning;
FT_PFR_GetAdvanceFunc get_advance; FT_PFR_GetAdvanceFunc get_advance;
} FT_PFR_ServiceRec, *FT_PFR_Service; } FT_PFR_ServiceRec, *FT_PFR_Service;
#define FT_PFR_SERVICE_NAME "pfr" #define FT_PFR_SERVICE_NAME "pfr"
FT_END_HEADER FT_END_HEADER
#endif /* __FT_INTERNAL_PFR_H__ */ #endif /* __PFR_H__ */
/* END */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* High-level `sfnt' driver interface (specification). */ /* High-level `sfnt' driver interface (specification). */
/* */ /* */
/* Copyright 1996-2001, 2002 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -463,14 +463,15 @@ FT_BEGIN_HEADER
/* SFNT_Load_Table_Func */ /* SFNT_Load_Table_Func */
/* */ /* */
/* <Description> */ /* <Description> */
/* Loads a given SFNT table in memory */ /* Loads a given SFNT table into memory. */
/* */ /* */
typedef FT_Error typedef FT_Error
(*SFNT_Load_Table_Func)( FT_Face face, (*SFNT_Load_Table_Func)( FT_Face face,
FT_ULong tag, FT_ULong tag,
FT_Long offset, FT_Long offset,
FT_Byte* buffer, FT_Byte* buffer,
FT_ULong* length ); FT_ULong* length );
/*************************************************************************/ /*************************************************************************/
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* TrueType name ID definitions (specification only). */ /* TrueType name ID definitions (specification only). */
/* */ /* */
/* Copyright 1996-2002 by */ /* Copyright 1996-2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -257,8 +257,8 @@ FT_BEGIN_HEADER
* Corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB. * Corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB.
* *
* TT_MS_ID_UCS_4 :: * TT_MS_ID_UCS_4 ::
* Corresponds to UCS-4 or UTF-32 charmaps. This has been added into * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to
* OpenType specification as of version 1.4 (mid-2001.) * the OpenType specification version 1.4 (mid-2001.)
*/ */
#define TT_MS_ID_SYMBOL_CS 0 #define TT_MS_ID_SYMBOL_CS 0

View File

@ -5,7 +5,7 @@
/* Basic SFNT/TrueType tables definitions and interface */ /* Basic SFNT/TrueType tables definitions and interface */
/* (specification only). */ /* (specification only). */
/* */ /* */
/* Copyright 1996-2001 by */ /* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -593,6 +593,7 @@ FT_BEGIN_HEADER
FT_Get_Sfnt_Table( FT_Face face, FT_Get_Sfnt_Table( FT_Face face,
FT_Sfnt_Tag tag ); FT_Sfnt_Tag tag );
/************************************************************************** /**************************************************************************
* *
* <Function> * <Function>
@ -602,54 +603,56 @@ FT_BEGIN_HEADER
* Loads any font table into client memory. * Loads any font table into client memory.
* *
* <Input> * <Input>
* face :: handle to source face. * face :: A handle to the source face.
* tag :: the 4-byte tag of the table to load. Use the value 0 if *
* you want to access the whole font file. Else, you can use * tag :: The 4-byte tag of the table to load. Use the value 0 if
* one of the definitions found in the @FT_TRUETYPE_TAGS_H * you want to access the whole font file. Otherwise, you can
* file, or forge a new one with @FT_MAKE_TAG * use one of the definitions found in the @FT_TRUETYPE_TAGS_H
* file, or forge a new one with @FT_MAKE_TAG.
* *
* offset :: the starting offset in the table (or file if tag == 0) * offset :: The starting offset in the table (or file if tag == 0).
* *
* <Output> * <Output>
* buffer :: target buffer address. client must ensure that there are * buffer :: The target buffer address. The client must ensure that
* enough bytes in it. * the memory array is big enough to hold the data.
* *
* <InOut> * <InOut>
* length :: if the 'length' parameter is NULL, then try to load the whole * length :: If the `length' parameter is NULL, then try to load the whole
* table, and return an error code if it fails. * table. Return an error code if it fails.
* *
* else, if '*length' is 0, then exit immediately while returning * Else, if `*length' is 0, exit immediately while returning
* the table's (or file) full size in it. * the table's (or file) full size in it.
* *
* else, the number of bytes to read from the table or file, * Else the number of bytes to read from the table or file,
* from the starting offset. * from the starting offset.
* *
* <Return> * <Return>
* error code. 0 means success * FreeType error code. 0 means success.
* *
* <Note> * <Note>
* if you need to determine the table's length you should first call this * If you need to determine the table's length you should first call this
* function with "*length" set to 0, as in the following example: * function with `*length' set to 0, as in the following example:
* *
* { * {
* FT_ULong length = 0; * FT_ULong length = 0;
* *
*
* error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length ); * error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
* if ( error ) { ... table does not exist ... } * if ( error ) { ... table does not exist ... }
* *
* buffer = malloc( length ); * buffer = malloc( length );
* if ( buffer == NULL ) { ... not enough memory ... } * if ( buffer == NULL ) { ... not enough memory ... }
* *
* error = FT_Load_Sfnt_Table( face,tag, 0, buffer, &length ); * error = FT_Load_Sfnt_Table( face,tag, 0, buffer, &length );
* if ( error ) { ... could not load table ... } * if ( error ) { ... could not load table ... }
* } * }
*/ */
FT_EXPORT( FT_Error ) FT_EXPORT( FT_Error )
FT_Load_Sfnt_Table( FT_Face face, FT_Load_Sfnt_Table( FT_Face face,
FT_ULong tag, FT_ULong tag,
FT_Long offset, FT_Long offset,
FT_Byte* buffer, FT_Byte* buffer,
FT_ULong* length ); FT_ULong* length );
/* */ /* */

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Routines used to compute global metrics automatically (body). */ /* Routines used to compute global metrics automatically (body). */
/* */ /* */
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */ /* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */ /* Author: David Turner */
/* */ /* */
/* This file is part of the Catharon Typography Project and shall only */ /* This file is part of the Catharon Typography Project and shall only */
@ -323,7 +323,8 @@
if ( error ) if ( error )
goto Exit; goto Exit;
error = ah_outline_load( hinter->glyph, 0x10000L, 0x10000L, hinter->face ); error = ah_outline_load( hinter->glyph, 0x10000L, 0x10000L,
hinter->face );
if ( error ) if ( error )
goto Exit; goto Exit;

View File

@ -5,7 +5,7 @@
/* Routines used to compute global metrics automatically */ /* Routines used to compute global metrics automatically */
/* (specification). */ /* (specification). */
/* */ /* */
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */ /* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */ /* Author: David Turner */
/* */ /* */
/* This file is part of the Catharon Typography Project and shall only */ /* This file is part of the Catharon Typography Project and shall only */
@ -34,16 +34,16 @@ FT_BEGIN_HEADER
#ifdef FT_CONFIG_CHESTER_SMALL_F #ifdef FT_CONFIG_CHESTER_SMALL_F
# define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \ #define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \
(b) == AH_BLUE_SMALL_F_TOP || \ (b) == AH_BLUE_SMALL_F_TOP || \
(b) == AH_BLUE_SMALL_TOP ) (b) == AH_BLUE_SMALL_TOP )
#else /* !CHESTER_SMALL_F */ #else /* !FT_CONFIG_CHESTER_SMALL_F */
# define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \ #define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \
(b) == AH_BLUE_SMALL_TOP ) (b) == AH_BLUE_SMALL_TOP )
#endif /* !CHESTER_SMALL_F */ #endif /* !FT_CONFIG_CHESTER_SMALL_F */
/* compute global metrics automatically */ /* compute global metrics automatically */

View File

@ -5,7 +5,7 @@
/* Routines used to load and analyze a given glyph before hinting */ /* Routines used to load and analyze a given glyph before hinting */
/* (body). */ /* (body). */
/* */ /* */
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */ /* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */ /* Author: David Turner */
/* */ /* */
/* This file is part of the Catharon Typography Project and shall only */ /* This file is part of the Catharon Typography Project and shall only */
@ -1358,12 +1358,12 @@
} }
else else
edge->link = edge2; edge->link = edge2;
#else /* !CHESTER_SERIF */ #else /* !FT_CONFIG_CHESTER_SERIF */
if ( is_serif ) if ( is_serif )
edge->serif = edge2; edge->serif = edge2;
else else
edge->link = edge2; edge->link = edge2;
#endif #endif /* !FT_CONFIG_CHESTER_SERIF */
} }
seg = seg->edge_next; seg = seg->edge_next;
@ -1493,7 +1493,7 @@
best_dist = 64 / 2; best_dist = 64 / 2;
#else #else
if ( best_dist > 64 / 4 ) if ( best_dist > 64 / 4 )
best_dist = 64 / 4; best_dist = 64 / 4;
#endif #endif
for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ ) for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ )

View File

@ -4,7 +4,7 @@
/* */ /* */
/* Glyph hinter (body). */ /* Glyph hinter (body). */
/* */ /* */
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */ /* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */ /* Author: David Turner */
/* */ /* */
/* This file is part of the Catharon Typography Project and shall only */ /* This file is part of the Catharon Typography Project and shall only */
@ -88,7 +88,9 @@
/* compute the snapped width of a given stem */ /* compute the snapped width of a given stem */
#ifdef FT_CONFIG_CHESTER_SERIF #ifdef FT_CONFIG_CHESTER_SERIF
static FT_Pos static FT_Pos
ah_compute_stem_width( AH_Hinter hinter, ah_compute_stem_width( AH_Hinter hinter,
int vertical, int vertical,
@ -218,7 +220,9 @@
return dist; return dist;
} }
#else /* !CHESTER_SERIF */
#else /* !FT_CONFIG_CHESTER_SERIF */
static FT_Pos static FT_Pos
ah_compute_stem_width( AH_Hinter hinter, ah_compute_stem_width( AH_Hinter hinter,
int vertical, int vertical,
@ -332,7 +336,8 @@
return dist; return dist;
} }
#endif /* !CHESTER_SERIF */
#endif /* !FT_CONFIG_CHESTER_SERIF */
/* align one stem edge relative to the previous stem edge */ /* align one stem edge relative to the previous stem edge */
@ -345,6 +350,7 @@
FT_Pos dist = stem_edge->opos - base_edge->opos; FT_Pos dist = stem_edge->opos - base_edge->opos;
#ifdef FT_CONFIG_CHESTER_SERIF #ifdef FT_CONFIG_CHESTER_SERIF
FT_Pos fitted_width = ah_compute_stem_width( hinter, FT_Pos fitted_width = ah_compute_stem_width( hinter,
vertical, vertical,
dist, dist,
@ -352,10 +358,14 @@
stem_edge->flags ); stem_edge->flags );
stem_edge->pos = base_edge->pos + fitted_width; stem_edge->pos = base_edge->pos + fitted_width;
#else #else
stem_edge->pos = base_edge->pos + stem_edge->pos = base_edge->pos +
ah_compute_stem_width( hinter, vertical, dist ); ah_compute_stem_width( hinter, vertical, dist );
#endif #endif
} }
@ -509,7 +519,9 @@
if ( !anchor ) if ( !anchor )
{ {
#ifdef FT_CONFIG_CHESTER_STEM #ifdef FT_CONFIG_CHESTER_STEM
FT_Pos org_len, org_center, cur_len; FT_Pos org_len, org_center, cur_len;
FT_Pos cur_pos1, error1, error2, u_off, d_off; FT_Pos cur_pos1, error1, error2, u_off, d_off;
@ -556,14 +568,18 @@
edge->flags |= AH_EDGE_DONE; edge->flags |= AH_EDGE_DONE;
ah_align_linked_edge( hinter, edge, edge2, dimension ); ah_align_linked_edge( hinter, edge, edge2, dimension );
#else /* !CHESTER_STEM */
#else /* !FT_CONFIG_CHESTER_STEM */
edge->pos = ( edge->opos + 32 ) & -64; edge->pos = ( edge->opos + 32 ) & -64;
anchor = edge; anchor = edge;
edge->flags |= AH_EDGE_DONE; edge->flags |= AH_EDGE_DONE;
ah_align_linked_edge( hinter, edge, edge2, dimension ); ah_align_linked_edge( hinter, edge, edge2, dimension );
#endif /* !CHESTER_STEM */
#endif /* !FT_CONFIG_CHESTER_STEM */
} }
else else
{ {
@ -576,13 +592,19 @@
org_center = org_pos + ( org_len >> 1 ); org_center = org_pos + ( org_len >> 1 );
#ifdef FT_CONFIG_CHESTER_SERIF #ifdef FT_CONFIG_CHESTER_SERIF
cur_len = ah_compute_stem_width( hinter, dimension, org_len, cur_len = ah_compute_stem_width( hinter, dimension, org_len,
edge->flags, edge2->flags ); edge->flags, edge2->flags );
#else /* !CHESTER_SERIF */
#else /* !FT_CONFIG_CHESTER_SERIF */
cur_len = ah_compute_stem_width( hinter, dimension, org_len ); cur_len = ah_compute_stem_width( hinter, dimension, org_len );
#endif /* !CHESTER_SERIF */
#endif /* !FT_CONFIG_CHESTER_SERIF */
#ifdef FT_CONFIG_CHESTER_STEM #ifdef FT_CONFIG_CHESTER_STEM
if ( cur_len < 96 ) if ( cur_len < 96 )
{ {
FT_Pos u_off, d_off; FT_Pos u_off, d_off;
@ -638,7 +660,7 @@
edge2->pos = edge->pos + cur_len; edge2->pos = edge->pos + cur_len;
} }
#else /* !CHESTER_STEM */ #else /* !FT_CONFIG_CHESTER_STEM */
cur_pos1 = ( org_pos + 32 ) & -64; cur_pos1 = ( org_pos + 32 ) & -64;
delta1 = ( cur_pos1 + ( cur_len >> 1 ) - org_center ); delta1 = ( cur_pos1 + ( cur_len >> 1 ) - org_center );
@ -653,7 +675,7 @@
edge->pos = ( delta1 <= delta2 ) ? cur_pos1 : cur_pos2; edge->pos = ( delta1 <= delta2 ) ? cur_pos1 : cur_pos2;
edge2->pos = edge->pos + cur_len; edge2->pos = edge->pos + cur_len;
#endif /* !CHESTER_STEM */ #endif /* !FT_CONFIG_CHESTER_STEM */
edge->flags |= AH_EDGE_DONE; edge->flags |= AH_EDGE_DONE;
edge2->flags |= AH_EDGE_DONE; edge2->flags |= AH_EDGE_DONE;
@ -1662,6 +1684,7 @@
} }
#ifdef FT_CONFIG_CHESTER_BLUE_SCALE #ifdef FT_CONFIG_CHESTER_BLUE_SCALE
/* try to optimize the y_scale so that the top of non-capital letters /* try to optimize the y_scale so that the top of non-capital letters
* is aligned on a pixel boundary whenever possible * is aligned on a pixel boundary whenever possible
*/ */
@ -1689,6 +1712,7 @@
} }
} }
} }
#endif /* FT_CONFIG_CHESTER_BLUE_SCALE */ #endif /* FT_CONFIG_CHESTER_BLUE_SCALE */
/* now, we must check the current character pixel size to see if we */ /* now, we must check the current character pixel size to see if we */

View File

@ -5,7 +5,7 @@
/* General types and definitions for the auto-hint module */ /* General types and definitions for the auto-hint module */
/* (specification only). */ /* (specification only). */
/* */ /* */
/* Copyright 2000-2001, 2002 Catharon Productions Inc. */ /* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */ /* Author: David Turner */
/* */ /* */
/* This file is part of the Catharon Typography Project and shall only */ /* This file is part of the Catharon Typography Project and shall only */
@ -387,24 +387,24 @@ FT_BEGIN_HEADER
#ifdef FT_CONFIG_CHESTER_SMALL_F #ifdef FT_CONFIG_CHESTER_SMALL_F
# define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */ #define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */
# define AH_BLUE_CAPITAL_BOTTOM ( AH_BLUE_CAPITAL_TOP + 1 ) /* HEZLOCUS */ #define AH_BLUE_CAPITAL_BOTTOM ( AH_BLUE_CAPITAL_TOP + 1 ) /* HEZLOCUS */
# define AH_BLUE_SMALL_F_TOP ( AH_BLUE_CAPITAL_BOTTOM + 1 ) /* fijkdbh */ #define AH_BLUE_SMALL_F_TOP ( AH_BLUE_CAPITAL_BOTTOM + 1 ) /* fijkdbh */
# define AH_BLUE_SMALL_TOP ( AH_BLUE_SMALL_F_TOP + 1 ) /* xzroesc */ #define AH_BLUE_SMALL_TOP ( AH_BLUE_SMALL_F_TOP + 1 ) /* xzroesc */
# define AH_BLUE_SMALL_BOTTOM ( AH_BLUE_SMALL_TOP + 1 ) /* xzroesc */ #define AH_BLUE_SMALL_BOTTOM ( AH_BLUE_SMALL_TOP + 1 ) /* xzroesc */
# define AH_BLUE_SMALL_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */ #define AH_BLUE_SMALL_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */
# define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 ) #define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 )
#else /* !CHESTER_SMALL_F */ #else /* !FT_CONFIG_CHESTER_SMALL_F */
# define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */ #define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */
# define AH_BLUE_CAPITAL_BOTTOM ( AH_BLUE_CAPITAL_TOP + 1 ) /* HEZLOCUS */ #define AH_BLUE_CAPITAL_BOTTOM ( AH_BLUE_CAPITAL_TOP + 1 ) /* HEZLOCUS */
# define AH_BLUE_SMALL_TOP ( AH_BLUE_CAPITAL_BOTTOM + 1) /* xzroesc */ #define AH_BLUE_SMALL_TOP ( AH_BLUE_CAPITAL_BOTTOM + 1) /* xzroesc */
# define AH_BLUE_SMALL_BOTTOM ( AH_BLUE_SMALL_TOP + 1 ) /* xzroesc */ #define AH_BLUE_SMALL_BOTTOM ( AH_BLUE_SMALL_TOP + 1 ) /* xzroesc */
# define AH_BLUE_SMALL_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */ #define AH_BLUE_SMALL_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */
# define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 ) #define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 )
#endif /* !CHESTER_SMALL_F */ #endif /* !FT_CONFIG_CHESTER_SMALL_F */
typedef FT_Int AH_Blue; typedef FT_Int AH_Blue;