Author: jimtabor Date: Tue Feb 23 04:17:37 2010 New Revision: 45666
URL: http://svn.reactos.org/svn/reactos?rev=45666&view=rev Log: [Win32k] - Fix the new GetClipRgn clipping wine test for EqualRgn and clip region note.
Modified: trunk/reactos/subsystems/win32/win32k/objects/cliprgn.c trunk/reactos/subsystems/win32/win32k/objects/region.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/cliprgn.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/cliprgn.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/cliprgn.c [iso-8859-1] Tue Feb 23 04:17:37 2010 @@ -202,6 +202,7 @@ return ERROR; }
+ /* FIXME! Rao and Vis only! */ if (dc->prgnAPI) // APIRGN { hRgn = ((PROSRGNDATA)dc->prgnAPI)->BaseObject.hHmgr;
Modified: trunk/reactos/subsystems/win32/win32k/objects/region.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/obj... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/objects/region.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/objects/region.c [iso-8859-1] Tue Feb 23 04:17:37 2010 @@ -3439,27 +3439,33 @@ return ERROR; }
- if (rgn1->rdh.nCount != rgn2->rdh.nCount || - rgn1->rdh.nCount == 0 || - rgn1->rdh.rcBound.left != rgn2->rdh.rcBound.left || - rgn1->rdh.rcBound.right != rgn2->rdh.rcBound.right || - rgn1->rdh.rcBound.top != rgn2->rdh.rcBound.top || - rgn1->rdh.rcBound.bottom != rgn2->rdh.rcBound.bottom) - goto exit; + if ( rgn1->rdh.nCount != rgn2->rdh.nCount ) goto exit; + + if ( rgn1->rdh.nCount == 0 ) + { + bRet = TRUE; + goto exit; + } + + if ( rgn1->rdh.rcBound.left != rgn2->rdh.rcBound.left || + rgn1->rdh.rcBound.right != rgn2->rdh.rcBound.right || + rgn1->rdh.rcBound.top != rgn2->rdh.rcBound.top || + rgn1->rdh.rcBound.bottom != rgn2->rdh.rcBound.bottom ) + goto exit;
tRect1 = rgn1->Buffer; tRect2 = rgn2->Buffer;
if (!tRect1 || !tRect2) - goto exit; + goto exit;
for (i=0; i < rgn1->rdh.nCount; i++) { - if (tRect1[i].left != tRect2[i].left || - tRect1[i].right != tRect2[i].right || - tRect1[i].top != tRect2[i].top || - tRect1[i].bottom != tRect2[i].bottom) - goto exit; + if ( tRect1[i].left != tRect2[i].left || + tRect1[i].right != tRect2[i].right || + tRect1[i].top != tRect2[i].top || + tRect1[i].bottom != tRect2[i].bottom ) + goto exit; } bRet = TRUE;