diff options
Diffstat (limited to 'src/ui/d2d_util.hpp')
-rw-r--r-- | src/ui/d2d_util.hpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ui/d2d_util.hpp b/src/ui/d2d_util.hpp index d4fff620..5f2e10b2 100644 --- a/src/ui/d2d_util.hpp +++ b/src/ui/d2d_util.hpp @@ -19,6 +19,16 @@ namespace cru::ui return D2D1::RectF(rect.left, rect.top, rect.left + rect.width, rect.top + rect.height); } + inline D2D1_ROUNDED_RECT Convert(const RoundedRect& rounded_rect) + { + return D2D1::RoundedRect(Convert(rounded_rect.rect), rounded_rect.radius_x, rounded_rect.radius_y); + } + + inline D2D1_ELLIPSE Convert(const Ellipse& ellipse) + { + return D2D1::Ellipse(Convert(ellipse.center), ellipse.radius_x, ellipse.radius_y); + } + inline Point Convert(const D2D1_POINT_2F& point) { return Point(point.x, point.y); @@ -29,6 +39,16 @@ namespace cru::ui return Rect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top); } + inline RoundedRect Convert(const D2D1_ROUNDED_RECT& rounded_rect) + { + return RoundedRect(Convert(rounded_rect.rect), rounded_rect.radiusX, rounded_rect.radiusY); + } + + inline Ellipse Convert(const D2D1_ELLIPSE& ellipse) + { + return Ellipse(Convert(ellipse.point), ellipse.radiusX, ellipse.radiusY); + } + inline bool operator==(const D2D1_POINT_2F& left, const D2D1_POINT_2F& right) { return left.x == right.x && left.y == right.y; @@ -61,4 +81,14 @@ namespace cru::ui { return !(left == right); } + + inline bool operator == (const D2D1_ELLIPSE& left, const D2D1_ELLIPSE& right) + { + return left.point == right.point && left.radiusX == right.radiusX && left.radiusY == right.radiusY; + } + + inline bool operator!=(const D2D1_ELLIPSE& left, const D2D1_ELLIPSE& right) + { + return !(left == right); + } } |