ReactOS 0.4.16-dev-1106-g00b5dc8
|
Go to the source code of this file.
Classes | |
struct | BRESINFO |
struct | _EDGE_TABLE_ENTRY |
struct | _SCANLINE_LIST |
struct | EDGE_TABLE |
struct | _SCANLINE_LISTBLOCK |
struct | _POINTBLOCK |
Macros | |
#define | NDEBUG |
#define | COPY_RECTS(dest, src, nRects) |
#define | EMPTY_REGION(pReg) |
#define | REGION_NOT_EMPTY(pReg) pReg->rdh.nCount |
#define | INRECT(r, x, y) |
#define | EXTENTCHECK(r1, r2) |
#define | BRESINITPGON(dy, x1, x2, xStart, d, m, m1, incr1, incr2) |
#define | BRESINCRPGON(d, minval, m, m1, incr1, incr2) |
#define | BRESINITPGONSTRUCT(dmaj, min1, min2, bres) |
#define | BRESINCRPGONSTRUCT(bres) BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2) |
#define | CLOCKWISE 1 |
#define | COUNTERCLOCKWISE -1 |
#define | SLLSPERBLOCK 25 |
#define | EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET) |
#define | EVALUATEEDGEEVENODD(pAET, pPrevAET, y) |
#define | LARGE_COORDINATE INT_MAX |
#define | SMALL_COORDINATE INT_MIN |
#define | NUMPTSTOBUFFER 200 |
#define | RGN_DEFAULT_RECTS 2 |
Typedefs | |
typedef struct _EDGE_TABLE_ENTRY | EDGE_TABLE_ENTRY |
typedef struct _SCANLINE_LIST | SCANLINE_LIST |
typedef struct _SCANLINE_LISTBLOCK | SCANLINE_LISTBLOCK |
typedef BOOL(FASTCALL * | overlapProcp) (PREGION, PRECT, PRECT, PRECT, PRECT, INT, INT) |
typedef BOOL(FASTCALL * | nonOverlapProcp) (PREGION, PRECT, PRECT, INT, INT) |
typedef struct _POINTBLOCK | POINTBLOCK |
Variables | |
PREGION | prgnDefault = NULL |
HRGN | hrgnDefault = NULL |
#define BRESINCRPGONSTRUCT | ( | bres | ) | BRESINCRPGON(bres.d, bres.minor_axis, bres.m, bres.m1, bres.incr1, bres.incr2) |
#define BRESINITPGONSTRUCT | ( | dmaj, | |
min1, | |||
min2, | |||
bres | |||
) |
#define EMPTY_REGION | ( | pReg | ) |
typedef struct _EDGE_TABLE_ENTRY EDGE_TABLE_ENTRY |
typedef struct _POINTBLOCK POINTBLOCK |
typedef struct _SCANLINE_LIST SCANLINE_LIST |
_Success_ | ( | return! | = 0 | ) |
MSDN: GetRegionData, Return Values:
"If the function succeeds and dwCount specifies an adequate number of bytes, the return value is always dwCount. If dwCount is too small or the function fails, the return value is 0. If lpRgnData is NULL, the return value is the required number of bytes. If the function fails, the return value is zero."
Definition at line 4082 of file region.c.
Definition at line 2025 of file region.c.
Referenced by NtGdiFrameRgn().
HRGN NTAPI GreCreatePolyPolygonRgn | ( | _In_ const POINT * | ppt, |
_In_ const ULONG * | pcPoints, | ||
_In_ ULONG | cPolygons, | ||
_In_ INT | iMode | ||
) |
Definition at line 3452 of file region.c.
Referenced by NtGdiPolyPolyDraw().
INT FASTCALL IntGdiCombineRgn | ( | PREGION | prgnDest, |
PREGION | prgnSrc1, | ||
PREGION | prgnSrc2, | ||
INT | iCombineMode | ||
) |
Definition at line 2487 of file region.c.
Referenced by _Success_(), co_IntGetUpdateRgn(), co_UserRedrawWindow(), co_VIS_WindowLayoutChanged(), co_WinPosSetWindowPos(), DC_vCopyState(), DceUpdateVisRgn(), ForceNCPaintErase(), IntGdiBitBltRgn(), IntGdiFillRgn(), IntInvalidateWindows(), IntScrollWindowEx(), IntValidateParents(), NtGdiCombineRgn(), NtGdiGetRandomRgn(), REGION_LPTODP(), UserScrollDC(), and VIS_ComputeVisibleRegion().
Definition at line 2561 of file region.c.
Referenced by co_UserGetUpdateRect(), and IntGetNCUpdateRgn().
Definition at line 2459 of file region.c.
Referenced by co_UserFreeWindow(), ForceNCPaintErase(), IntBeginPaint(), IntGetNCUpdateRgn(), IntInvalidateWindows(), SelectWindowRgn(), and UserUpdateMonitorSize().
Definition at line 3488 of file region.c.
Referenced by NtGdiRectInRegion().
Definition at line 2407 of file region.c.
Referenced by _Success_(), CLIPPING_UpdateGCRegion(), co_UserRedrawWindow(), co_VIS_WindowLayoutChanged(), co_WinPosSetWindowPos(), DC_InitHack(), DC_vCopyState(), DC_vInitDc(), DC_vUpdateDC(), DceGetVisRgn(), DceUpdateVisRgn(), IntGdiBitBltRgn(), IntGdiFillRgn(), IntGdiSetMetaRgn(), IntInvalidateWindows(), IntScrollWindowEx(), IntSetDefaultRegion(), NtGdiSelectClipPath(), and PATH_FillPathEx().
Definition at line 3511 of file region.c.
Definition at line 3570 of file region.c.
Definition at line 3585 of file region.c.
HRGN APIENTRY NtGdiCreateRoundRectRgn | ( | INT | left, |
INT | top, | ||
INT | right, | ||
INT | bottom, | ||
INT | ellipse_width, | ||
INT | ellipse_height | ||
) |
Definition at line 3614 of file region.c.
Referenced by NtGdiCreateEllipticRgn().
Definition at line 3719 of file region.c.
Definition at line 3804 of file region.c.
Definition at line 3919 of file region.c.
Referenced by emfdrv_stroke_and_fill_path(), and GetRgnBox().
Definition at line 3961 of file region.c.
Referenced by co_UserExcludeUpdateRgn(), co_UserGetUpdateRgn(), co_WinPosSetWindowPos(), DceResetActiveDCEs(), IntCalcWindowRgn(), and OffsetRgn().
Definition at line 3996 of file region.c.
Referenced by IntPtInWindow(), and PtInRegion().
BOOL APIENTRY NtGdiSetRectRgn | ( | _In_ HRGN | hrgn, |
_In_ INT | xLeft, | ||
_In_ INT | yTop, | ||
_In_ INT | xRight, | ||
_In_ INT | yBottom | ||
) |
Definition at line 4048 of file region.c.
Referenced by co_UserGetUpdateRgn(), and SetRectRgn().
Definition at line 2201 of file region.c.
Referenced by REGION_AllocUserRgnWithHandle(), and REGION_XorRegion().
Definition at line 2294 of file region.c.
Referenced by GreCreateFrameRgn(), GreCreatePolyPolygonRgn(), NtGdiCreateRectRgn(), NtGdiCreateRoundRectRgn(), NtGdiExtCreateRegion(), and NtGdiPathToRegion().
|
static |
Definition at line 492 of file region.c.
Referenced by REGION_bMergeRect(), REGION_IntersectO(), and REGION_SubtractO().
Definition at line 2261 of file region.c.
Referenced by REGION_AllocUserRgnWithHandle().
Definition at line 1828 of file region.c.
Referenced by _Success_(), CLIPPING_UpdateGCRegion(), and GdiSelectVisRgn().
Definition at line 456 of file region.c.
Referenced by REGION_bAddRect(), REGION_SubtractNonO1(), REGION_SubtractO(), and REGION_UnionNonO().
Definition at line 406 of file region.c.
Referenced by REGION_bEnsureBufferSize().
Definition at line 1838 of file region.c.
Referenced by CLIPPING_UpdateGCRegion(), and IntGdiSetMetaRgn().
|
static |
Definition at line 1940 of file region.c.
Referenced by GreCreateFrameRgn().
|
static |
Definition at line 1849 of file region.c.
Referenced by REGION_bMakeFrameRegion().
|
static |
Definition at line 1371 of file region.c.
Referenced by REGION_UnionO().
Definition at line 2707 of file region.c.
Referenced by CLIPPING_UpdateGCRegion(), co_IntGetUpdateRgn(), co_UserRedrawWindow(), co_VIS_WindowLayoutChanged(), co_WinPosSetWindowPos(), DceResetActiveDCEs(), GdiSelectVisRgn(), IntGdiBitBltRgn(), IntGdiFillRgn(), IntInvalidateWindows(), IntScrollWindowEx(), NtGdiGetRandomRgn(), NtGdiOffsetClipRgn(), NtGdiOffsetRgn(), REGION_bMakeFrameRegion(), REGION_bXformRgn(), UserScrollDC(), and VIS_ComputeVisibleRegion().
Definition at line 2066 of file region.c.
Referenced by REGION_LPTODP().
Attempt to merge the rects in the current band with those in the previous one. Used only by REGION_RegionOp.
Results: The new index for the previous band.
Definition at line 808 of file region.c.
Referenced by REGION_RegionOp().
Definition at line 554 of file region.c.
Referenced by _Success_(), co_WinPosSetWindowPos(), DxEngGetDCState(), IntGdiCombineRgn(), IntGdiSetMetaRgn(), NtGdiOffsetClipRgn(), NtGdiOffsetRgn(), REGION_bMakeFrameRegion(), REGION_CropRegion(), REGION_GetRgnBox(), REGION_SubtractRectFromRgn(), and REGION_UnlockRgn().
|
static |
Definition at line 2937 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 574 of file region.c.
Referenced by IntGdiCombineRgn(), REGION_bCopy(), REGION_bMakeFrameRegion(), REGION_SubtractRegion(), and REGION_UnionRegion().
|
static |
Definition at line 3168 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 665 of file region.c.
Definition at line 2449 of file region.c.
Referenced by _Success_(), CLIPPING_UpdateGCRegion(), co_UserRedrawWindow(), co_VIS_WindowLayoutChanged(), co_WinPosSetWindowPos(), DC_vCleanup(), DC_vCopyState(), DC_vUpdateDC(), DceUpdateVisRgn(), GreCreateFrameRgn(), GreCreatePolyPolygonRgn(), IntEngWndUpdateClipObj(), IntGdiBitBltRgn(), IntGdiCleanDC(), IntGdiFillRgn(), IntGdiReleaseVisRgn(), IntGdiSetMetaRgn(), IntInvalidateWindows(), IntScrollWindowEx(), IntValidateParents(), NtGdiExcludeClipRect(), NtGdiIntersectClipRect(), NtGdiPathToRegion(), NtGdiSelectClipPath(), PATH_FillPathEx(), UserRedrawDesktop(), UserScrollDC(), and VIS_ComputeVisibleRegion().
|
static |
Definition at line 3021 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2543 of file region.c.
Referenced by _Success_(), co_WinPosSetWindowPos(), IntGdiBitBltRgn(), IntGdiFillRgn(), IntGdiGetRgnBox(), NtGdiExtFloodFill(), NtGdiExtSelectClipRgn(), NtGdiGetBoundsRect(), NtGdiGetRgnBox(), NtUserEnumDisplayMonitors(), UpdateVisRgn(), and UserScrollDC().
|
static |
Definition at line 2806 of file region.c.
Referenced by REGION_CreateETandAET().
|
static |
Definition at line 2978 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
|
static |
Handle an overlapping band for REGION_Intersect.
Results: None.
Definition at line 1236 of file region.c.
Referenced by REGION_IntersectRegion().
Definition at line 1292 of file region.c.
Referenced by IntGdiCombineRgn(), REGION_bIntersectRegion(), and REGION_bMakeFrameRegion().
|
static |
Definition at line 2884 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2358 of file region.c.
Referenced by co_IntGetUpdateRgn(), co_WinPosSetWindowPos(), DceUpdateVisRgn(), ForceNCPaintErase(), GreCreateFrameRgn(), IntDefWindowProc(), IntGdiGetRgnBox(), IntGdiSetRegionOwner(), IntInvalidateWindows(), IntRectInRegion(), IntScrollWindowEx(), IntValidateParents(), NtGdiExtSelectClipRgn(), NtGdiFillRgn(), NtGdiGetRandomRgn(), NtGdiGetRgnBox(), NtGdiInvertRgn(), NtGdiOffsetRgn(), NtGdiPtInRegion(), NtGdiSetRectRgn(), NtUserCallHwndParamLock(), NtUserRedrawWindow(), PaintSuspendedWindow(), UserScrollDC(), and VIS_ComputeVisibleRegion().
Definition at line 2582 of file region.c.
Referenced by NtGdiExtFloodFill(), NtGdiPtInRegion(), and NtGdiPtVisible().
|
static |
Definition at line 3042 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2605 of file region.c.
Referenced by IntRectInRegion(), and NtGdiRectVisible().
|
static |
Apply an operation to two regions. Called by REGION_Union, REGION_Inverse, REGION_Subtract, REGION_Intersect...
Results: None.
Side Effects: The new region is overwritten.
Definition at line 946 of file region.c.
Referenced by REGION_IntersectRegion(), REGION_SubtractRegion(), and REGION_UnionRegion().
Definition at line 617 of file region.c.
Referenced by REGION_IntersectRegion(), and REGION_SubtractRegion().
BOOL FASTCALL REGION_SetPolyPolygonRgn | ( | _Inout_ PREGION | prgn, |
_In_ const POINT * | ppt, | ||
_In_ const ULONG * | pcPoints, | ||
_In_ ULONG | cPolygons, | ||
_In_ INT | iMode | ||
) |
Definition at line 3254 of file region.c.
Referenced by GreCreatePolyPolygonRgn(), PATH_PathToRegion(), and REGION_bXformRgn().
VOID FASTCALL REGION_SetRectRgn | ( | PREGION | rgn, |
INT | LeftRect, | ||
INT | TopRect, | ||
INT | RightRect, | ||
INT | BottomRect | ||
) |
Definition at line 2665 of file region.c.
Referenced by co_IntGetUpdateRgn(), IntSetDefaultRegion(), IntSysCreateRectpRgn(), NtGdiCreateRectRgn(), NtGdiSelectBitmap(), NtGdiSetRectRgn(), REGION_SetPolyPolygonRgn(), REGION_vSyncRegion(), and UserScrollDC().
|
static |
Deal with non-overlapping band for subtraction. Any parts from region 2 we discard. Anything from region 1 we add to the region.
Results: None.
Definition at line 1561 of file region.c.
Referenced by REGION_SubtractRegion().
|
static |
Overlapping band subtraction. x1 is the left-most point not yet checked.
Results: None.
Definition at line 1600 of file region.c.
Referenced by REGION_SubtractRegion().
Subtract regS from regM and leave the result in regD. S stands for subtrahend, M for minuend and D for difference.
Results: TRUE.
Definition at line 1717 of file region.c.
Referenced by IntGdiCombineRgn(), REGION_bMakeFrameRegion(), REGION_SubtractRectFromRgn(), and REGION_XorRegion().
|
static |
Handle a non-overlapping band for the union operation. Just Adds the rectangles into the region. Doesn't have to check for subsumption or anything.
Results: None.
Definition at line 1344 of file region.c.
Referenced by REGION_UnionRegion().
|
static |
Handle an overlapping band for the union operation. Picks the left-most rectangle each time and merges it into the region.
Results: None.
Definition at line 1414 of file region.c.
Referenced by REGION_UnionRegion().
Definition at line 1464 of file region.c.
Referenced by IntGdiCombineRgn(), and REGION_XorRegion().
Definition at line 2373 of file region.c.
Referenced by co_IntGetUpdateRgn(), co_WinPosSetWindowPos(), DceUpdateVisRgn(), ForceNCPaintErase(), GreCreateFrameRgn(), GreCreatePolyPolygonRgn(), IntDefWindowProc(), IntGdiGetRgnBox(), IntGdiSetRegionOwner(), IntInvalidateWindows(), IntRectInRegion(), IntScrollWindowEx(), IntValidateParents(), NtGdiCombineRgn(), NtGdiCreateRectRgn(), NtGdiCreateRoundRectRgn(), NtGdiEqualRgn(), NtGdiExtCreateRegion(), NtGdiExtSelectClipRgn(), NtGdiFillRgn(), NtGdiGetRandomRgn(), NtGdiGetRgnBox(), NtGdiInvertRgn(), NtGdiOffsetRgn(), NtGdiPathToRegion(), NtGdiPtInRegion(), NtGdiSetRectRgn(), NtUserCallHwndParamLock(), NtUserRedrawWindow(), PaintSuspendedWindow(), REGION_XorRegion(), UserScrollDC(), and VIS_ComputeVisibleRegion().
FORCEINLINE VOID REGION_vAddRect | ( | _Inout_ PREGION | prgn, |
_In_ LONG | left, | ||
_In_ LONG | top, | ||
_In_ LONG | right, | ||
_In_ LONG | bottom | ||
) |
Definition at line 472 of file region.c.
Referenced by REGION_bAddRect(), REGION_SubtractNonO1(), REGION_SubtractO(), and REGION_UnionNonO().
Definition at line 2315 of file region.c.
Referenced by NtGdiCombineRgn(), NtGdiEqualRgn(), and REGION_LockRgn().
Definition at line 1753 of file region.c.
Referenced by IntGdiCombineRgn().
Definition at line 129 of file region.c.
Referenced by DC_InitHack(), IntGdiReleaseVisRgn(), IntSetDefaultRegion(), and REGION_Delete().