Author: tkreuzer
Date: Wed Feb 16 23:29:50 2011
New Revision: 50764

URL: http://svn.reactos.org/svn/reactos?rev=50764&view=rev
Log:
[WIN32K]
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.

Modified:
    trunk/reactos/subsystems/win32/win32k/eng/gradient.c

Modified: trunk/reactos/subsystems/win32/win32k/eng/gradient.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/eng/gradient.c?rev=50764&r1=50763&r2=50764&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/eng/gradient.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/eng/gradient.c [iso-8859-1] Wed Feb 
16 23:29:50 2011
@@ -130,7 +130,7 @@
               {
                 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 @@
             {
               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 @@
         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 @@
   //ULONG i;
   POINTL Translate;
   INTENG_ENTER_LEAVE EnterLeave;
-  RECTL FillRect;
+  RECTL FillRect = { 0, 0, 0, 0 };
   //ULONG Color;
 
   //BOOL sx[NLINES];


Reply via email to