From 4c206326913706788644e8f4ebc11dcede368d6f Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 24 May 2010 12:34:28 +0200 Subject: [PATCH] winex11: Fetch the antialias parameter from fontconfig too. --- dlls/winex11.drv/xrender.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c index cc0b2b50864..087da2b42aa 100644 --- a/dlls/winex11.drv/xrender.c +++ b/dlls/winex11.drv/xrender.c @@ -193,6 +193,7 @@ MAKE_FUNCPTR(FcPatternCreate) MAKE_FUNCPTR(FcPatternDestroy) MAKE_FUNCPTR(FcPatternAddInteger) MAKE_FUNCPTR(FcPatternAddString) +MAKE_FUNCPTR(FcPatternGetBool) MAKE_FUNCPTR(FcPatternGetInteger) MAKE_FUNCPTR(FcPatternGetString) static void *fontconfig_handle; @@ -408,6 +409,7 @@ LOAD_OPTIONAL_FUNCPTR(XRenderSetPictureTransform) LOAD_FUNCPTR(FcPatternDestroy); LOAD_FUNCPTR(FcPatternAddInteger); LOAD_FUNCPTR(FcPatternAddString); + LOAD_FUNCPTR(FcPatternGetBool); LOAD_FUNCPTR(FcPatternGetInteger); LOAD_FUNCPTR(FcPatternGetString); #undef LOAD_FUNCPTR @@ -936,14 +938,17 @@ static int GetCacheEntry(X11DRV_PDEVICE *physDev, LFANDSIZE *plfsz) if ((match = pFcFontMatch( NULL, pattern, &result ))) { int rgba; + FcBool antialias; + if (pFcPatternGetBool( match, FC_ANTIALIAS, 0, &antialias ) != FcResultMatch) + antialias = TRUE; if (pFcPatternGetInteger( match, FC_RGBA, 0, &rgba ) == FcResultMatch) { FcChar8 *file; if (pFcPatternGetString( match, FC_FILE, 0, &file ) != FcResultMatch) file = NULL; - TRACE( "fontconfig returned rgba %u for font %s file %s\n", - rgba, debugstr_w(plfsz->lf.lfFaceName), debugstr_a((char *)file) ); + TRACE( "fontconfig returned rgba %u antialias %u for font %s file %s\n", + rgba, antialias, debugstr_w(plfsz->lf.lfFaceName), debugstr_a((char *)file) ); switch (rgba) { @@ -951,7 +956,7 @@ static int GetCacheEntry(X11DRV_PDEVICE *physDev, LFANDSIZE *plfsz) case FC_RGBA_BGR: entry->aa_default = AA_BGR; break; case FC_RGBA_VRGB: entry->aa_default = AA_VRGB; break; case FC_RGBA_VBGR: entry->aa_default = AA_VBGR; break; - case FC_RGBA_NONE: entry->aa_default = AA_None; break; + case FC_RGBA_NONE: entry->aa_default = antialias ? AA_Grey : AA_None; break; } } pFcPatternDestroy( match );