3 #include <win32k/region.h>
4 #include <win32k/gdiobj.h>
7 #include <win32k/debug1.h>
9 /* FUNCTIONS *****************************************************************/
12 W32kGetBoxRgn(HRGN hRgn
, PRECT Rect
)
18 W32kCropRgn(HRGN hDest
, HRGN hSrc
, const RECT
* Rect
, const POINT
* Point
)
24 W32kUnionRectWithRgn(HRGN hDest
, const RECT
* Rect
)
29 W32kCombineRgn(HRGN hDest
,
38 W32kCreateEllipticRgn(INT LeftRect
,
47 W32kCreateEllipticRgnIndirect(CONST PRECT rc
)
53 W32kCreatePolygonRgn(CONST PPOINT pt
,
61 W32kCreatePolyPolygonRgn(CONST PPOINT pt
,
62 CONST PINT PolyCounts
,
70 W32kCreateRectRgn(INT LeftRect
,
78 DPRINT("W32kCreateRectRgn(LeftRect %d, TopRect %d, RightRect %d, "
79 "BottomRect %d)\n", LeftRect, TopRect, RightRect, BottomRect);
81 Region = (RGNDATA*)GDIOBJ_AllocObject(sizeof(RGNDATA) + sizeof(RECT) - 1, 0);
82 Region->rdh.dwSize = sizeof(RGNDATA) + sizeof(RECT) - 1;
83 Region->rdh.iType = RDH_RECTANGLES;
84 Region->rdh.nCount = 0;
85 Rect = (PRECT)Region->Buffer;
86 Rect->left = LeftRect;
87 Rect->right = RightRect;
89 Rect->bottom = BottomRect;
90 Region->rdh.rcBound = *Rect;
92 return(GDIOBJ_PtrToHandle((PGDIOBJ)Region, 0));
98 W32kCreateRectRgnIndirect(CONST PRECT rc
)
100 return(W32kCreateRectRgn(rc
->left
, rc
->top
, rc
->right
, rc
->bottom
));
104 W32kCreateRoundRectRgn(INT LeftRect
,
115 W32kEqualRgn(HRGN hSrcRgn1
,
122 W32kExtCreateRegion(CONST PXFORM Xform
,
124 CONST PRGNDATA RgnData
)
138 W32kFrameRgn(HDC hDC
,
148 W32kGetRgnBox(HRGN hRgn
,
155 W32kInvertRgn(HDC hDC
,
162 W32kOffsetRgn(HRGN hRgn
,
170 W32kPaintRgn(HDC hDC
,
177 W32kPtInRegion(HRGN hRgn
,
185 W32kRectInRegion(HRGN hRgn
,
192 W32kSetRectRgn(HRGN hRgn
,