Alexandre Julliard : gdi32: Fix handling of rotation matrices in GetGlyphOutline.

Alexandre Julliard julliard at winehq.org
Fri Dec 14 14:10:00 CST 2012


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Dec 14 13:12:19 2012 +0100

gdi32: Fix handling of rotation matrices in GetGlyphOutline.

---

 dlls/gdi32/freetype.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 6f3f070..6c39b97 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -5836,8 +5836,8 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format,
     {
         FT_Matrix worldMat;
         worldMat.xx = FT_FixedFromFloat(font->font_desc.matrix.eM11);
-        worldMat.xy = FT_FixedFromFloat(font->font_desc.matrix.eM12);
-        worldMat.yx = FT_FixedFromFloat(font->font_desc.matrix.eM21);
+        worldMat.xy = -FT_FixedFromFloat(font->font_desc.matrix.eM21);
+        worldMat.yx = -FT_FixedFromFloat(font->font_desc.matrix.eM12);
         worldMat.yy = FT_FixedFromFloat(font->font_desc.matrix.eM22);
         pFT_Matrix_Multiply(&worldMat, &transMat);
         pFT_Matrix_Multiply(&worldMat, &transMatUnrotated);
@@ -5849,8 +5849,8 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format,
     {
         FT_Matrix extraMat;
         extraMat.xx = FT_FixedFromFIXED(lpmat->eM11);
-        extraMat.xy = FT_FixedFromFIXED(lpmat->eM12);
-        extraMat.yx = FT_FixedFromFIXED(lpmat->eM21);
+        extraMat.xy = FT_FixedFromFIXED(lpmat->eM21);
+        extraMat.yx = FT_FixedFromFIXED(lpmat->eM12);
         extraMat.yy = FT_FixedFromFIXED(lpmat->eM22);
         pFT_Matrix_Multiply(&extraMat, &transMat);
         pFT_Matrix_Multiply(&extraMat, &transMatUnrotated);




More information about the wine-cvs mailing list