* 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
diff --git a/ChangeLog b/ChangeLog
index c5bde9b..fa747bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/include/freetype/internal/ftobjs.h b/include/freetype/internal/ftobjs.h
index 2e7c895..9f8704d 100644
--- a/include/freetype/internal/ftobjs.h
+++ b/include/freetype/internal/ftobjs.h
@@ -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;
diff --git a/src/autofit/aftypes.h b/src/autofit/aftypes.h
index 5ab78d3..e5f4ea6 100644
--- a/src/autofit/aftypes.h
+++ b/src/autofit/aftypes.h
@@ -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
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index a871d50..3022cbd 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -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 )
diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c
index 7241931..4bc4ba8 100644
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -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 */