* include/freetype/internal/ftobjs.h, src/truetype/ttobjs.c,

src/base/ftobjs.c: fixed a bug in the automatic unpatented
        hinting support which prevented normal bytecode hinting to
        work properly

        * src/autofit/aftypes.h: undefining AF_DEBUG to get rid of
        traces
This commit is contained in:
David Turner 2006-09-27 16:20:59 +00:00
parent 826935a381
commit ad83071620
5 changed files with 20 additions and 27 deletions

View File

@ -1,3 +1,13 @@
2006-09-28 David Turner <david@freetype.org>
* include/freetype/internal/ftobjs.h, src/truetype/ttobjs.c,
src/base/ftobjs.c: fixed a bug in the automatic unpatented
hinting support which prevented normal bytecode hinting to
work properly
* src/autofit/aftypes.h: undefining AF_DEBUG to get rid of
traces
2006-09-27 David Turner <david@freetype.org>
* include/freetype/freetype.h: bumping FT_FREETYPE_PATCH to 2

View File

@ -211,26 +211,11 @@ FT_BEGIN_HEADER
/* this data when first opened. This field exists only if */
/* @FT_CONFIG_OPTION_INCREMENTAL is defined. */
/* */
/* force_autohing :: */
/* This boolean flag instructs the glyph loader to ignore the */
/* format-specific hinter, and to use the auto-hinter instead to */
/* load all glyphs. */
/* */
/* If the unpatented bytecode interpreter is compiled into the */
/* library, then: */
/* */
/* - if this is one of the tricky Asian fonts, like Gulim, which */
/* absolutely require a bytecode interpreter to load anything */
/* properly, the flag is set to FALSE */
/* */
/* - for other fonts, the flag is set to TRUE, and the auto-hinter */
/* is used to scale the glyphs. */
/* */
/* If the unpatented bytecode interpreter is not compiled into */
/* the library, the flag is always set to FALSE. */
/* */
/* The detection of `tricky' fonts is located in the TrueType */
/* face loader, testing against a bunch of font names. */
/* unpatented_hinting :: */
/* This boolean flag instructs the glyph loader that this font */
/* can only be loaded through the unpatented bytecode interpreter. */
/* in this case, the auto-hinter will never be called for it. */
/* except if you use FT_LOAD_FORCE_AUTOHINT */
/* */
typedef struct FT_Face_InternalRec_
{
@ -248,7 +233,7 @@ FT_BEGIN_HEADER
FT_Incremental_InterfaceRec* incremental_interface;
#endif
FT_Bool force_autohint;
FT_Bool unpatented_hinting;
} FT_Face_InternalRec;

View File

@ -54,7 +54,7 @@ FT_BEGIN_HEADER
/*************************************************************************/
#define xxAF_USE_WARPER /* only define to use warp hinting */
#define AF_DEBUG
#define xxAF_DEBUG
#ifdef AF_DEBUG

View File

@ -576,9 +576,6 @@
if ( FT_LOAD_TARGET_MODE( load_flags ) == FT_RENDER_MODE_LIGHT )
load_flags |= FT_LOAD_FORCE_AUTOHINT;
if ( face->internal->force_autohint )
load_flags |= FT_LOAD_FORCE_AUTOHINT;
/* auto-hinter is preferred and should be used */
if ( ( !FT_DRIVER_HAS_HINTER( driver ) ||
( load_flags & FT_LOAD_FORCE_AUTOHINT ) ) &&
@ -591,7 +588,8 @@
FT_DRIVER_IS_SCALABLE( driver ) &&
FT_DRIVER_USES_OUTLINES( driver ) &&
face->internal->transform_matrix.yy > 0 &&
face->internal->transform_matrix.yx == 0 );
face->internal->transform_matrix.yx == 0 &&
!face->internal->unpatented_hinting );
}
if ( autohint )

View File

@ -290,7 +290,7 @@
}
}
ttface->internal->force_autohint = !face->unpatented_hinting;
ttface->internal->unpatented_hinting = face->unpatented_hinting;
#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
/* initialize standard glyph loading routines */