[PATCH] gdi32: XFORM matrix in PlgBlt() is calculated incorrectly

Alexander Almaleh sashoalm at gmail.com
Thu Jun 26 07:06:37 CDT 2014


I see that the file was scrubbed, I don't know why, so I'm pasting it, just
in case.

>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: [PATCH] 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



On Thu, Jun 26, 2014 at 3:04 PM, Alexander Almaleh <sashoalm at gmail.com>
wrote:

> As suggested by Sebastian Lackner, I am submitting his much simpler
> version of the fix. Only one line is touched. The patch file is attached.
>
> The bugzilla link is http://bugs.winehq.org/show_bug.cgi?id=36504
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20140626/96f9310b/attachment.html>


More information about the wine-devel mailing list