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