Kaydet (Commit) 79f5f4c9 authored tarafından Caolán McNamara's avatar Caolán McNamara

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

üst 504e01e5
--- 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);
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment