More improvements to region.c:
- PROSRGNDATA -> REGION, void -> VOID, int -> INT, uppercase struct names
- do not put assignments into if statements
- !x -> x == NULL for pointers
- Add additional parentheses / curly braces
- rename RGN_ATTR::Flags to iComplexity

svn path=/trunk/; revision=65720
This commit is contained in:
Timo Kreuzer 2014-12-18 08:11:19 +00:00
parent 1a37b7cfb8
commit 2768e3abbd
7 changed files with 496 additions and 405 deletions

View file

@ -52,7 +52,7 @@ IntEngWndUpdateClipObj(
XCLIPOBJ* Clip,
PWND Window)
{
PROSRGNDATA visRgn;
PREGION visRgn;
TRACE("IntEngWndUpdateClipObj\n");

View file

@ -212,13 +212,13 @@ CombineRgn(HRGN hDest,
if ( !Ret ||
!pRgn_Attr_Dest ||
!pRgn_Attr_Src1 ||
pRgn_Attr_Src1->Flags > SIMPLEREGION )
pRgn_Attr_Src1->iComplexity > SIMPLEREGION )
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
/* Handle COPY and use only src1. */
if ( CombineMode == RGN_COPY )
{
switch (pRgn_Attr_Src1->Flags)
switch (pRgn_Attr_Src1->iComplexity)
{
case NULLREGION:
Ret = SetRectRgn( hDest, 0, 0, 0, 0);
@ -245,7 +245,7 @@ CombineRgn(HRGN hDest,
Ret = GdiGetHandleUserData((HGDIOBJ) hSrc2, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr_Src2);
if ( !Ret ||
!pRgn_Attr_Src2 ||
pRgn_Attr_Src2->Flags > SIMPLEREGION )
pRgn_Attr_Src2->iComplexity > SIMPLEREGION )
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
/* All but AND. */
@ -270,14 +270,14 @@ CombineRgn(HRGN hDest,
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
}
/* Now handle DIFF. */
if ( pRgn_Attr_Src1->Flags == NULLREGION )
if ( pRgn_Attr_Src1->iComplexity == NULLREGION )
{
if (SetRectRgn( hDest, 0, 0, 0, 0))
return NULLREGION;
goto ERROR_Exit;
}
if ( pRgn_Attr_Src2->Flags != NULLREGION )
if ( pRgn_Attr_Src2->iComplexity != NULLREGION )
{
Complexity = ComplexityFromRects( &pRgn_Attr_Src1->Rect, &pRgn_Attr_Src2->Rect);
@ -295,9 +295,9 @@ CombineRgn(HRGN hDest,
}
else /* Handle OR or XOR. */
{
if ( pRgn_Attr_Src1->Flags == NULLREGION )
if ( pRgn_Attr_Src1->iComplexity == NULLREGION )
{
if ( pRgn_Attr_Src2->Flags != NULLREGION )
if ( pRgn_Attr_Src2->iComplexity != NULLREGION )
{
/* Src1 null and not NULL, set from src2. */
Ret = SetRectRgn( hDest,
@ -315,7 +315,7 @@ CombineRgn(HRGN hDest,
goto ERROR_Exit;
}
/* Src1 is not NULL. */
if ( pRgn_Attr_Src2->Flags != NULLREGION )
if ( pRgn_Attr_Src2->iComplexity != NULLREGION )
{
if ( CombineMode != RGN_OR ) /* Filter XOR, so go K. */
return NtGdiCombineRgn(hDest, hSrc1, hSrc2, CombineMode);
@ -350,8 +350,8 @@ CombineRgn(HRGN hDest,
}
/* Handle AND. */
if ( pRgn_Attr_Src1->Flags != NULLREGION &&
pRgn_Attr_Src2->Flags != NULLREGION )
if ( pRgn_Attr_Src1->iComplexity != NULLREGION &&
pRgn_Attr_Src2->iComplexity != NULLREGION )
{
Complexity = ComplexityFromRects( &pRgn_Attr_Src1->Rect, &pRgn_Attr_Src2->Rect);
@ -491,13 +491,13 @@ CreateRectRgn(int x1, int y1, int x2, int y2)
if (( x1 == x2) || (y1 == y2))
{
pRgn_Attr->Flags = NULLREGION;
pRgn_Attr->iComplexity = NULLREGION;
pRgn_Attr->Rect.left = pRgn_Attr->Rect.top =
pRgn_Attr->Rect.right = pRgn_Attr->Rect.bottom = 0;
}
else
{
pRgn_Attr->Flags = SIMPLEREGION;
pRgn_Attr->iComplexity = SIMPLEREGION;
pRgn_Attr->Rect.left = x1;
pRgn_Attr->Rect.top = y1;
pRgn_Attr->Rect.right = x2;
@ -642,7 +642,7 @@ ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
!(pEntry->Flags & GDI_ENTRY_VALIDATE_VIS) )
{
if (!hrgn ||
(hrgn && pRgn_Attr && pRgn_Attr->Flags <= SIMPLEREGION) )
(hrgn && pRgn_Attr && pRgn_Attr->iComplexity <= SIMPLEREGION) )
{
if ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSEXTSELCLPRGN)) <= GDIBATCHBUFSIZE)
{
@ -655,7 +655,7 @@ ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
if ( hrgn && pRgn_Attr )
{
Ret = pRgn_Attr->Flags;
Ret = pRgn_Attr->iComplexity;
if ( pDc_Attr->VisRectRegion.Rect.left >= pRgn_Attr->Rect.right ||
pDc_Attr->VisRectRegion.Rect.top >= pRgn_Attr->Rect.bottom ||
@ -670,7 +670,7 @@ ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
}
else
{
Ret = pDc_Attr->VisRectRegion.Flags;
Ret = pDc_Attr->VisRectRegion.iComplexity;
pgO->fnMode |= 0x80000000; // Set no hrgn mode.
}
pTeb->GdiTebBatch.Offset += sizeof(GDIBSEXTSELCLPRGN);
@ -763,7 +763,7 @@ GetRgnBox(HRGN hrgn,
//if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr))
return NtGdiGetRgnBox(hrgn, prcOut);
if (Rgn_Attr->Flags == NULLREGION)
if (Rgn_Attr->iComplexity == NULLREGION)
{
prcOut->left = 0;
prcOut->top = 0;
@ -772,12 +772,12 @@ GetRgnBox(HRGN hrgn,
}
else
{
if (Rgn_Attr->Flags != SIMPLEREGION)
if (Rgn_Attr->iComplexity != SIMPLEREGION)
return NtGdiGetRgnBox(hrgn, prcOut);
/* WARNING! prcOut is never checked newbies! */
RtlCopyMemory( prcOut, &Rgn_Attr->Rect, sizeof(RECT));
}
return Rgn_Attr->Flags;
return Rgn_Attr->iComplexity;
}
/*
@ -875,10 +875,10 @@ OffsetRgn( HRGN hrgn,
// if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset);
if ( pRgn_Attr->Flags == NULLREGION)
return pRgn_Attr->Flags;
if ( pRgn_Attr->iComplexity == NULLREGION)
return pRgn_Attr->iComplexity;
if ( pRgn_Attr->Flags != SIMPLEREGION)
if ( pRgn_Attr->iComplexity != SIMPLEREGION)
return NtGdiOffsetRgn(hrgn,nXOffset,nYOffset);
nLeftRect = pRgn_Attr->Rect.left;
@ -911,7 +911,7 @@ OffsetRgn( HRGN hrgn,
pRgn_Attr->AttrFlags |= ATTR_RGN_DIRTY;
}
}
return pRgn_Attr->Flags;
return pRgn_Attr->iComplexity;
}
/*
@ -929,10 +929,10 @@ PtInRegion(IN HRGN hrgn,
//if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
return NtGdiPtInRegion(hrgn,x,y);
if ( pRgn_Attr->Flags == NULLREGION)
if ( pRgn_Attr->iComplexity == NULLREGION)
return FALSE;
if ( pRgn_Attr->Flags != SIMPLEREGION)
if ( pRgn_Attr->iComplexity != SIMPLEREGION)
return NtGdiPtInRegion(hrgn,x,y);
return INRECT( pRgn_Attr->Rect, x, y);
@ -953,10 +953,10 @@ RectInRegion(HRGN hrgn,
//if (!GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr))
return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
if ( pRgn_Attr->Flags == NULLREGION)
if ( pRgn_Attr->iComplexity == NULLREGION)
return FALSE;
if ( pRgn_Attr->Flags != SIMPLEREGION)
if ( pRgn_Attr->iComplexity != SIMPLEREGION)
return NtGdiRectInRegion(hrgn, (LPRECT) prcl);
/* swap the coordinates to make right >= left and bottom >= top */
@ -1019,7 +1019,7 @@ SetRectRgn(HRGN hrgn,
if ((nLeftRect == nRightRect) || (nTopRect == nBottomRect))
{
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY;
Rgn_Attr->Flags = NULLREGION;
Rgn_Attr->iComplexity = NULLREGION;
Rgn_Attr->Rect.left = Rgn_Attr->Rect.top =
Rgn_Attr->Rect.right = Rgn_Attr->Rect.bottom = 0;
return TRUE;
@ -1042,7 +1042,7 @@ SetRectRgn(HRGN hrgn,
}
Rgn_Attr->AttrFlags |= ATTR_RGN_DIRTY ;
Rgn_Attr->Flags = SIMPLEREGION;
Rgn_Attr->iComplexity = SIMPLEREGION;
return TRUE;
}

View file

@ -274,7 +274,7 @@ FASTCALL
IntSetDefaultRegion(PDC pdc)
{
PSURFACE pSurface;
PROSRGNDATA prgn;
PREGION prgn;
RECTL rclWnd, rclClip;
IntGdiReleaseRaoRgn(pdc);

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@
/* Internal region data.
Can't use RGNDATA structure because buffer is allocated statically */
typedef struct _ROSRGNDATA
typedef struct _REGION
{
/* Header for all gdi objects in the handle table.
Do not (re)move this. */
@ -14,7 +14,7 @@ typedef struct _ROSRGNDATA
RGNDATAHEADER rdh;
RECTL *Buffer;
} ROSRGNDATA, *PROSRGNDATA, *LPROSRGNDATA, REGION, *PREGION;
} REGION, *PREGION;
/* Functions ******************************************************************/
@ -22,41 +22,41 @@ typedef struct _ROSRGNDATA
#define REGION_FreeRgn(pRgn) GDIOBJ_FreeObj((POBJ)pRgn, GDIObjType_RGN_TYPE)
#define REGION_FreeRgnByHandle(hRgn) GDIOBJ_FreeObjByHandle((HGDIOBJ)hRgn, GDI_OBJECT_TYPE_REGION)
PROSRGNDATA FASTCALL REGION_AllocRgnWithHandle(INT n);
PROSRGNDATA FASTCALL REGION_AllocUserRgnWithHandle(INT n);
VOID FASTCALL REGION_UnionRectWithRgn(ROSRGNDATA *rgn, const RECTL *rect);
PREGION FASTCALL REGION_AllocRgnWithHandle(INT n);
PREGION FASTCALL REGION_AllocUserRgnWithHandle(INT n);
VOID FASTCALL REGION_UnionRectWithRgn(PREGION rgn, const RECTL *rect);
INT FASTCALL REGION_SubtractRectFromRgn(PREGION prgnDest, PREGION prgnSrc, const RECTL *prcl);
INT FASTCALL REGION_GetRgnBox(PROSRGNDATA Rgn, RECTL *pRect);
BOOL FASTCALL REGION_RectInRegion(PROSRGNDATA Rgn, const RECTL *rc);
INT FASTCALL REGION_GetRgnBox(PREGION Rgn, RECTL *pRect);
BOOL FASTCALL REGION_RectInRegion(PREGION Rgn, const RECTL *rc);
BOOL FASTCALL REGION_PtInRegion(PREGION, INT, INT);
INT FASTCALL REGION_CropAndOffsetRegion(PROSRGNDATA rgnDst, PROSRGNDATA rgnSrc, const RECTL *rect, const POINT *off);
VOID FASTCALL REGION_SetRectRgn(PROSRGNDATA pRgn, INT LeftRect, INT TopRect, INT RightRect, INT BottomRect);
INT FASTCALL REGION_CropAndOffsetRegion(PREGION rgnDst, PREGION rgnSrc, const RECTL *rect, const POINT *off);
VOID FASTCALL REGION_SetRectRgn(PREGION pRgn, INT LeftRect, INT TopRect, INT RightRect, INT BottomRect);
VOID NTAPI REGION_vCleanup(PVOID ObjectBody);
extern PROSRGNDATA prgnDefault;
extern PREGION prgnDefault;
extern HRGN hrgnDefault;
VOID FASTCALL REGION_Delete(PROSRGNDATA);
VOID FASTCALL REGION_Delete(PREGION);
VOID FASTCALL IntGdiReleaseRaoRgn(PDC);
VOID FASTCALL IntGdiReleaseVisRgn(PDC);
INT APIENTRY IntGdiGetRgnBox(HRGN, RECTL*);
BOOL FASTCALL IntGdiPaintRgn(PDC, PREGION );
BOOL FASTCALL IntSetPolyPolygonRgn(PPOINT, PULONG, INT, INT, PREGION);
INT FASTCALL IntGdiOffsetRgn(PROSRGNDATA,INT,INT);
INT FASTCALL IntGdiOffsetRgn(PREGION,INT,INT);
BOOL FASTCALL IntRectInRegion(HRGN,LPRECTL);
INT FASTCALL IntGdiCombineRgn(PROSRGNDATA, PROSRGNDATA, PROSRGNDATA, INT);
INT FASTCALL REGION_Complexity(PROSRGNDATA);
PROSRGNDATA FASTCALL RGNOBJAPI_Lock(HRGN,PRGN_ATTR *);
VOID FASTCALL RGNOBJAPI_Unlock(PROSRGNDATA);
PROSRGNDATA FASTCALL IntSysCreateRectpRgn(INT,INT,INT,INT);
INT FASTCALL IntGdiCombineRgn(PREGION, PREGION, PREGION, INT);
INT FASTCALL REGION_Complexity(PREGION);
PREGION FASTCALL RGNOBJAPI_Lock(HRGN,PRGN_ATTR *);
VOID FASTCALL RGNOBJAPI_Unlock(PREGION);
PREGION FASTCALL IntSysCreateRectpRgn(INT,INT,INT,INT);
BOOL FASTCALL IntGdiSetRegionOwner(HRGN,DWORD);
#define IntSysCreateRectpRgnIndirect(prc) \
IntSysCreateRectpRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)
PROSRGNDATA
PREGION
FASTCALL
IntSysCreateRectpRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect);

View file

@ -273,7 +273,7 @@ typedef struct __GDI_SHARED_HANDLE_TABLE /* Must match win32k/include/gdiobj.h *
typedef struct _RGN_ATTR
{
ULONG AttrFlags;
ULONG Flags; /* Clipping region's complexity. NULL, SIMPLE & COMPLEXREGION */
ULONG iComplexity; /* Clipping region's complexity. NULL, SIMPLE & COMPLEXREGION */
RECTL Rect;
} RGN_ATTR,*PRGN_ATTR;

View file

@ -1309,7 +1309,7 @@ NtUserGetUpdateRect(HWND hWnd, LPRECT UnsafeRect, BOOL bErase)
PWND Window;
RECTL Rect;
INT RegionType;
PROSRGNDATA RgnData;
PREGION RgnData;
NTSTATUS Status;
DECLARE_RETURN(BOOL);