diff options
author | crupest <crupest@outlook.com> | 2022-05-27 20:53:10 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-05-27 20:53:10 +0800 |
commit | 95b5a61149b4edee4caec03a9c8f87ae4a1845af (patch) | |
tree | c3cb212022ebad85b767869fd04e4ca77501206d /include/cru/platform/graphics | |
parent | b84cd6a0b6fc3e7f9493d50ce32cfb33095e7954 (diff) | |
download | cru-95b5a61149b4edee4caec03a9c8f87ae4a1845af.tar.gz cru-95b5a61149b4edee4caec03a9c8f87ae4a1845af.tar.bz2 cru-95b5a61149b4edee4caec03a9c8f87ae4a1845af.zip |
...
Diffstat (limited to 'include/cru/platform/graphics')
-rw-r--r-- | include/cru/platform/graphics/cairo/CairoGeometry.h | 25 |
1 files changed, 24 insertions, 1 deletions
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<IGeometry> Build() override; + + private: + cairo_surface_t* surface_; + cairo_t* cairo_; +}; } // namespace cru::platform::graphics::cairo |