gdi32: fix for incorrect XFORM.eM22 calculation in PlgBlt()

Alexander Almaleh sashoalm at gmail.com
Thu Jun 26 14:03:01 CDT 2014


Fix for bug http://bugs.winehq.org/show_bug.cgi?id=36504

This is Sebastian Lackner's version of the patch, which I tested and it
works. It turned out only one line needed to be changed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20140626/f665f0fb/attachment.html>
-------------- next part --------------
From 603c09dee7beda5a6be08fe252bffecda8d48ed8 Mon Sep 17 00:00:00 2001
From: Alexander Almaleh <sashoalm at gmail.com>
Date: Thu, 26 Jun 2014 14:56:49 +0300
Subject: Fix for http://bugs.winehq.org/show_bug.cgi?id=36504.

---
 dlls/gdi32/bitblt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dlls/gdi32/bitblt.c b/dlls/gdi32/bitblt.c
index 4750d1b..762ca0f 100644
--- a/dlls/gdi32/bitblt.c
+++ b/dlls/gdi32/bitblt.c
@@ -1037,7 +1037,7 @@ BOOL WINAPI PlgBlt( HDC hdcDest, const POINT *lpPoint,
 
     /* Y components */
     xf.eM12 = (plg[1].y*(rect[2].y - rect[0].y) - plg[2].y*(rect[1].y - rect[0].y) - plg[0].y*(rect[2].y - rect[1].y)) / det;
-    xf.eM22 = (plg[1].x*(rect[2].y - rect[0].y) - plg[2].x*(rect[1].y - rect[0].y) - plg[0].x*(rect[2].y - rect[1].y)) / det;
+    xf.eM22 = (rect[1].x*(plg[2].y - plg[0].y) - rect[2].x*(plg[1].y - plg[0].y) - rect[0].x*(plg[2].y - plg[1].y)) / det;
     xf.eDy  = (rect[0].x*(rect[1].y*plg[2].y - rect[2].y*plg[1].y) -
                rect[1].x*(rect[0].y*plg[2].y - rect[2].y*plg[0].y) +
                rect[2].x*(rect[0].y*plg[1].y - rect[1].y*plg[0].y)
-- 
1.7.10.4



More information about the wine-patches mailing list