3 /* Type definitions ***********************************************************/
5 /* Internal region data.
6 Can't use RGNDATA structure because buffer is allocated statically */
9 /* Header for all gdi objects in the handle table.
10 Do not (re)move this. */
11 BASEOBJECT BaseObject
;
12 _Notnull_ PRGN_ATTR prgnattr
;
19 /* Globals ********************************************************************/
21 extern PREGION prgnDefault
;
22 extern HRGN hrgnDefault
;
24 /* Functions ******************************************************************/
26 PREGION FASTCALL
REGION_AllocRgnWithHandle(INT n
);
27 PREGION FASTCALL
REGION_AllocUserRgnWithHandle(INT n
);
28 VOID FASTCALL
REGION_UnionRectWithRgn(PREGION rgn
, const RECTL
*rect
);
29 INT FASTCALL
REGION_SubtractRectFromRgn(PREGION prgnDest
, PREGION prgnSrc
, const RECTL
*prcl
);
30 INT FASTCALL
REGION_GetRgnBox(PREGION Rgn
, RECTL
*pRect
);
31 BOOL FASTCALL
REGION_RectInRegion(PREGION Rgn
, const RECTL
*rc
);
32 BOOL FASTCALL
REGION_PtInRegion(PREGION
, INT
, INT
);
33 INT FASTCALL
REGION_CropRegion(PREGION rgnDst
, PREGION rgnSrc
, const RECTL
*rect
);
34 VOID FASTCALL
REGION_SetRectRgn(PREGION pRgn
, INT LeftRect
, INT TopRect
, INT RightRect
, INT BottomRect
);
35 VOID NTAPI
REGION_vCleanup(PVOID ObjectBody
);
36 VOID FASTCALL
REGION_Delete(PREGION
);
37 INT APIENTRY
IntGdiGetRgnBox(HRGN
, RECTL
*);
57 REGION_SetPolyPolygonRgn(
59 _In_
const POINT
*ppt
,
60 _In_
const ULONG
*pcPoints
,
66 GreCreatePolyPolygonRgn(
67 _In_
const POINT
*ppt
,
68 _In_
const ULONG
*pcPoints
,
79 BOOL FASTCALL
IntRectInRegion(HRGN
,LPRECTL
);
81 INT FASTCALL
IntGdiCombineRgn(PREGION
, PREGION
, PREGION
, INT
);
82 INT FASTCALL
REGION_Complexity(PREGION
);
83 PREGION FASTCALL
IntSysCreateRectpRgn(INT
,INT
,INT
,INT
);
84 BOOL FASTCALL
IntGdiSetRegionOwner(HRGN
,DWORD
);
93 #define IntSysCreateRectpRgnIndirect(prc) \
94 IntSysCreateRectpRgn((prc)->left, (prc)->top, (prc)->right, (prc)->bottom)
98 IntSysCreateRectpRgn(INT LeftRect
, INT TopRect
, INT RightRect
, INT BottomRect
);