From 2025756fab9103a3baa8999445e61628cfb9b392 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 12 Oct 2023 21:44:26 +0800 Subject: ... --- .../platform/graphics/web_canvas/WebCanvasGeometry.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h') diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h b/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h index dfb5bbe7..5aca42d1 100644 --- a/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h +++ b/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h @@ -10,14 +10,20 @@ namespace cru::platform::graphics::web_canvas { class WebCanvasGeometry : public WebCanvasResource, public virtual IGeometry { public: - WebCanvasGeometry(WebCanvasGraphicsFactory* factory, emscripten::val path2d); + WebCanvasGeometry(WebCanvasGraphicsFactory* factory, emscripten::val canvas, + emscripten::val path2d); ~WebCanvasGeometry() override; bool StrokeContains(float width, const Point& point) override; - virtual bool FillContains(const Point& point) = 0; - virtual Rect GetBounds() = 0; - virtual std::unique_ptr Transform(const Matrix& matrix) = 0; + + bool FillContains(const Point& point) override; + + Rect GetBounds() override; + + std::unique_ptr Transform(const Matrix& matrix) override; + private: + emscripten::val canvas_; emscripten::val path2d_; }; @@ -27,10 +33,14 @@ class WebCanvasGeometry : public WebCanvasResource, public virtual IGeometry { class WebCanvasGeometryBuilder : public WebCanvasResource, public SvgGeometryBuilderMixin { public: - WebCanvasGeometryBuilder(WebCanvasGraphicsFactory* factory); + WebCanvasGeometryBuilder(WebCanvasGraphicsFactory* factory, + emscripten::val canvas); ~WebCanvasGeometryBuilder() override; std::unique_ptr Build() override; + + private: + emscripten::val canvas_; }; } // namespace cru::platform::graphics::web_canvas -- cgit v1.2.3