ref: 6f8c6229969d552d1e16f936027b1816785da222
parent: 745ff2c29f4c56a26f39a2742ab45cb94b374c0c
author: David Turner <[email protected]>
date: Tue Sep 26 11:42:44 EDT 2006
* src/autofit/aftypes.h, src/autofit/afhints.h, src/autofit/afmodule.c: adding support for disabling horizontal and vertical hinting for the purpose of debugging the auto-fitter
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2006-09-26 David Turner <[email protected]>
+
+ * src/autofit/aftypes.h, src/autofit/afhints.h,
+ src/autofit/afmodule.c: adding support for disabling
+ horizontal and vertical hinting for the purpose of debugging
+ the auto-fitter
+
2006-09-18 Garrick Meeker <[email protected]>
* src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
--- a/src/autofit/afhints.h
+++ b/src/autofit/afhints.h
@@ -213,7 +213,18 @@
#define AF_HINTS_TEST_SCALER( h, f ) ( (h)->scaler_flags & (f) )
#define AF_HINTS_TEST_OTHER( h, f ) ( (h)->other_flags & (f) )
+#ifdef AF_DEBUG
#define AF_HINTS_DO_HORIZONTAL( h ) \
+ ( !_af_debug_disable_horz_hints && !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_HORIZONTAL ) )
+
+#define AF_HINTS_DO_VERTICAL( h ) \
+ ( !_af_debug_disable_vert_hints && !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_VERTICAL ) )
+
+#define AF_HINTS_DO_ADVANCE( h ) \
+ !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_ADVANCE )
+
+#else /* !AF_DEBUG */
+#define AF_HINTS_DO_HORIZONTAL( h ) \
!AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_HORIZONTAL )
#define AF_HINTS_DO_VERTICAL( h ) \
@@ -222,6 +233,7 @@
#define AF_HINTS_DO_ADVANCE( h ) \
!AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_ADVANCE )
+#endif /* !AF_DEBUG */
FT_LOCAL( AF_Direction )
af_direction_compute( FT_Pos dx,
--- a/src/autofit/afmodule.c
+++ b/src/autofit/afmodule.c
@@ -19,6 +19,11 @@
#include "afmodule.h"
#include "afloader.h"
+#ifdef AF_DEBUG
+ int _af_debug_disable_horz_hints;
+ int _af_debug_disable_vert_hints;
+#endif
+
#include FT_INTERNAL_OBJECTS_H
--- a/src/autofit/aftypes.h
+++ b/src/autofit/aftypes.h
@@ -54,19 +54,21 @@
/*************************************************************************/
#define xxAF_USE_WARPER /* only define to use warp hinting */
-#define xxAF_DEBUG
+#define AF_DEBUG
#ifdef AF_DEBUG
-#include <stdio.h>
+# include <stdio.h>
+# define AF_LOG( x ) printf x
-#define AF_LOG( x ) printf x
+extern int _af_debug_disable_horz_hints;
+extern int _af_debug_disable_vert_hints;
-#else
+#else /* !AF_DEBUG */
-#define AF_LOG( x ) do ; while ( 0 ) /* nothing */
+# define AF_LOG( x ) do ; while ( 0 ) /* nothing */
-#endif /* AF_DEBUG */
+#endif /* !AF_DEBUG */
/*************************************************************************/
@@ -149,7 +151,7 @@
FT_Pos y_out );
/*
- * Return -1, 0, or +1, depending on the orientation of a given corner.
+ * Return -1, 0, or +1, depending on the orientation of a given corner.
* We use the Cartesian coordinate system, with positive vertical values
* going upwards. The function returns +1 when the corner turns to the
* left, -1 to the right, and 0 for undecided.