aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/cru/win/graphics/direct/Geometry.h11
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