aboutsummaryrefslogtreecommitdiff
path: root/include/cru
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-08 00:08:47 +0800
committercrupest <crupest@outlook.com>2023-10-08 00:08:47 +0800
commitb8777965040e0f5e80b4395a912ddca7999fd80c (patch)
treec2290290912a8e851b8a6c9f51ea7f094d809d84 /include/cru
parent6c6dc053488ded83581943844c2b4c2a606218f3 (diff)
downloadcru-b8777965040e0f5e80b4395a912ddca7999fd80c.tar.gz
cru-b8777965040e0f5e80b4395a912ddca7999fd80c.tar.bz2
cru-b8777965040e0f5e80b4395a912ddca7999fd80c.zip
...
Diffstat (limited to 'include/cru')
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasBrush.h23
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasPainter.h12
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasResource.h9
3 files changed, 42 insertions, 2 deletions
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h b/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
index f70c5ecc..2f278fa6 100644
--- a/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
@@ -4,6 +4,27 @@
namespace cru::platform::graphics::web_canvas {
class WebCanvasBrush : public WebCanvasResource, public virtual IBrush {
+ public:
+ explicit WebCanvasBrush(WebCanvasGraphicsFactory* factory);
+ ~WebCanvasBrush() override;
};
-}
+
+class WebCanvasSolidColorBrush : public WebCanvasBrush,
+ public virtual ISolidColorBrush {
+ public:
+ WebCanvasSolidColorBrush(WebCanvasGraphicsFactory* factory,
+ const Color& color);
+
+ ~WebCanvasSolidColorBrush() override;
+
+ public:
+ Color GetColor() override;
+ void SetColor(const Color& color) override;
+
+ String GetCssColor() const;
+
+ private:
+ Color color_;
+};
+} // 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
new file mode 100644
index 00000000..44ec1df6
--- /dev/null
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h
@@ -0,0 +1,12 @@
+#pragma once
+#include "../Painter.h"
+#include "WebCanvasResource.h"
+
+#include <emscripten/val.h>
+
+namespace cru::platform::graphics::web_canvas {
+class WebCanvasPainter: public WebCanvasResource, public virtual IPainter {
+ public:
+ WebCanvasPainter(WebCanvasGraphicsFactory* factory);
+};
+}
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasResource.h b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h
index de3e38ac..1e9bf75d 100644
--- a/include/cru/platform/graphics/web_canvas/WebCanvasResource.h
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasResource.h
@@ -4,11 +4,13 @@
#include "cru/platform/Resource.h"
namespace cru::platform::graphics::web_canvas {
+class WebCanvasGraphicsFactory;
+
class WebCanvasResource : public Object, public virtual IPlatformResource {
public:
static const String kPlatformId;
- WebCanvasResource();
+ explicit WebCanvasResource(WebCanvasGraphicsFactory* factory);
CRU_DELETE_COPY(WebCanvasResource)
CRU_DELETE_MOVE(WebCanvasResource)
@@ -17,5 +19,10 @@ class WebCanvasResource : public Object, public virtual IPlatformResource {
public:
String GetPlatformId() const override;
+
+ WebCanvasGraphicsFactory* GetFactory() const { return factory_; }
+
+ private:
+ WebCanvasGraphicsFactory* factory_;
};
} // namespace cru::platform::graphics::web_canvas