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