diff options
Diffstat (limited to 'include/cru/platform/win')
-rw-r--r-- | include/cru/platform/win/d2d_util.hpp | 17 | ||||
-rw-r--r-- | include/cru/platform/win/win_painter.hpp | 2 |
2 files changed, 19 insertions, 0 deletions
diff --git a/include/cru/platform/win/d2d_util.hpp b/include/cru/platform/win/d2d_util.hpp index 9ff6556a..51aea4f8 100644 --- a/include/cru/platform/win/d2d_util.hpp +++ b/include/cru/platform/win/d2d_util.hpp @@ -1,9 +1,21 @@ #pragma once #include "win_pre_config.hpp" +#include "../matrix.hpp" #include "cru/common/ui_base.hpp" namespace cru::platform::win::util { +inline D2D1_MATRIX_3X2_F Convert(const Matrix& matrix) { + D2D1_MATRIX_3X2_F m; + m._11 = matrix.m11; + m._12 = matrix.m12; + m._21 = matrix.m21; + m._22 = matrix.m22; + m._31 = matrix.m31; + m._32 = matrix.m32; + return m; +} + inline D2D1_COLOR_F Convert(const ui::Color& color) { return D2D1::ColorF(color.red / 255.0f, color.green / 255.0f, color.blue / 255.0f, color.alpha / 255.0f); @@ -28,6 +40,11 @@ inline D2D1_ELLIPSE Convert(const ui::Ellipse& ellipse) { ellipse.radius_y); } +inline Matrix Convert(const D2D1_MATRIX_3X2_F& matrix) { + return Matrix{matrix._11, matrix._12, matrix._21, + matrix._22, matrix._31, matrix._32}; +} + inline ui::Color Convert(const D2D1_COLOR_F& color) { auto floor = [](float n) { return static_cast<std::uint8_t>(n + 0.5f); }; return ui::Color{floor(color.r * 255.0f), floor(color.g * 255.0f), diff --git a/include/cru/platform/win/win_painter.hpp b/include/cru/platform/win/win_painter.hpp index 7b71ccbd..1e449d85 100644 --- a/include/cru/platform/win/win_painter.hpp +++ b/include/cru/platform/win/win_painter.hpp @@ -15,6 +15,8 @@ class WinPainter : public Object, public virtual Painter { WinPainter& operator=(WinPainter&& other) = delete; ~WinPainter() override; + Matrix GetTransform() override; + void SetTransform(const Matrix& matrix) override; void StrokeGeometry(Geometry* geometry, Brush* brush, float width) override; void FillGeometry(Geometry* geometry, Brush* brush) override; void EndDraw() override; |