aboutsummaryrefslogtreecommitdiff
path: root/include/cru
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru')
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasBrush.h6
-rw-r--r--include/cru/platform/graphics/web_canvas/WebCanvasPainter.h11
2 files changed, 17 insertions, 0 deletions
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h b/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
index 2f278fa6..72dd0723 100644
--- a/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasBrush.h
@@ -2,12 +2,16 @@
#include "../Brush.h"
#include "WebCanvasResource.h"
+#include <emscripten/val.h>
+
namespace cru::platform::graphics::web_canvas {
class WebCanvasBrush : public WebCanvasResource, public virtual IBrush {
public:
explicit WebCanvasBrush(WebCanvasGraphicsFactory* factory);
~WebCanvasBrush() override;
+
+ virtual emscripten::val GetStyle() = 0;
};
class WebCanvasSolidColorBrush : public WebCanvasBrush,
@@ -24,6 +28,8 @@ class WebCanvasSolidColorBrush : public WebCanvasBrush,
String GetCssColor() const;
+ emscripten::val GetStyle() override;
+
private:
Color color_;
};
diff --git a/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h b/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h
index 1f7d21b6..0832831c 100644
--- a/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h
+++ b/include/cru/platform/graphics/web_canvas/WebCanvasPainter.h
@@ -1,5 +1,7 @@
#pragma once
+#include "../Brush.h"
#include "../Painter.h"
+#include "WebCanvasBrush.h"
#include "WebCanvasRef.h"
#include "WebCanvasResource.h"
@@ -30,9 +32,18 @@ class WebCanvasPainter : public WebCanvasResource, public virtual IPainter {
void Clear(const Color& color) override;
+ void DrawLine(const Point& start, const Point& end, IBrush* brush,
+ float width) override;
+
emscripten::val GetCanvas2DContext() const { return context_; }
WebCanvasRef GetCanvas();
+ void SetStrokeStyle(IBrush* brush, float width = 0.0f);
+ void SetFillStyle(IBrush* brush);
+
+ private:
+ WebCanvasBrush* ConvertBrush(IBrush* brush) const;
+
private:
Matrix current_transform_;
emscripten::val context_;