Offset the source and destination rectangles as pointed out in bug #4107. Remove...
authorGregor Schneider <grschneider@gmail.com>
Tue, 3 Feb 2009 15:58:46 +0000 (15:58 +0000)
committerGregor Schneider <grschneider@gmail.com>
Tue, 3 Feb 2009 15:58:46 +0000 (15:58 +0000)
svn path=/trunk/; revision=39336

reactos/subsystems/win32/win32k/objects/bitblt.c

index 4b8c585..588d42a 100644 (file)
@@ -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);