6254329 many fonts display poorly
authorJay Hobson <Jay.Hobson@Sun.COM>
Thu, 02 Nov 2006 17:37:06 -0800
changeset 80 59eb925d41b1
parent 79 d7531359b0b5
child 81 dc9eae1b23dd
6254329 many fonts display poorly
open-src/lib/Xft/Makefile
open-src/lib/Xft/xft.hint.patch
open-src/lib/freetype/Makefile
open-src/lib/freetype/freetype-2.1.10.hint.patch
--- a/open-src/lib/Xft/Makefile	Thu Nov 02 17:06:53 2006 -0800
+++ b/open-src/lib/Xft/Makefile	Thu Nov 02 17:37:06 2006 -0800
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.5	06/10/02
+# @(#)Makefile	1.6	06/11/02
 #
 
 PWD:sh=pwd
@@ -50,7 +50,8 @@
 SOURCE_PATCHES = \
 	xft.pc.patch \
 	xftcore-6261221.patch \
-	cjk-embolden.patch
+	cjk-embolden.patch \
+	xft.hint.patch
 
 # Directory created by unpacking source
 SOURCE_DIR=$(BUILD_DIR)/libXft-$(XFT_VERS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/Xft/xft.hint.patch	Thu Nov 02 17:37:06 2006 -0800
@@ -0,0 +1,36 @@
+--- xftfreetype.c.orig	Fri Mar 17 15:52:00 2006
++++ xftfreetype.c	Mon Jun 12 15:59:48 2006
+@@ -607,7 +607,20 @@
+     {
+ 	fi->load_flags |= FT_LOAD_NO_HINTING;
+     }
+-
++#ifdef FC_HINT_STYLE
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++    /*
++     * So long as we are not in NO_HINTING, then check to see if the user has
++     * selected Full hinting mode. If they have, then set the new FT flag to
++     * use full hinting.
++     */
++    else
++    {
++	if ( hint_style == FC_HINT_FULL )
++	    fi->load_flags |= FT_LOAD_USE_FULL_HINTING;
++    }
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
++#endif /* FC_HINT_STYLE */
+     /* Figure out the load target, which modifies the hinting
+      * behavior of FreeType based on the intended use of the glyphs.
+      */
+
+--- Makefile.in.orig	Mon Oct  2 16:09:55 2006
++++ Makefile.in	Mon Oct  2 16:08:46 2006
+@@ -221,7 +221,7 @@
+ SCRIPTS = $(bin_SCRIPTS)
+ 
+ 
+-DEFAULT_INCLUDES =  -I. -I$(srcdir) -I.
++DEFAULT_INCLUDES =  -I. -I$(srcdir) -I. -DFT_CONFIG_ADD_FULL_HINTING -I../../../freetype/build_32/freetype-2.1.10/include
+ depcomp = $(SHELL) $(top_srcdir)/depcomp
+ am__depfiles_maybe = depfiles
+ @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/xftcolor.Plo ./$(DEPDIR)/xftcore.Plo \
--- a/open-src/lib/freetype/Makefile	Thu Nov 02 17:06:53 2006 -0800
+++ b/open-src/lib/freetype/Makefile	Thu Nov 02 17:37:06 2006 -0800
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.62	06/09/01
+# @(#)Makefile	1.63	06/11/02
 #
 
 PWD:sh=pwd
@@ -49,7 +49,7 @@
 SOURCE_URL=http://savannah.nongnu.org/download/freetype/$(SOURCE_TARBALL_NAME)
 
 # Patches to apply to source after unpacking, in order
-SOURCE_PATCHES=freetype-$(FT_VERS).patch 6425531.patch 6466790.patch
+SOURCE_PATCHES=freetype-$(FT_VERS).patch 6425531.patch freetype-$(FT_VERS).hint.patch
 
 # Directory created by unpacking source
 SOURCE_DIR=$(BUILD_DIR)/freetype-$(FT_VERS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.1.10.hint.patch	Thu Nov 02 17:37:06 2006 -0800
@@ -0,0 +1,58 @@
+--- src/truetype/ttgload.c.orig	Mon Mar  6 16:19:31 2006
++++ src/truetype/ttgload.c	Mon Mar 13 16:26:53 2006
+@@ -916,7 +916,14 @@
+         load->exec->pts              = *zone;
+         load->exec->pts.n_points    += 4;
+ 
+-        error = TT_Run_Context( load->exec, debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++	if ( load->load_flags & FT_LOAD_USE_FULL_HINTING )
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
++            error = TT_Run_Context( load->exec, debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++	else
++	    error = TT_Err_Ok;
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
+         if ( error && load->exec->pedantic_hinting )
+           goto Exit;
+ 
+@@ -1635,7 +1642,14 @@
+           if ( IS_HINTED( loader->load_flags ) && n_ins > 0 )
+           {
+             exec->is_composite     = TRUE;
+-            error = TT_Run_Context( exec, ((TT_Size)loader->size)->debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++	    if ( loader->load_flags & FT_LOAD_USE_FULL_HINTING )
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
++                error = TT_Run_Context( exec, ((TT_Size)loader->size)->debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++	    else
++	        error = TT_Err_Ok;
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
+             if ( error && exec->pedantic_hinting )
+               goto Fail;
+           }
+--- include/freetype/freetype.h.orig	Fri Mar 10 15:53:18 2006
++++ include/freetype/freetype.h	Mon Mar 13 14:49:24 2006
+@@ -2339,6 +2339,9 @@
+ #define FT_LOAD_FORCE_AUTOHINT               0x20
+ #define FT_LOAD_CROP_BITMAP                  0x40
+ #define FT_LOAD_PEDANTIC                     0x80
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++#define FT_LOAD_USE_FULL_HINTING	     0x100
++#endif
+ #define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  0x200
+ #define FT_LOAD_NO_RECURSE                   0x400
+ #define FT_LOAD_IGNORE_TRANSFORM             0x800
+--- include/freetype/config/ftoption.h.orig	Mon Mar 13 15:20:30 2006
++++ include/freetype/config/ftoption.h	Mon Mar 13 14:53:20 2006
+@@ -436,7 +436,8 @@
+   /*   Do not #undef this macro here, since the build system might         */
+   /*   define it for certain configurations only.                          */
+   /*                                                                       */
+-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
++#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
++#define FT_CONFIG_ADD_FULL_HINTING
+ 
+ 
+   /*************************************************************************/