From 95b5a61149b4edee4caec03a9c8f87ae4a1845af Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 27 May 2022 20:53:10 +0800 Subject: ... --- .../cru/platform/graphics/cairo/CairoGeometry.h | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'include/cru/platform/graphics/cairo/CairoGeometry.h') diff --git a/include/cru/platform/graphics/cairo/CairoGeometry.h b/include/cru/platform/graphics/cairo/CairoGeometry.h index f510d687..b1c31a18 100644 --- a/include/cru/platform/graphics/cairo/CairoGeometry.h +++ b/include/cru/platform/graphics/cairo/CairoGeometry.h @@ -29,5 +29,28 @@ class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoGeometry : public CairoResource, class CRU_PLATFORM_GRAPHICS_CAIRO_API CairoGeometryBuilder : public CairoResource, - public virtual IGeometryBuilder {}; + public virtual IGeometryBuilder { + public: + explicit CairoGeometryBuilder(CairoGraphicsFactory* factory); + ~CairoGeometryBuilder() override; + + public: + 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 CloseFigure(bool close) override; + + std::unique_ptr Build() override; + + private: + cairo_surface_t* surface_; + cairo_t* cairo_; +}; } // namespace cru::platform::graphics::cairo -- cgit v1.2.3