From 8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 15 May 2022 14:08:06 +0800 Subject: ... --- src/platform/graphics/quartz/Brush.cpp | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/platform/graphics/quartz/Brush.cpp (limited to 'src/platform/graphics/quartz/Brush.cpp') diff --git a/src/platform/graphics/quartz/Brush.cpp b/src/platform/graphics/quartz/Brush.cpp new file mode 100644 index 00000000..2aa31bd8 --- /dev/null +++ b/src/platform/graphics/quartz/Brush.cpp @@ -0,0 +1,36 @@ +#include "cru/platform/graphics/quartz/Brush.h" +#include "cru/common/String.h" +#include "cru/common/Format.h" + +namespace cru::platform::graphics::quartz { +QuartzSolidColorBrush::QuartzSolidColorBrush(IGraphicsFactory* graphics_factory, + const Color& color) + : QuartzBrush(graphics_factory), color_(color) { + cg_color_ = + CGColorCreateGenericRGB(color.GetFloatRed(), color.GetFloatGreen(), + color.GetFloatBlue(), color.GetFloatAlpha()); + Ensures(cg_color_); +} + +QuartzSolidColorBrush::~QuartzSolidColorBrush() { CGColorRelease(cg_color_); } + +void QuartzSolidColorBrush::SetColor(const Color& color) { + color_ = color; + CGColorRelease(cg_color_); + cg_color_ = + CGColorCreateGenericRGB(color.GetFloatRed(), color.GetFloatGreen(), + color.GetFloatBlue(), color.GetFloatAlpha()); + Ensures(cg_color_); +} + +void QuartzSolidColorBrush::Select(CGContextRef context) { + Expects(context); + Expects(cg_color_); + CGContextSetStrokeColorWithColor(context, cg_color_); + CGContextSetFillColorWithColor(context, cg_color_); +} + +String QuartzSolidColorBrush::GetDebugString() { + return Format(u"QuartzSolidColorBrush(Color: {})", color_); +} +} // namespace cru::platform::graphics::quartz -- cgit v1.2.3