ref: 3ae7cc997a270e9cbdf193e27d47168cd8da6276
parent: 90e979e7beda71325b155cbebf23f44b4bf243cc
author: Werner Lemberg <[email protected]>
date: Tue Apr 22 03:49:24 EDT 2003
Cleanups.
--- a/ChangeLog
+++ b/ChangeLog
@@ -77,9 +77,11 @@
* src/cache/ftlru.c: Fixed an invalid assertion check.
- * src/autohint/ahglyph.h, src/autohint/ahglyph.c,
- src/autohint/ahglobal.c, src/autohint/ahhint.c: Fixed blue-scale
- problem.
+ * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
+ arguments.
+ * 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
in rare circumstances (mostly with broken fonts).
@@ -169,8 +171,8 @@
Fixing the slight distortion problem that ocurred due to the latest
auto-hinter changes.
- * src/autohint/ahhint.c: Disabled the advance width "correction"
- which seemed to provide more trouble than benefits.
+ * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
+ "correction" which seemed to provide more trouble than benefits.
2003-02-13 Graham Asher <[email protected]>
@@ -203,11 +205,17 @@
display a waterfall with a font without a Unicode charmap (e.g.
SYMBOL.TTF).
- * src/autohint/ahtypes.h, src/autohint/ahhint.c, src/base/ftobjs.c,
- src/truetype/ttobjs.c: Implemented FT_CONFIG_CHESTER_BLUE_SCALE,
- corresponding to the last patch from David Chester, but with a much
- simpler (and saner) implementation.
+ Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
+ patch from David Chester, but with a much 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
rid of stem snapping seems to work well here (though the stems are
still slightly moved to increase contrast).
@@ -217,7 +225,8 @@
2003-01-22 David Chester <[email protected]>
- * 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 <[email protected]>
@@ -308,8 +317,27 @@
[FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
features.
- * src/autohint/ahglobal.h, src/autohint/ahglobal.c,
- src/autohint/ahglyph.c, src/autohint/ahtypes.h:
+ * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
+ 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 <[email protected]>
@@ -328,11 +356,16 @@
2003-01-08 Owen Taylor <[email protected]>
- * src/autohint/ahtypes.h, src/autohint/ahhint.c,
- src/pshinter/pshalgo3.h, src/pshinter/pshalgo3.c: Implemented the
- FT_RENDER_MODE_LIGHT hinting mode in the auto and postscript
- hinters.
+ Implemented the 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
FT_RENDER_MODE_LIGHT.
@@ -457,9 +490,13 @@
support fot the first GSUB lookups. Nothing that really compiles
for now though.
- * src/autohint/ahhint.c: Disabled serif stem width quantization. It
- produces slightly better shapes though this is not distinguishable
- with many fonts.
+ * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
+ width quantization. It produces slightly better shapes though this
+ is not distinguishable with many fonts.
+ Remove other dead code.
+
+ * src/Jamfile, src/*/Jamfile: Simplified.
+ Use $(FT2_SRC_DIR).
2002-11-06 David Turner <[email protected]>
--- a/include/freetype/ftbdf.h
+++ b/include/freetype/ftbdf.h
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing BDF-specific strings (specification). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -49,20 +49,20 @@
* FT_PropertyType
*
* @description:
- * list of BDF property types
+ * A list of BDF property types.
*
* @values:
* 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 ::
- * property is a string atom
+ * Property is a string atom.
*
* BDF_PROPERTY_TYPE_INTEGER ::
- * property is a 32-bit signed integer
+ * Property is a 32-bit signed integer.
*
* BDF_PROPERTY_TYPE_CARDINAL ::
- * property is a 32-bit unsigned integer
+ * Property is a 32-bit unsigned integer.
*/
typedef enum
{
@@ -76,34 +76,39 @@
/**********************************************************************
*
- * @type: BDF_Property
+ * @type:
+ * BDF_Property
*
* @description:
- * handle to a @BDF_PropertyRec structure used to model a given
- * BDF/PCF property
+ * A handle to a @BDF_PropertyRec structure to model a given
+ * BDF/PCF property.
*/
- typedef struct BDF_PropertyRec_* BDF_Property;
+ typedef struct BDF_PropertyRec_* BDF_Property;
+
/**********************************************************************
*
- * @struct: BDF_PropertyRec
+ * @struct:
+ * BDF_PropertyRec
*
* @description:
- * models a given BDF/PCF property
+ * This structure models a given BDF/PCF property.
*
- * @note:
- * type :: 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.cardinal :: unsigned integer, when type is @BDF_PROPERTY_TYPE_CARDINAL
+ * @fields:
+ * type :: The property type.
+ *
+ * u.atom :: The atom string, if type is @BDF_PROPERTY_TYPE_ATOM.
+ * 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 {
- const char* atom;
- FT_Int32 integer;
- FT_UInt32 cardinal;
+ const char* atom;
+ FT_Int32 integer;
+ FT_UInt32 cardinal;
} u;
@@ -121,7 +126,7 @@
*
* @input:
* face ::
- * handle to input face
+ * A handle to the input face.
*
* @output:
* acharset_encoding ::
@@ -131,7 +136,7 @@
* Charset registry, as a C string, owned by the face.
*
* @return:
- * FreeType rror code. 0 means success.
+ * FreeType error code. 0 means success.
*
* @note:
* This function only works with BDF faces, returning an error otherwise.
@@ -141,6 +146,7 @@
const char* *acharset_encoding,
const char* *acharset_registry );
+
/**********************************************************************
*
* @function:
@@ -147,25 +153,26 @@
* FT_Get_BDF_Property
*
* @description:
- * Retrieves a BDF property from a BDF or PCF font file
+ * Retrieves a BDF property from a BDF or PCF font file.
*
* @input:
- * face :: handle to input face
- * name :: property name
+ * face :: A handle to the input face.
*
+ * name :: The property name.
+ *
* @output:
- * aproperty :: the property
+ * aproperty :: The property.
*
* @return:
* FreeType error code. 0 means success.
*
* @note:
- * 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
+ * This function works with BDF _and_ PCF fonts. It returns an error
+ * otherwise. It also returns an error if the property is not in the
* font.
*
- * in case of error, "aproperty->type" is always set to
- * @BDF_PROPERTY_TYPE_NONE
+ * In case of error, "aproperty->type" is always set to
+ * @BDF_PROPERTY_TYPE_NONE.
*/
FT_EXPORT( FT_Error )
FT_Get_BDF_Property( FT_Face face,
--- a/include/freetype/ftgzip.h
+++ b/include/freetype/ftgzip.h
@@ -4,7 +4,7 @@
/* */
/* Gzip-compressed stream support. */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -40,47 +40,54 @@
/* */
/*************************************************************************/
+
/************************************************************************
*
- * @type: FT_Stream_OpenGzip
+ * @function:
+ * FT_Stream_OpenGzip
*
* @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
- * with XFree86
+ * with XFree86.
*
* @input:
- * stream :: target embedding stream
- * source :: source stream, used to
+ * stream :: The target embedding stream.
*
+ * source :: The source stream.
+ *
* @return:
- * error code. 0 means success
+ * FreeType error code. 0 means success.
*
* @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
- * @FT_Stream_Close on the source stream. None of the stream objects
+ * Calling @FT_Stream_Close on the new stream will *not* call
+ * @FT_Stream_Close on the source stream. None of the stream objects
* will be released to the heap.
*
- * the stream implementation is very basic, and resets the decompression
- * process each time seeking backwards is needed within the stream
+ * The stream implementation is very basic and resets the decompression
+ * process each time seeking backwards is needed within the stream.
*
- * in certain builds of the library, gzip compression recognition is
- * automatic when calling @FT_New_Face or @FT_Open_Face. This means that
- * if no font driver is capable of handling the raw compressed file,
- * the library will try to open a gzip stream from it and re-open
- * the face with it.
+ * In certain builds of the library, gzip compression recognition is
+ * automatically handled when calling @FT_New_Face or @FT_Open_Face.
+ * This means that if no font driver is capable of handling the raw
+ * compressed file, the library will try to open a gzipped stream from
+ * 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.
*/
FT_EXPORT( FT_Error )
- FT_Stream_OpenGzip( FT_Stream stream,
- FT_Stream source );
+ FT_Stream_OpenGzip( FT_Stream stream,
+ FT_Stream source );
/* */
+
FT_END_HEADER
#endif /* __FTGZIP_H__ */
+
+
+/* END */
--- a/include/freetype/ftincrem.h
+++ b/include/freetype/ftincrem.h
@@ -4,7 +4,7 @@
/* */
/* FreeType incremental loading (specification). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -186,10 +186,10 @@
*/
typedef FT_Error
(*FT_Incremental_GetGlyphMetricsFunc)
- ( FT_Incremental incremental,
- FT_UInt glyph_index,
- FT_Bool vertical,
- FT_Incremental_MetricsRec *ametrics );
+ ( FT_Incremental incremental,
+ FT_UInt glyph_index,
+ FT_Bool vertical,
+ FT_Incremental_MetricsRec *ametrics );
/**************************************************************************
--- a/include/freetype/ftpfr.h
+++ b/include/freetype/ftpfr.h
@@ -2,9 +2,9 @@
/* */
/* 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. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -49,43 +49,45 @@
* FT_Get_PFR_Metrics
*
* @description:
- * returns the outline and metrics resolutions of a given PFR
- * face.
+ * Return the outline and metrics resolutions of a given PFR face.
*
* @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:
* aoutline_resolution ::
- * outline resolution. This is equivalent to "face->units_per_EM".
- * optional (parameter can be NULL)
+ * Outline resolution. This is equivalent to `face->units_per_EM'.
+ * Optional (parameter can be NULL).
*
* ametrics_resolution ::
- * metrics_resolution. This is equivalent to "outline_resolution"
- * for non-PFR fonts. can be NULL
- * optional (parameter can be NULL)
+ * Metrics resolution. This is equivalent to `outline_resolution'
+ * for non-PFR fonts. Optional (parameter can be NULL).
*
* ametrics_x_scale ::
- * a 16.16 fixed-point number used to scale distance expressed
- * in metrics units to device sub-pixels. This is equivalent to
- * 'face->size->x_scale', but for metrics only.
- * optional (parameter can be NULL)
+ * A 16.16 fixed-point number used to scale distance expressed
+ * in metrics units to device sub-pixels. This is equivalent to
+ * `face->size->x_scale', but for metrics only. Optional (parameter
+ * can be NULL)
*
* 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)
*
+ * @return:
+ * FreeType error code. 0 means success.
+ *
* @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.
*/
FT_EXPORT( FT_Error )
- FT_Get_PFR_Metrics( FT_Face face,
- FT_UInt *aoutline_resolution,
- FT_UInt *ametrics_resolution,
- FT_Fixed *ametrics_x_scale,
- FT_Fixed *ametrics_y_scale );
+ FT_Get_PFR_Metrics( FT_Face face,
+ FT_UInt *aoutline_resolution,
+ FT_UInt *ametrics_resolution,
+ FT_Fixed *ametrics_x_scale,
+ FT_Fixed *ametrics_y_scale );
+
/**********************************************************************
*
* @function:
@@ -92,25 +94,30 @@
* FT_Get_PFR_Kerning
*
* @description:
- * returns the kerning pair corresponding to two glyphs in
- * a PFR face. The distance is expressed in metrics units, unlike
- * the result of @FT_Get_Kerning.
+ * Return the kerning pair corresponding to two glyphs in a PFR face.
+ * The distance is expressed in metrics units, unlike the result of
+ * @FT_Get_Kerning.
*
* @input:
- * face :: handle to input face.
- * left :: left glyph index
- * right :: right glyph index
+ * face :: A handle to the input face.
*
+ * left :: Index of the left glyph.
+ *
+ * right :: Index of the right glyph.
+ *
* @output:
- * avector :: kerning vector
+ * avector :: A kerning vector.
*
+ * @return:
+ * FreeType error code. 0 means success.
+ *
* @note:
- * this function always return distances in original PFR metrics
- * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED
- * mode, which always return distances converted to outline units.
+ * This function always return distances in original PFR metrics
+ * units. This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED
+ * mode, which always returns distances converted to outline units.
*
- * 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
+ * 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.
*/
FT_EXPORT( FT_Error )
FT_Get_PFR_Kerning( FT_Face face,
@@ -118,6 +125,7 @@
FT_UInt right,
FT_Vector *avector );
+
/**********************************************************************
*
* @function:
@@ -124,29 +132,31 @@
* FT_Get_PFR_Advance
*
* @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.
*
* @input:
- * face :: handle to input face.
- * gindex :: glyph index
+ * face :: A handle to the input face.
*
+ * gindex :: The glyph index.
+ *
* @output:
- * aadvance :: glyph advance in metrics units
+ * aadvance :: The glyph advance in metrics units.
*
* @return:
- * error code. 0 means success
+ * FreeType error code. 0 means success.
*
* @note:
- * 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)
+ * 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).
*/
FT_EXPORT( FT_Error )
- FT_Get_PFR_Advance( FT_Face face,
- FT_UInt gindex,
- FT_Pos *aadvance );
+ FT_Get_PFR_Advance( FT_Face face,
+ FT_UInt gindex,
+ FT_Pos *aadvance );
/* */
+
FT_END_HEADER
--- a/include/freetype/ftwinfnt.h
+++ b/include/freetype/ftwinfnt.h
@@ -4,7 +4,7 @@
/* */
/* FreeType API for accessing Windows fnt-specific data. */
/* */
-/* Copyright 2002 by */
+/* Copyright 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -93,7 +93,6 @@
} FT_WinFNT_HeaderRec, *FT_WinFNT_Header;
-
/**********************************************************************
*
* @function:
@@ -100,24 +99,25 @@
* FT_Get_WinFNT_Header
*
* @description:
- * Retrieves a Windows FNT font info header.
+ * Retrieve a Windows FNT font info header.
*
* @input:
- * face :: handle to input face
+ * face :: A handle to the input face.
*
* @output:
- * header :: WinFNT header.
+ * aheader :: The WinFNT header.
*
* @return:
* FreeType error code. 0 means success.
*
* @note:
- * This function only works with Windows FNT faces, returning an erro
+ * This function only works with Windows FNT faces, returning an error
* otherwise.
*/
FT_EXPORT( FT_Error )
- FT_Get_WinFNT_Header( FT_Face face,
- FT_WinFNT_HeaderRec *header );
+ FT_Get_WinFNT_Header( FT_Face face,
+ FT_WinFNT_HeaderRec *aheader );
+
/* */
--- a/include/freetype/internal/fnttypes.h
+++ b/include/freetype/internal/fnttypes.h
@@ -5,7 +5,7 @@
/* Basic Windows FNT/FON type definitions and interface (specification */
/* only). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -4,7 +4,7 @@
/* */
/* The FreeType private base classes (specification). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -539,26 +539,28 @@
/* */
/*
- * free the bitmap of a given glyphslot when needed
- * (i.e. only when it was allocated with ft_glyphslot_alloc_bitmap)
+ * Free the bitmap of a given glyphslot when needed
+ * (i.e., only when it was allocated with ft_glyphslot_alloc_bitmap).
*/
FT_BASE( void )
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_glyphslot_alloc_bitmap( FT_GlyphSlot slot,
FT_ULong size );
+
/*
- * 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
+ * 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.
*/
FT_BASE( void )
- ft_glyphslot_set_bitmap( FT_GlyphSlot slot,
- FT_Pointer buffer );
+ ft_glyphslot_set_bitmap( FT_GlyphSlot slot,
+ FT_Pointer buffer );
/*************************************************************************/
--- a/include/freetype/internal/pcftypes.h
+++ b/include/freetype/internal/pcftypes.h
@@ -2,7 +2,7 @@
FreeType font driver for pcf fonts
- Copyright (C) 2000-2001 by
+ Copyright (C) 2000, 2001, 2002 by
Francesco Zappa Nardelli
Permission is hereby granted, free of charge, to any person obtaining a copy
--- a/include/freetype/internal/pfr.h
+++ b/include/freetype/internal/pfr.h
@@ -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 FT_FREETYPE_H
+
FT_BEGIN_HEADER
typedef FT_Error (*FT_PFR_GetMetricsFunc)( FT_Face face,
@@ -21,16 +40,21 @@
FT_UInt gindex,
FT_Pos *aadvance );
- typedef struct FT_PFR_ServiceRec_
+
+ typedef struct FT_PFR_ServiceRec_
{
- FT_PFR_GetMetricsFunc get_metrics;
- FT_PFR_GetKerningFunc get_kerning;
- FT_PFR_GetAdvanceFunc get_advance;
+ FT_PFR_GetMetricsFunc get_metrics;
+ FT_PFR_GetKerningFunc get_kerning;
+ FT_PFR_GetAdvanceFunc get_advance;
} FT_PFR_ServiceRec, *FT_PFR_Service;
-#define FT_PFR_SERVICE_NAME "pfr"
+#define FT_PFR_SERVICE_NAME "pfr"
+
FT_END_HEADER
-#endif /* __FT_INTERNAL_PFR_H__ */
+#endif /* __PFR_H__ */
+
+
+/* END */
--- a/include/freetype/internal/sfnt.h
+++ b/include/freetype/internal/sfnt.h
@@ -4,7 +4,7 @@
/* */
/* High-level `sfnt' driver interface (specification). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -463,14 +463,15 @@
/* SFNT_Load_Table_Func */
/* */
/* <Description> */
- /* Loads a given SFNT table in memory */
+ /* Loads a given SFNT table into memory. */
/* */
typedef FT_Error
- (*SFNT_Load_Table_Func)( FT_Face face,
- FT_ULong tag,
- FT_Long offset,
- FT_Byte* buffer,
- FT_ULong* length );
+ (*SFNT_Load_Table_Func)( FT_Face face,
+ FT_ULong tag,
+ FT_Long offset,
+ FT_Byte* buffer,
+ FT_ULong* length );
+
/*************************************************************************/
/* */
--- a/include/freetype/ttnameid.h
+++ b/include/freetype/ttnameid.h
@@ -4,7 +4,7 @@
/* */
/* TrueType name ID definitions (specification only). */
/* */
-/* Copyright 1996-2002 by */
+/* Copyright 1996-2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -257,8 +257,8 @@
* Corresponds to Microsoft Johab encoding. See @FT_ENCODING_MS_JOHAB.
*
* TT_MS_ID_UCS_4 ::
- * Corresponds to UCS-4 or UTF-32 charmaps. This has been added into
- * OpenType specification as of version 1.4 (mid-2001.)
+ * Corresponds to UCS-4 or UTF-32 charmaps. This has been added to
+ * the OpenType specification version 1.4 (mid-2001.)
*/
#define TT_MS_ID_SYMBOL_CS 0
--- a/include/freetype/tttables.h
+++ b/include/freetype/tttables.h
@@ -5,7 +5,7 @@
/* Basic SFNT/TrueType tables definitions and interface */
/* (specification only). */
/* */
-/* Copyright 1996-2001 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -593,6 +593,7 @@
FT_Get_Sfnt_Table( FT_Face face,
FT_Sfnt_Tag tag );
+
/**************************************************************************
*
* <Function>
@@ -602,43 +603,45 @@
* Loads any font table into client memory.
*
* <Input>
- * face :: handle to 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
- * one of the definitions found in the @FT_TRUETYPE_TAGS_H
- * file, or forge a new one with @FT_MAKE_TAG
+ * 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. Otherwise, you can
+ * 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>
- * buffer :: target buffer address. client must ensure that there are
- * enough bytes in it.
+ * buffer :: The target buffer address. The client must ensure that
+ * the memory array is big enough to hold the data.
*
* <InOut>
- * length :: if the 'length' parameter is NULL, then try to load the whole
- * table, and return an error code if it fails.
+ * length :: If the `length' parameter is NULL, then try to load the whole
+ * 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.
*
- * 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.
*
* <Return>
- * error code. 0 means success
+ * FreeType error code. 0 means success.
*
* <Note>
- * 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:
+ * 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:
*
* {
* FT_ULong length = 0;
*
+ *
* error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
* if ( error ) { ... table does not exist ... }
*
* 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 );
* if ( error ) { ... could not load table ... }
@@ -645,11 +648,11 @@
* }
*/
FT_EXPORT( FT_Error )
- FT_Load_Sfnt_Table( FT_Face face,
- FT_ULong tag,
- FT_Long offset,
- FT_Byte* buffer,
- FT_ULong* length );
+ FT_Load_Sfnt_Table( FT_Face face,
+ FT_ULong tag,
+ FT_Long offset,
+ FT_Byte* buffer,
+ FT_ULong* length );
/* */
--- a/src/autohint/ahglobal.c
+++ b/src/autohint/ahglobal.c
@@ -4,7 +4,7 @@
/* */
/* 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 */
/* */
/* This file is part of the Catharon Typography Project and shall only */
@@ -323,7 +323,8 @@
if ( error )
goto Exit;
- error = ah_outline_load( hinter->glyph, 0x10000L, 0x10000L, hinter->face );
+ error = ah_outline_load( hinter->glyph, 0x10000L, 0x10000L,
+ hinter->face );
if ( error )
goto Exit;
--- a/src/autohint/ahglobal.h
+++ b/src/autohint/ahglobal.h
@@ -5,7 +5,7 @@
/* Routines used to compute global metrics automatically */
/* (specification). */
/* */
-/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
+/* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */
/* */
/* This file is part of the Catharon Typography Project and shall only */
@@ -34,16 +34,16 @@
#ifdef FT_CONFIG_CHESTER_SMALL_F
-# define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \
- (b) == AH_BLUE_SMALL_F_TOP || \
- (b) == AH_BLUE_SMALL_TOP )
+#define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \
+ (b) == AH_BLUE_SMALL_F_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 || \
- (b) == AH_BLUE_SMALL_TOP )
+#define AH_IS_TOP_BLUE( b ) ( (b) == AH_BLUE_CAPITAL_TOP || \
+ (b) == AH_BLUE_SMALL_TOP )
-#endif /* !CHESTER_SMALL_F */
+#endif /* !FT_CONFIG_CHESTER_SMALL_F */
/* compute global metrics automatically */
--- a/src/autohint/ahglyph.c
+++ b/src/autohint/ahglyph.c
@@ -5,7 +5,7 @@
/* Routines used to load and analyze a given glyph before hinting */
/* (body). */
/* */
-/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
+/* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */
/* */
/* This file is part of the Catharon Typography Project and shall only */
@@ -1358,12 +1358,12 @@
}
else
edge->link = edge2;
-#else /* !CHESTER_SERIF */
+#else /* !FT_CONFIG_CHESTER_SERIF */
if ( is_serif )
edge->serif = edge2;
else
edge->link = edge2;
-#endif
+#endif /* !FT_CONFIG_CHESTER_SERIF */
}
seg = seg->edge_next;
@@ -1493,7 +1493,7 @@
best_dist = 64 / 2;
#else
if ( best_dist > 64 / 4 )
- best_dist = 64 / 4;
+ best_dist = 64 / 4;
#endif
for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ )
--- a/src/autohint/ahhint.c
+++ b/src/autohint/ahhint.c
@@ -4,7 +4,7 @@
/* */
/* Glyph hinter (body). */
/* */
-/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
+/* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */
/* */
/* This file is part of the Catharon Typography Project and shall only */
@@ -88,7 +88,9 @@
/* compute the snapped width of a given stem */
+
#ifdef FT_CONFIG_CHESTER_SERIF
+
static FT_Pos
ah_compute_stem_width( AH_Hinter hinter,
int vertical,
@@ -218,7 +220,9 @@
return dist;
}
-#else /* !CHESTER_SERIF */
+
+#else /* !FT_CONFIG_CHESTER_SERIF */
+
static FT_Pos
ah_compute_stem_width( AH_Hinter hinter,
int vertical,
@@ -332,9 +336,10 @@
return dist;
}
-#endif /* !CHESTER_SERIF */
+#endif /* !FT_CONFIG_CHESTER_SERIF */
+
/* align one stem edge relative to the previous stem edge */
static void
ah_align_linked_edge( AH_Hinter hinter,
@@ -345,6 +350,7 @@
FT_Pos dist = stem_edge->opos - base_edge->opos;
#ifdef FT_CONFIG_CHESTER_SERIF
+
FT_Pos fitted_width = ah_compute_stem_width( hinter,
vertical,
dist,
@@ -352,10 +358,14 @@
stem_edge->flags );
stem_edge->pos = base_edge->pos + fitted_width;
+
#else
+
stem_edge->pos = base_edge->pos +
ah_compute_stem_width( hinter, vertical, dist );
+
#endif
+
}
@@ -509,7 +519,9 @@
if ( !anchor )
{
+
#ifdef FT_CONFIG_CHESTER_STEM
+
FT_Pos org_len, org_center, cur_len;
FT_Pos cur_pos1, error1, error2, u_off, d_off;
@@ -556,7 +568,9 @@
edge->flags |= AH_EDGE_DONE;
ah_align_linked_edge( hinter, edge, edge2, dimension );
-#else /* !CHESTER_STEM */
+
+#else /* !FT_CONFIG_CHESTER_STEM */
+
edge->pos = ( edge->opos + 32 ) & -64;
anchor = edge;
@@ -563,7 +577,9 @@
edge->flags |= AH_EDGE_DONE;
ah_align_linked_edge( hinter, edge, edge2, dimension );
-#endif /* !CHESTER_STEM */
+
+#endif /* !FT_CONFIG_CHESTER_STEM */
+
}
else
{
@@ -576,13 +592,19 @@
org_center = org_pos + ( org_len >> 1 );
#ifdef FT_CONFIG_CHESTER_SERIF
+
cur_len = ah_compute_stem_width( hinter, dimension, org_len,
edge->flags, edge2->flags );
-#else /* !CHESTER_SERIF */
+
+
+#else /* !FT_CONFIG_CHESTER_SERIF */
+
cur_len = ah_compute_stem_width( hinter, dimension, org_len );
-#endif /* !CHESTER_SERIF */
+#endif /* !FT_CONFIG_CHESTER_SERIF */
+
#ifdef FT_CONFIG_CHESTER_STEM
+
if ( cur_len < 96 )
{
FT_Pos u_off, d_off;
@@ -638,7 +660,7 @@
edge2->pos = edge->pos + cur_len;
}
-#else /* !CHESTER_STEM */
+#else /* !FT_CONFIG_CHESTER_STEM */
cur_pos1 = ( org_pos + 32 ) & -64;
delta1 = ( cur_pos1 + ( cur_len >> 1 ) - org_center );
@@ -653,7 +675,7 @@
edge->pos = ( delta1 <= delta2 ) ? cur_pos1 : cur_pos2;
edge2->pos = edge->pos + cur_len;
-#endif /* !CHESTER_STEM */
+#endif /* !FT_CONFIG_CHESTER_STEM */
edge->flags |= AH_EDGE_DONE;
edge2->flags |= AH_EDGE_DONE;
@@ -1662,6 +1684,7 @@
}
#ifdef 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
*/
@@ -1689,6 +1712,7 @@
}
}
}
+
#endif /* FT_CONFIG_CHESTER_BLUE_SCALE */
/* now, we must check the current character pixel size to see if we */
--- a/src/autohint/ahtypes.h
+++ b/src/autohint/ahtypes.h
@@ -5,7 +5,7 @@
/* General types and definitions for the auto-hint module */
/* (specification only). */
/* */
-/* Copyright 2000-2001, 2002 Catharon Productions Inc. */
+/* Copyright 2000-2001, 2002, 2003 Catharon Productions Inc. */
/* Author: David Turner */
/* */
/* This file is part of the Catharon Typography Project and shall only */
@@ -387,24 +387,24 @@
#ifdef FT_CONFIG_CHESTER_SMALL_F
-# define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */
-# 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_TOP ( AH_BLUE_SMALL_F_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_MAX ( AH_BLUE_SMALL_MINOR + 1 )
+#define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */
+#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_TOP ( AH_BLUE_SMALL_F_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_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_BOTTOM ( AH_BLUE_CAPITAL_TOP + 1 ) /* HEZLOCUS */
-# 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_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */
-# define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 )
+#define AH_BLUE_CAPITAL_TOP 0 /* THEZOCQS */
+#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_BOTTOM ( AH_BLUE_SMALL_TOP + 1 ) /* xzroesc */
+#define AH_BLUE_SMALL_MINOR ( AH_BLUE_SMALL_BOTTOM + 1 ) /* pqgjy */
+#define AH_BLUE_MAX ( AH_BLUE_SMALL_MINOR + 1 )
-#endif /* !CHESTER_SMALL_F */
+#endif /* !FT_CONFIG_CHESTER_SMALL_F */
typedef FT_Int AH_Blue;