Module: wine Branch: master Commit: 8a6628aea59f6f7ba0eb85d6a72297bbb72e7b85 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8a6628aea59f6f7ba0eb85d6a7...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Tue Jun 24 16:11:21 2008 +0900
gdi32: Font scaling transform is performed separately.
---
dlls/gdi32/freetype.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index bccb063..69e077d 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -4346,15 +4346,16 @@ DWORD WineEngGetGlyphOutline(GdiFont *incoming_font, UINT glyph, UINT format, else widthRatio = font->scale_y;
- left = (INT)(ft_face->glyph->metrics.horiBearingX * widthRatio) & -64; - right = (INT)((ft_face->glyph->metrics.horiBearingX + ft_face->glyph->metrics.width) * widthRatio + 63) & -64; + left = (INT)(ft_face->glyph->metrics.horiBearingX) & -64; + right = (INT)((ft_face->glyph->metrics.horiBearingX + ft_face->glyph->metrics.width) + 63) & -64;
- adv = (INT)((ft_face->glyph->metrics.horiAdvance * widthRatio) + 63) >> 6; + adv = (INT)((ft_face->glyph->metrics.horiAdvance) + 63) >> 6; lsb = left >> 6; bbx = (right - left) >> 6;
/* Scaling transform */ - if(font->aveWidth) { + if (widthRatio != 1.0 || font->scale_y != 1.0) + { FT_Matrix scaleMat; scaleMat.xx = FT_FixedFromFloat(widthRatio); scaleMat.xy = 0;