winex11: Fetch the antialias parameter from fontconfig too.

This commit is contained in:
Alexandre Julliard 2010-05-24 12:34:28 +02:00
parent 40b3d2ed13
commit 4c20632691
1 changed files with 8 additions and 3 deletions

View File

@ -193,6 +193,7 @@ MAKE_FUNCPTR(FcPatternCreate)
MAKE_FUNCPTR(FcPatternDestroy) MAKE_FUNCPTR(FcPatternDestroy)
MAKE_FUNCPTR(FcPatternAddInteger) MAKE_FUNCPTR(FcPatternAddInteger)
MAKE_FUNCPTR(FcPatternAddString) MAKE_FUNCPTR(FcPatternAddString)
MAKE_FUNCPTR(FcPatternGetBool)
MAKE_FUNCPTR(FcPatternGetInteger) MAKE_FUNCPTR(FcPatternGetInteger)
MAKE_FUNCPTR(FcPatternGetString) MAKE_FUNCPTR(FcPatternGetString)
static void *fontconfig_handle; static void *fontconfig_handle;
@ -408,6 +409,7 @@ LOAD_OPTIONAL_FUNCPTR(XRenderSetPictureTransform)
LOAD_FUNCPTR(FcPatternDestroy); LOAD_FUNCPTR(FcPatternDestroy);
LOAD_FUNCPTR(FcPatternAddInteger); LOAD_FUNCPTR(FcPatternAddInteger);
LOAD_FUNCPTR(FcPatternAddString); LOAD_FUNCPTR(FcPatternAddString);
LOAD_FUNCPTR(FcPatternGetBool);
LOAD_FUNCPTR(FcPatternGetInteger); LOAD_FUNCPTR(FcPatternGetInteger);
LOAD_FUNCPTR(FcPatternGetString); LOAD_FUNCPTR(FcPatternGetString);
#undef LOAD_FUNCPTR #undef LOAD_FUNCPTR
@ -936,14 +938,17 @@ static int GetCacheEntry(X11DRV_PDEVICE *physDev, LFANDSIZE *plfsz)
if ((match = pFcFontMatch( NULL, pattern, &result ))) if ((match = pFcFontMatch( NULL, pattern, &result )))
{ {
int rgba; int rgba;
FcBool antialias;
if (pFcPatternGetBool( match, FC_ANTIALIAS, 0, &antialias ) != FcResultMatch)
antialias = TRUE;
if (pFcPatternGetInteger( match, FC_RGBA, 0, &rgba ) == FcResultMatch) if (pFcPatternGetInteger( match, FC_RGBA, 0, &rgba ) == FcResultMatch)
{ {
FcChar8 *file; FcChar8 *file;
if (pFcPatternGetString( match, FC_FILE, 0, &file ) != FcResultMatch) file = NULL; if (pFcPatternGetString( match, FC_FILE, 0, &file ) != FcResultMatch) file = NULL;
TRACE( "fontconfig returned rgba %u for font %s file %s\n", TRACE( "fontconfig returned rgba %u antialias %u for font %s file %s\n",
rgba, debugstr_w(plfsz->lf.lfFaceName), debugstr_a((char *)file) ); rgba, antialias, debugstr_w(plfsz->lf.lfFaceName), debugstr_a((char *)file) );
switch (rgba) 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_BGR: entry->aa_default = AA_BGR; break;
case FC_RGBA_VRGB: entry->aa_default = AA_VRGB; break; case FC_RGBA_VRGB: entry->aa_default = AA_VRGB; break;
case FC_RGBA_VBGR: entry->aa_default = AA_VBGR; 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 ); pFcPatternDestroy( match );