diff options
-rw-r--r-- | include/cru/platform/graphics/web_canvas/WebCanvasBrush.h | 23 | ||||
-rw-r--r-- | include/cru/platform/graphics/web_canvas/WebCanvasPainter.h | 12 | ||||
-rw-r--r-- | include/cru/platform/graphics/web_canvas/WebCanvasResource.h | 9 | ||||
-rw-r--r-- | src/platform/graphics/web_canvas/Brush.cpp | 23 | ||||
-rw-r--r-- | src/platform/graphics/web_canvas/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/platform/graphics/web_canvas/Painter.cpp | 1 | ||||
-rw-r--r-- | src/platform/graphics/web_canvas/Resource.cpp | 3 | ||||
-rw-r--r-- | src/platform/web/CMakeLists.txt | 3 |
8 files changed, 72 insertions, 3 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 diff --git a/src/platform/graphics/web_canvas/Brush.cpp b/src/platform/graphics/web_canvas/Brush.cpp index e69de29b..1c192b75 100644 --- a/src/platform/graphics/web_canvas/Brush.cpp +++ b/src/platform/graphics/web_canvas/Brush.cpp @@ -0,0 +1,23 @@ +#include "cru/platform/graphics/web_canvas/WebCanvasBrush.h" +#include "cru/platform/graphics/web_canvas/WebCanvasGraphicsFactory.h" +#include "cru/platform/graphics/web_canvas/WebCanvasResource.h" + +namespace cru::platform::graphics::web_canvas { +WebCanvasBrush::WebCanvasBrush(WebCanvasGraphicsFactory* factory) + : WebCanvasResource(factory) {} + +WebCanvasBrush::~WebCanvasBrush() {} + +WebCanvasSolidColorBrush::WebCanvasSolidColorBrush( + WebCanvasGraphicsFactory* factory, const Color& color) + : WebCanvasBrush(factory), color_(color) {} + +Color WebCanvasSolidColorBrush::GetColor() { return color_; } + +void WebCanvasSolidColorBrush::SetColor(const Color& color) { color_ = color; } + +String WebCanvasSolidColorBrush::GetCssColor() const { + return color_.ToString(); +} + +} // namespace cru::platform::graphics::web_canvas diff --git a/src/platform/graphics/web_canvas/CMakeLists.txt b/src/platform/graphics/web_canvas/CMakeLists.txt index 1776c1fe..6edc2edb 100644 --- a/src/platform/graphics/web_canvas/CMakeLists.txt +++ b/src/platform/graphics/web_canvas/CMakeLists.txt @@ -1,6 +1,7 @@ add_library(CruPlatformGraphicsWebCanvas Brush.cpp Factory.cpp + Painter.cpp Resource.cpp ) diff --git a/src/platform/graphics/web_canvas/Painter.cpp b/src/platform/graphics/web_canvas/Painter.cpp new file mode 100644 index 00000000..fd196256 --- /dev/null +++ b/src/platform/graphics/web_canvas/Painter.cpp @@ -0,0 +1 @@ +#include "cru/platform/graphics/web_canvas/WebCanvasPainter.h" diff --git a/src/platform/graphics/web_canvas/Resource.cpp b/src/platform/graphics/web_canvas/Resource.cpp index bb54fd06..7ad89153 100644 --- a/src/platform/graphics/web_canvas/Resource.cpp +++ b/src/platform/graphics/web_canvas/Resource.cpp @@ -3,7 +3,8 @@ namespace cru::platform::graphics::web_canvas { const String WebCanvasResource::kPlatformId = u"WebCanvas"; -WebCanvasResource::WebCanvasResource() {} +WebCanvasResource::WebCanvasResource(WebCanvasGraphicsFactory* factory) + : factory_(factory) {} WebCanvasResource::~WebCanvasResource() {} diff --git a/src/platform/web/CMakeLists.txt b/src/platform/web/CMakeLists.txt index 76817dfa..1287f85a 100644 --- a/src/platform/web/CMakeLists.txt +++ b/src/platform/web/CMakeLists.txt @@ -2,5 +2,8 @@ add_library(CruPlatformBaseWeb Resource.cpp ) +find_library(EMBIND_LIB embind REQUIRED) + target_link_libraries(CruPlatformBaseWeb PUBLIC CruPlatformBase) +target_link_libraries(CruPlatformBaseWeb PUBLIC EMBIND_LIB) |