gdi32: Set the font anti-aliasing flags from the fontconfig information if available.

This commit is contained in:
Alexandre Julliard 2012-11-02 19:46:18 +01:00
parent 123da6f888
commit 9d888b371f
1 changed files with 5 additions and 2 deletions

View File

@ -345,6 +345,7 @@ struct tagGdiFont {
SHORT yMax; SHORT yMax;
SHORT yMin; SHORT yMin;
DWORD ntmFlags; DWORD ntmFlags;
DWORD aa_flags;
UINT ntmCellHeight, ntmAvgWidth; UINT ntmCellHeight, ntmAvgWidth;
FONTSIGNATURE fs; FONTSIGNATURE fs;
GdiFont *base_font; GdiFont *base_font;
@ -4544,8 +4545,6 @@ static HFONT freetype_SelectFont( PHYSDEV dev, HFONT hfont, UINT *aa_flags )
GetObjectW( hfont, sizeof(lf), &lf ); GetObjectW( hfont, sizeof(lf), &lf );
lf.lfWidth = abs(lf.lfWidth); lf.lfWidth = abs(lf.lfWidth);
if (!*aa_flags) *aa_flags = get_font_aa_flags( dev->hdc, &lf );
can_use_bitmap = GetDeviceCaps(dev->hdc, TEXTCAPS) & TC_RA_ABLE; can_use_bitmap = GetDeviceCaps(dev->hdc, TEXTCAPS) & TC_RA_ABLE;
TRACE("%s, h=%d, it=%d, weight=%d, PandF=%02x, charset=%d orient %d escapement %d\n", TRACE("%s, h=%d, it=%d, weight=%d, PandF=%02x, charset=%d orient %d escapement %d\n",
@ -4946,6 +4945,7 @@ found_face:
TRACE("Loaded GSUB table of %i bytes\n",length); TRACE("Loaded GSUB table of %i bytes\n",length);
} }
} }
ret->aa_flags = face->aa_flags;
TRACE("caching: gdiFont=%p hfont=%p\n", ret, hfont); TRACE("caching: gdiFont=%p hfont=%p\n", ret, hfont);
@ -4953,6 +4953,9 @@ found_face:
done: done:
if (ret) if (ret)
{ {
if (!*aa_flags) *aa_flags = ret->aa_flags;
if (!*aa_flags) *aa_flags = get_font_aa_flags( dev->hdc, &lf );
/* fixup the antialiasing flags for that font */ /* fixup the antialiasing flags for that font */
switch (*aa_flags) switch (*aa_flags)
{ {