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];