diff options
author | crupest <crupest@outlook.com> | 2022-02-27 20:41:21 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-27 20:41:21 +0800 |
commit | 9c3a6eb7316bbc07689163a316f39acd38e4fa6f (patch) | |
tree | baf8b2ef920a5d07d0b93f663493be85a72dfce1 /include | |
parent | c0817f5494e6a08c0db9e22a7195daedd1a6b4c3 (diff) | |
download | cru-9c3a6eb7316bbc07689163a316f39acd38e4fa6f.tar.gz cru-9c3a6eb7316bbc07689163a316f39acd38e4fa6f.tar.bz2 cru-9c3a6eb7316bbc07689163a316f39acd38e4fa6f.zip |
...
Diffstat (limited to 'include')
-rw-r--r-- | include/cru/win/graphics/direct/Geometry.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/cru/win/graphics/direct/Geometry.h b/include/cru/win/graphics/direct/Geometry.h index 8e40c383..802b5ec0 100644 --- a/include/cru/win/graphics/direct/Geometry.h +++ b/include/cru/win/graphics/direct/Geometry.h @@ -17,10 +17,17 @@ class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometryBuilder ~D2DGeometryBuilder() override = default; public: - void BeginFigure(const Point& point) override; + Point GetCurrentPosition() override; + + void MoveTo(const Point& point) override; void LineTo(const Point& point) override; + void CubicBezierTo(const Point& start_control_point, + const Point& end_control_point, + const Point& end_point) override; void QuadraticBezierTo(const Point& control_point, const Point& end_point) override; + void ArcTo(const Point& radius, float angle, bool is_large_arc, + bool is_clockwise, const Point& end_point) override; void CloseFigure(bool close) override; std::unique_ptr<IGeometry> Build() override; @@ -32,6 +39,8 @@ class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometryBuilder private: Microsoft::WRL::ComPtr<ID2D1PathGeometry> geometry_; Microsoft::WRL::ComPtr<ID2D1GeometrySink> geometry_sink_; + Point start_point_; + Point current_position_; }; class CRU_WIN_GRAPHICS_DIRECT_API D2DGeometry |