diff options
Diffstat (limited to 'include/cru/platform/graphics')
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 |