shithub: freetype+ttf2subf

Download patch

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

git/fs: mount .git/fs: mount/attach disallowed
--- 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.