File use-freetype-default.diff of Package libqt4.import5129
Index: src/gui/text/qfontengine_x11.cpp
===================================================================
--- src/gui/text/qfontengine_x11.cpp.orig
+++ src/gui/text/qfontengine_x11.cpp
@@ -978,6 +978,26 @@ 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)
@@ -995,7 +1015,7 @@ QFontEngineX11FT::QFontEngineX11FT(FcPat
canUploadGlyphsToServer = qApp->thread() == QThread::currentThread();
subpixelType = Subpixel_None;
- if (antialias) {
+ if (subpixel_rendering_available() && antialias) {
int subpixel = X11->display ? X11->screens[screen].subpixel : FC_RGBA_UNKNOWN;
if (subpixel == FC_RGBA_UNKNOWN)
(void) FcPatternGetInteger(pattern, FC_RGBA, 0, &subpixel);