[WIN32K]
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 16 Feb 2011 23:29:50 +0000 (23:29 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Wed, 16 Feb 2011 23:29:50 +0000 (23:29 +0000)
In IntEngGradientFillRect, take the translate value into account, that we need when drawing happens on an intermediate surface. Patch by Thomas Faber (ThFabba at gmx dot de)

See issue #5805 for more details.

svn path=/trunk/; revision=50764

reactos/subsystems/win32/win32k/eng/gradient.c

index 75faeae..38d663c 100644 (file)
@@ -130,7 +130,7 @@ IntEngGradientFillRect(
               {
                 Color = XLATEOBJ_iXlate(pxlo, RGB(c[0], c[1], c[2]));
                 DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_VLine(
-                  psoOutput, y, FillRect.top, FillRect.bottom, Color);
+                  psoOutput, y + Translate.x, FillRect.top + Translate.y, FillRect.bottom + Translate.y, Color);
               }
               HVSTEPCOL(0);
               HVSTEPCOL(1);
@@ -158,7 +158,7 @@ IntEngGradientFillRect(
             {
               Color = XLATEOBJ_iXlate(pxlo, RGB(c[0], c[1], c[2]));
               DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(
-                psoOutput, FillRect.left, FillRect.right, y, Color);
+                psoOutput, FillRect.left + Translate.x, FillRect.right + Translate.x, y + Translate.y, Color);
             }
             HVSTEPCOL(0);
             HVSTEPCOL(1);
@@ -187,7 +187,7 @@ IntEngGradientFillRect(
         for(; FillRect.top < FillRect.bottom; FillRect.top++)
         {
           DibFunctionsForBitmapFormat[psoOutput->iBitmapFormat].DIB_HLine(
-            psoOutput, FillRect.left, FillRect.right, FillRect.top, Color);
+            psoOutput, FillRect.left + Translate.x, FillRect.right + Translate.x, FillRect.top + Translate.y, Color);
         }
       }
     }
@@ -318,7 +318,7 @@ IntEngGradientFillTriangle(
   //ULONG i;
   POINTL Translate;
   INTENG_ENTER_LEAVE EnterLeave;
-  RECTL FillRect;
+  RECTL FillRect = { 0, 0, 0, 0 };
   //ULONG Color;
 
   //BOOL sx[NLINES];