Add RECTL_vMakeWellOrdered
[reactos.git] / reactos / subsystems / win32 / win32k / include / rect.h
1 #ifndef _WIN32K_RECT_H
2 #define _WIN32K_RECT_H
3
4 VOID
5 FORCEINLINE
6 RECTL_vSetRect(RECTL *prcl, LONG left, LONG top, LONG right, LONG bottom)
7 {
8 prcl->left = left;
9 prcl->top = top;
10 prcl->right = right;
11 prcl->bottom = bottom;
12 }
13
14 VOID
15 FORCEINLINE
16 RECTL_vSetEmptyRect(RECTL *prcl)
17 {
18 prcl->left = 0;
19 prcl->top = 0;
20 prcl->right = 0;
21 prcl->bottom = 0;
22 }
23
24 VOID
25 FORCEINLINE
26 RECTL_vOffsetRect(RECTL *prcl, INT cx, INT cy)
27 {
28 prcl->left += cx;
29 prcl->right += cx;
30 prcl->top += cy;
31 prcl->bottom += cy;
32 }
33
34 BOOL
35 FORCEINLINE
36 RECTL_bIsEmptyRect(const RECTL *prcl)
37 {
38 return (prcl->left >= prcl->right || prcl->top >= prcl->bottom);
39 }
40
41 BOOL
42 FORCEINLINE
43 RECTL_bPointInRect(const RECTL *prcl, INT x, INT y)
44 {
45 return (x >= prcl->left && x <= prcl->right &&
46 y >= prcl->top && y <= prcl->bottom);
47 }
48
49 BOOL
50 FASTCALL
51 RECTL_bUnionRect(RECTL *prclDst, const RECTL *prcl1, const RECTL *prcl2);
52
53 BOOL
54 FASTCALL
55 RECTL_bIntersectRect(RECTL *prclDst, const RECTL *prcl1, const RECTL *prcl2);
56
57 VOID
58 FASTCALL
59 RECTL_vMakeWellOrdered(RECTL *prcl);
60
61
62 #endif /* _WIN32K_RECT_H */