Dmitry Timoshkov : gdi32: Try to avoid not necessary glyph transformations.

Alexandre Julliard julliard at winehq.org
Mon Nov 3 09:06:53 CST 2008


Module: wine
Branch: master
Commit: 376adf9438907f4e6147d8b2c33ea941aca6835d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=376adf9438907f4e6147d8b2c33ea941aca6835d

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Sat Nov  1 17:44:05 2008 +0800

gdi32: Try to avoid not necessary glyph transformations.

---

 dlls/gdi32/freetype.c |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 2e64038..9e3ec02 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -3321,6 +3321,14 @@ GdiFont *WineEngCreateFontInstance(DC *dc, HFONT hfont)
         dcmat.eM21 = dcmat.eM12 = 0;
     }
 
+    /* Try to avoid not necessary glyph transformations */
+    if (dcmat.eM21 == 0.0 && dcmat.eM12 == 0.0 && dcmat.eM11 == dcmat.eM22)
+    {
+        lf.lfHeight *= fabs(dcmat.eM11);
+        lf.lfWidth *= fabs(dcmat.eM11);
+        dcmat.eM11 = dcmat.eM22 = 1.0;
+    }
+
     TRACE("DC transform %f %f %f %f\n", dcmat.eM11, dcmat.eM12,
                                         dcmat.eM21, dcmat.eM22);
 
@@ -4606,9 +4614,8 @@ DWORD WineEngGetGlyphOutline(GdiFont *incoming_font, UINT glyph, UINT format,
 	    ft_bitmap.pixel_mode = ft_pixel_mode_mono;
 	    ft_bitmap.buffer = buf;
 
-		if(needsTransform) {
-			pFT_Outline_Transform(&ft_face->glyph->outline, &transMat);
-	    }
+	    if(needsTransform)
+		pFT_Outline_Transform(&ft_face->glyph->outline, &transMat);
 
 	    pFT_Outline_Translate(&ft_face->glyph->outline, -left, -bottom );
 




More information about the wine-cvs mailing list