File use-freetype-default.diff of Package libqt4
--- src/gui/text/qfontengine_x11.cpp
+++ src/gui/text/qfontengine_x11.cpp
@@ -890,6 +890,27 @@ Q_GUI_EXPORT void qt_x11ft_convert_patte
*antialias = b;
}
+#include <ft2build.h>
+#include FT_FREETYPE_H
+#include FT_LCD_FILTER_H
+
+static bool subpixel_rendering_available()
+{
+ static int implemented = -1;
+
+ if (implemented >= 0)
+ return implemented;
+
+ extern FT_Library qt_getFreetype();
+ FT_Library lib = qt_getFreetype();
+
+ if (FT_Err_Unimplemented_Feature ==
+ FT_Library_SetLcdFilter(lib, FT_LCD_FILTER_DEFAULT ))
+ return (implemented = false);
+
+ return (implemented = true);
+}
+
QFontEngineX11FT::QFontEngineX11FT(FcPattern *pattern, const QFontDef &fd, int screen)
: QFontEngineFT(fd)
@@ -907,7 +928,8 @@ QFontEngineX11FT::QFontEngineX11FT(FcPat
canUploadGlyphsToServer = qApp->thread() == QThread::currentThread();
subpixelType = Subpixel_None;
- if (antialias) {
+
+ if (subpixel_rendering_available() && antialias) {
int subpixel = 0;
if (FcPatternGetInteger(pattern, FC_RGBA, 0, &subpixel) == FcResultNoMatch
&& X11->display)