formatting

This commit is contained in:
Werner Lemberg 2006-10-03 08:43:42 +00:00
parent 2863cfa7c9
commit 046bf8b0cc
4 changed files with 45 additions and 38 deletions

View File

@ -6,8 +6,14 @@
2006-09-30 David Turner <david@freetype.org>
* include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
src/truetype/ttobjs.c: fixes related to the unpatented hinter
* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
s/unpatented_hinting/ignore_unpatented_hinter/.
Update all callers.
* src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
auto-hinting shall be used or not.
* src/truetype/ttobjs.c (tt_face_init): Ditto.
2006-09-30 Werner Lemberg <wl@gnu.org>

View File

@ -212,10 +212,10 @@ FT_BEGIN_HEADER
/* @FT_CONFIG_OPTION_INCREMENTAL is defined. */
/* */
/* ignore_unpatented_hinter :: */
/* This boolean flag instructs the glyph loader to ignore */
/* the native font hinter, if one is found. This is exclusively */
/* used in the case when the unpatented hinter is compiled within */
/* the library. */
/* This boolean flag instructs the glyph loader to ignore the */
/* native font hinter, if one is found. This is exclusively used */
/* in the case when the unpatented hinter is compiled within the */
/* library. */
/* */
typedef struct FT_Face_InternalRec_
{

View File

@ -573,44 +573,43 @@
load_flags &= ~FT_LOAD_RENDER;
}
/* determine wether we need to auto-hint or not
* the general rules are:
*
* - only auto-hint if we have a hinter module, a
* scalable font format dealing with outlines,
* no transforms except simple slants
*
* - then, autohint if FT_LOAD_FORCE_AUTOHINT is set
* or if we don't have a native font hinter
*
* - otherwise, autohint for LIGHT hinting mode
*
* - except if the font requires the unpatented
* bytecode interpreter to load properly
*/
/*
* Determine whether we need to auto-hint or not.
* The general rules are:
*
* - Do only auto-hinting if we have a hinter module,
* a scalable font format dealing with outlines,
* and no transforms except simple slants.
*
* - Then, autohint if FT_LOAD_FORCE_AUTOHINT is set
* or if we don't have a native font hinter.
*
* - Otherwise, auto-hint for LIGHT hinting mode.
*
* - Exception: The font requires the unpatented
* bytecode interpreter to load properly.
*/
autohint = 0;
if ( hinter &&
(load_flags & FT_LOAD_NO_HINTING) == 0 &&
(load_flags & FT_LOAD_NO_AUTOHINT) == 0 &&
FT_DRIVER_IS_SCALABLE( driver ) &&
FT_DRIVER_USES_OUTLINES( driver ) &&
face->internal->transform_matrix.yy > 0 &&
face->internal->transform_matrix.yx == 0 )
if ( hinter &&
( load_flags & FT_LOAD_NO_HINTING ) == 0 &&
( load_flags & FT_LOAD_NO_AUTOHINT ) == 0 &&
FT_DRIVER_IS_SCALABLE( driver ) &&
FT_DRIVER_USES_OUTLINES( driver ) &&
face->internal->transform_matrix.yy > 0 &&
face->internal->transform_matrix.yx == 0 )
{
if ( (load_flags & FT_LOAD_FORCE_AUTOHINT) != 0 ||
!FT_DRIVER_HAS_HINTER( driver ) )
if ( ( load_flags & FT_LOAD_FORCE_AUTOHINT ) != 0 ||
!FT_DRIVER_HAS_HINTER( driver ) )
autohint = 1;
else
{
FT_Render_Mode mode = FT_LOAD_TARGET_MODE(load_flags);
FT_Render_Mode mode = FT_LOAD_TARGET_MODE( load_flags );
if ( mode == FT_RENDER_MODE_LIGHT ||
face->internal->ignore_unpatented_hinter )
{
autohint = 1;
}
}
}

View File

@ -246,16 +246,17 @@
}
#if defined(TT_CONFIG_OPTION_UNPATENTED_HINTING) && \
!defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
#if defined( TT_CONFIG_OPTION_UNPATENTED_HINTING ) && \
!defined( TT_CONFIG_OPTION_BYTECODE_INTERPRETER )
{
FT_Bool unpatented_hinting;
int i;
/* Determine whether unpatented hinting is to be used for this face. */
unpatented_hinting = FT_BOOL
( library->debug_hooks[ FT_DEBUG_HOOK_UNPATENTED_HINTING ] != NULL );
( library->debug_hooks[FT_DEBUG_HOOK_UNPATENTED_HINTING] != NULL );
for ( i = 0; i < num_params && !face->unpatented_hinting; i++ )
if ( params[i].tag == FT_PARAM_TAG_UNPATENTED_HINTING )
@ -293,7 +294,8 @@
ttface->internal->ignore_unpatented_hinter = !unpatented_hinting;
}
#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING &&
!TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
/* initialize standard glyph loading routines */
TT_Init_Glyph_Loading( face );