2 * PROJECT: ReactOS win32 kernel mode subsystem
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: subsystems/win32/win32k/objects/rect.c
5 * PURPOSE: Rect functions
6 * PROGRAMMER: Timo Kreuzer
14 /* FUNCTIONS *****************************************************************/
18 RECTL_bUnionRect(RECTL
*prclDst
, const RECTL
*prcl1
, const RECTL
*prcl2
)
20 if (RECTL_bIsEmptyRect(prcl1
))
22 if (RECTL_bIsEmptyRect(prcl2
))
24 RECTL_vSetEmptyRect(prclDst
);
34 if (RECTL_bIsEmptyRect(prcl2
))
40 prclDst
->left
= min(prcl1
->left
, prcl2
->left
);
41 prclDst
->top
= min(prcl1
->top
, prcl2
->top
);
42 prclDst
->right
= max(prcl1
->right
, prcl2
->right
);
43 prclDst
->bottom
= max(prcl1
->bottom
, prcl2
->bottom
);
53 RECTL_bIntersectRect(RECTL
* prclDst
, const RECTL
* prcl1
, const RECTL
* prcl2
)
55 prclDst
->left
= max(prcl1
->left
, prcl2
->left
);
56 prclDst
->right
= min(prcl1
->right
, prcl2
->right
);
58 if (prclDst
->left
< prclDst
->right
)
60 prclDst
->top
= max(prcl1
->top
, prcl2
->top
);
61 prclDst
->bottom
= min(prcl1
->bottom
, prcl2
->bottom
);
63 if (prclDst
->top
< prclDst
->bottom
)
69 RECTL_vSetEmptyRect(prclDst
);
76 RECTL_vMakeWellOrdered(RECTL
*prcl
)
79 if (prcl
->left
> prcl
->right
)
82 prcl
->left
= prcl
->right
;
85 if (prcl
->top
> prcl
->bottom
)
88 prcl
->top
= prcl
->bottom
;
95 RECTL_vInflateRect(RECTL
*rect
, INT dx
, INT dy
)