diff options
author | crupest <crupest@outlook.com> | 2023-10-12 17:10:18 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2023-10-12 17:10:18 +0800 |
commit | 9a077caa6d3f7eb8255ae68916dccac9b50a4333 (patch) | |
tree | 486f5f01d5de8ff1b236029e1b955df1d70728a8 /include/cru/platform/graphics/web_canvas | |
parent | 6fc14693d01f2be98b45d70405b16883607d4666 (diff) | |
download | cru-9a077caa6d3f7eb8255ae68916dccac9b50a4333.tar.gz cru-9a077caa6d3f7eb8255ae68916dccac9b50a4333.tar.bz2 cru-9a077caa6d3f7eb8255ae68916dccac9b50a4333.zip |
...
Diffstat (limited to 'include/cru/platform/graphics/web_canvas')
-rw-r--r-- | include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h | 27 | ||||
-rw-r--r-- | include/cru/platform/graphics/web_canvas/WebCanvasPainter.h | 8 |
2 files changed, 35 insertions, 0 deletions
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h b/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h new file mode 100644 index 00000000..af4cee91 --- /dev/null +++ b/include/cru/platform/graphics/web_canvas/WebCanvasGeometry.h @@ -0,0 +1,27 @@ +#pragma once + +#include "../Geometry.h" +#include "WebCanvasResource.h" + +#include <emscripten/val.h> + +namespace cru::platform::graphics::web_canvas { +/** + * \remarks See IGeometryBuilder for platform limitation. + */ +class WebCanvasGeometryBuilder : public WebCanvasResource, + public virtual IGeometryBuilder { + public: + WebCanvasGeometryBuilder(WebCanvasGraphicsFactory* factory); + + ~WebCanvasGeometryBuilder() override; + + Point GetCurrentPosition() override; + + void MoveTo(const Point& point) override; + + private: + Point current_postion_; + emscripten::val path2d_; +}; +} // namespace cru::platform::graphics::web_canvas diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h b/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h index 0832831c..bb092f2f 100644 --- a/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h +++ b/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h @@ -35,6 +35,14 @@ class WebCanvasPainter : public WebCanvasResource, public virtual IPainter { void DrawLine(const Point& start, const Point& end, IBrush* brush, float width) override; + void StrokeRectangle(const Rect& rectangle, IBrush* brush, + float width) override; + + void FillRectangle(const Rect& rectangle, IBrush* brush) override; + void StrokeEllipse(const Rect& outline_rect, IBrush* brush, + float width) override; + void FillEllipse(const Rect& outline_rect, IBrush* brush) override; + emscripten::val GetCanvas2DContext() const { return context_; } WebCanvasRef GetCanvas(); |