From b4c66a205a415de3bcac470e8e430d59da41b08b Mon Sep 17 00:00:00 2001 From: Gregor Schneider Date: Tue, 3 Feb 2009 15:58:46 +0000 Subject: [PATCH] Offset the source and destination rectangles as pointed out in bug #4107. Remove respective FIXME. svn path=/trunk/; revision=39336 --- reactos/subsystems/win32/win32k/objects/bitblt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/reactos/subsystems/win32/win32k/objects/bitblt.c b/reactos/subsystems/win32/win32k/objects/bitblt.c index 4b8c58516d9..588d42abd58 100644 --- a/reactos/subsystems/win32/win32k/objects/bitblt.c +++ b/reactos/subsystems/win32/win32k/objects/bitblt.c @@ -805,7 +805,6 @@ NtGdiStretchBlt( IntGdiSelectBrush(DCDest,Dc_Attr->hbrush); /* Offset the destination and source by the origin of their DCs. */ - // FIXME: ptlDCOrig is in device coordinates! XOriginDest += DCDest->ptlDCOrig.x; YOriginDest += DCDest->ptlDCOrig.y; if (UsesSource) @@ -818,11 +817,16 @@ NtGdiStretchBlt( DestRect.top = YOriginDest; DestRect.right = XOriginDest+WidthDest; DestRect.bottom = YOriginDest+HeightDest; + IntLPtoDP(DCDest, (LPPOINT)&DestRect, 2); SourceRect.left = XOriginSrc; SourceRect.top = YOriginSrc; SourceRect.right = XOriginSrc+WidthSrc; SourceRect.bottom = YOriginSrc+HeightSrc; + if (UsesSource) + { + IntLPtoDP(DCSrc, (LPPOINT)&SourceRect, 2); + } /* Determine surfaces to be used in the bitblt */ BitmapDest = SURFACE_LockSurface(DCDest->w.hBitmap);