[Libreoffice-commits] .: Branch 'libreoffice-3-5' - cairo/cairo cairo/cairo.dlsym.lcdfilter.patch

Jan Holesovsky kendy at kemper.freedesktop.org
Fri Jan 6 02:43:22 PST 2012


 cairo/cairo.dlsym.lcdfilter.patch |   56 ++++++++++++++++++++++++++++++++++++++
 cairo/cairo/makefile.mk           |    4 ++
 2 files changed, 59 insertions(+), 1 deletion(-)

New commits:
commit d58120ef8b3012087c92406fc1dd4858df3807d0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Jan 6 09:37:16 2012 +0000

    Resolves: fdo#44219 RHEL-4 buildbox doesn't have FT_Library_SetLcdFilter

diff --git a/cairo/cairo.dlsym.lcdfilter.patch b/cairo/cairo.dlsym.lcdfilter.patch
new file mode 100644
index 0000000..46f7ac7
--- /dev/null
+++ b/cairo/cairo.dlsym.lcdfilter.patch
@@ -0,0 +1,56 @@
+--- misc/cairo-1.10.2/src/cairo-ft-font.c	2012-01-06 09:09:21.500373823 +0000
++++ misc/build/cairo-1.10.2/src/cairo-ft-font.c	2012-01-06 09:31:01.645238786 +0000
+@@ -59,6 +59,8 @@
+ 
+ #if HAVE_FT_LIBRARY_SETLCDFILTER
+ #include FT_LCD_FILTER_H
++#elif HAVE_DLFCN_H
++#include <dlfcn.h>
+ #endif
+ 
+ /* Fontconfig version older than 2.6 didn't have these options */
+@@ -1217,6 +1219,26 @@
+     return CAIRO_STATUS_SUCCESS;
+ }
+ 
++static void try_FT_Library_SetLcdFilter( FT_Library library,
++    int lcd_filter )
++{
++#if HAVE_FT_LIBRARY_SETLCDFILTER
++    FT_Library_SetLcdFilter (library, lcd_filter);
++#elif HAVE_DLFCN_H
++    static void (*pFT_Library_SetLcdFilter) (FT_Library, int);
++    static int dlsymed = 0;
++
++    if (!dlsymed)
++    {
++        pFT_Library_SetLcdFilter = dlsym(RTLD_DEFAULT, "FT_Library_SetLcdFilter");
++        dlsymed = 1;
++    }
++
++    if (pFT_Library_SetLcdFilter)
++    	(*pFT_Library_SetLcdFilter) (library, lcd_filter); 
++#endif
++}
++
+ /* Converts an outline FT_GlyphSlot into an image
+  *
+  * This could go through _render_glyph_bitmap as well, letting
+@@ -1350,15 +1372,11 @@
+ 	    break;
+ 	    }
+ 
+-#if HAVE_FT_LIBRARY_SETLCDFILTER
+-	FT_Library_SetLcdFilter (library, lcd_filter);
+-#endif
++	try_FT_Library_SetLcdFilter(library, lcd_filter);
+ 
+ 	fterror = FT_Render_Glyph (face->glyph, render_mode);
+ 
+-#if HAVE_FT_LIBRARY_SETLCDFILTER
+-	FT_Library_SetLcdFilter (library, FT_LCD_FILTER_NONE);
+-#endif
++	try_FT_Library_SetLcdFilter(library, FT_LCD_FILTER_NONE);
+ 
+ 	if (fterror != 0)
+ 		return _cairo_error (CAIRO_STATUS_NO_MEMORY);
diff --git a/cairo/cairo/makefile.mk b/cairo/cairo/makefile.mk
index fc0111c..3abc352 100644
--- a/cairo/cairo/makefile.mk
+++ b/cairo/cairo/makefile.mk
@@ -47,7 +47,9 @@ CAIROVERSION=1.10.2
 TARFILE_NAME=$(PRJNAME)-$(CAIROVERSION)
 TARFILE_MD5=f101a9e88b783337b20b2e26dfd26d5f
 
-PATCH_FILES=..$/$(TARFILE_NAME).patch
+PATCH_FILES=\
+    ..$/cairo-1.10.2.patch \
+    ..$/cairo.dlsym.lcdfilter.patch
 
 .IF "$(OS)$(COM)" == "WNTMSC"
 PATCH_FILES+= ..$/$(TARFILE_NAME).wntmsc.patch


More information about the Libreoffice-commits mailing list