ReactOS 0.4.15-dev-6054-gbddd8b0
|
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 4101 of file region.c.
Definition at line 2038 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 3470 of file region.c.
Referenced by NtGdiPolyPolyDraw().
INT FASTCALL IntGdiCombineRgn | ( | PREGION | prgnDest, |
PREGION | prgnSrc1, | ||
PREGION | prgnSrc2, | ||
INT | iCombineMode | ||
) |
Definition at line 2503 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 2577 of file region.c.
Referenced by co_UserGetUpdateRect(), and IntGetNCUpdateRgn().
Definition at line 2475 of file region.c.
Referenced by co_UserFreeWindow(), ForceNCPaintErase(), IntBeginPaint(), IntGetNCUpdateRgn(), IntInvalidateWindows(), SelectWindowRgn(), and UserUpdateMonitorSize().
Definition at line 3506 of file region.c.
Referenced by NtGdiRectInRegion().
Definition at line 2423 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 3530 of file region.c.
Definition at line 3589 of file region.c.
Definition at line 3604 of file region.c.
HRGN APIENTRY NtGdiCreateRoundRectRgn | ( | INT | left, |
INT | top, | ||
INT | right, | ||
INT | bottom, | ||
INT | ellipse_width, | ||
INT | ellipse_height | ||
) |
Definition at line 3633 of file region.c.
Referenced by NtGdiCreateEllipticRgn().
Definition at line 3738 of file region.c.
Definition at line 3823 of file region.c.
Definition at line 3938 of file region.c.
Referenced by emfdrv_stroke_and_fill_path(), and GetRgnBox().
Definition at line 3980 of file region.c.
Referenced by co_UserExcludeUpdateRgn(), co_UserGetUpdateRgn(), co_WinPosSetWindowPos(), DceResetActiveDCEs(), IntCalcWindowRgn(), and OffsetRgn().
Definition at line 4015 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 4067 of file region.c.
Referenced by co_UserGetUpdateRgn(), and SetRectRgn().
Definition at line 2216 of file region.c.
Referenced by REGION_AllocUserRgnWithHandle(), and REGION_XorRegion().
Definition at line 2310 of file region.c.
Referenced by GreCreateFrameRgn(), GreCreatePolyPolygonRgn(), NtGdiCreateRectRgn(), NtGdiCreateRoundRectRgn(), NtGdiExtCreateRegion(), and NtGdiPathToRegion().
|
static |
Definition at line 501 of file region.c.
Referenced by REGION_bMergeRect(), REGION_IntersectO(), and REGION_SubtractO().
Definition at line 2276 of file region.c.
Referenced by REGION_AllocUserRgnWithHandle().
Definition at line 1841 of file region.c.
Referenced by _Success_(), CLIPPING_UpdateGCRegion(), and GdiSelectVisRgn().
Definition at line 465 of file region.c.
Referenced by REGION_bAddRect(), REGION_SubtractNonO1(), REGION_SubtractO(), and REGION_UnionNonO().
Definition at line 415 of file region.c.
Referenced by REGION_bEnsureBufferSize().
Definition at line 1851 of file region.c.
Referenced by CLIPPING_UpdateGCRegion(), and IntGdiSetMetaRgn().
|
static |
Definition at line 1953 of file region.c.
Referenced by GreCreateFrameRgn().
|
static |
Definition at line 1862 of file region.c.
Referenced by REGION_bMakeFrameRegion().
|
static |
Definition at line 1382 of file region.c.
Referenced by REGION_UnionO().
Definition at line 2724 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 2079 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 819 of file region.c.
Referenced by REGION_RegionOp().
Definition at line 564 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 2954 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 584 of file region.c.
Referenced by IntGdiCombineRgn(), REGION_bCopy(), REGION_bMakeFrameRegion(), REGION_SubtractRegion(), and REGION_UnionRegion().
|
static |
Definition at line 3186 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 675 of file region.c.
Definition at line 2465 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 3038 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2559 of file region.c.
Referenced by _Success_(), co_WinPosSetWindowPos(), IntGdiBitBltRgn(), IntGdiFillRgn(), IntGdiGetRgnBox(), NtGdiExtFloodFill(), NtGdiExtSelectClipRgn(), NtGdiGetBoundsRect(), NtGdiGetRgnBox(), NtUserEnumDisplayMonitors(), UpdateVisRgn(), and UserScrollDC().
|
static |
Definition at line 2823 of file region.c.
Referenced by REGION_CreateETandAET().
|
static |
Definition at line 2995 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
|
static |
Handle an overlapping band for REGION_Intersect.
Results: None.
Definition at line 1247 of file region.c.
Referenced by REGION_IntersectRegion().
Definition at line 1303 of file region.c.
Referenced by IntGdiCombineRgn(), REGION_bIntersectRegion(), and REGION_bMakeFrameRegion().
|
static |
Definition at line 2901 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2374 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 2599 of file region.c.
Referenced by NtGdiExtFloodFill(), NtGdiPtInRegion(), and NtGdiPtVisible().
|
static |
Definition at line 3060 of file region.c.
Referenced by REGION_SetPolyPolygonRgn().
Definition at line 2622 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 957 of file region.c.
Referenced by REGION_IntersectRegion(), REGION_SubtractRegion(), and REGION_UnionRegion().
Definition at line 627 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 3272 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 2682 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 1572 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 1612 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 1729 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 1355 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 1425 of file region.c.
Referenced by REGION_UnionRegion().
Definition at line 1475 of file region.c.
Referenced by IntGdiCombineRgn(), and REGION_XorRegion().
Definition at line 2389 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 481 of file region.c.
Referenced by REGION_bAddRect(), REGION_SubtractNonO1(), REGION_SubtractO(), and REGION_UnionNonO().
Definition at line 2331 of file region.c.
Referenced by NtGdiCombineRgn(), NtGdiEqualRgn(), and REGION_LockRgn().
Definition at line 1765 of file region.c.
Referenced by IntGdiCombineRgn().
Definition at line 130 of file region.c.
Referenced by DC_InitHack(), IntGdiReleaseVisRgn(), IntSetDefaultRegion(), and REGION_Delete().