aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/GraphicsBase.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-09-22 14:58:02 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-22 16:39:33 +0800
commit444e628d22db67742181ae14ae2ed0a9c2b6cd67 (patch)
treefa2f6249ba90d1e7e618e59c7eb3cdf00fbe9971 /include/cru/platform/GraphicsBase.h
parent8bde78e1a008ba5ba95ea54ff03717baf53d4170 (diff)
downloadcru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.tar.gz
cru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.tar.bz2
cru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.zip
Impl window rect of xcb window.
Diffstat (limited to 'include/cru/platform/GraphicsBase.h')
-rw-r--r--include/cru/platform/GraphicsBase.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/include/cru/platform/GraphicsBase.h b/include/cru/platform/GraphicsBase.h
index b0f653ef..d5936476 100644
--- a/include/cru/platform/GraphicsBase.h
+++ b/include/cru/platform/GraphicsBase.h
@@ -206,10 +206,22 @@ struct Rect final {
height + thickness.GetVerticalTotal());
}
- constexpr Rect Shrink(const Thickness& thickness) const {
- return Rect(left + thickness.left, top + thickness.top,
+ constexpr Rect Shrink(const Thickness& thickness,
+ bool normalize = false) const {
+ Rect result(left + thickness.left, top + thickness.top,
width - thickness.GetHorizontalTotal(),
height - thickness.GetVerticalTotal());
+
+ if (normalize) {
+ if (result.width < 0) {
+ result.width = 0;
+ }
+ if (result.height < 0) {
+ result.height = 0;
+ }
+ }
+
+ return result;
}
constexpr bool IsPointInside(const Point& point) const {