MyScript Interactive Ink SDK  3.0.1
ICanvas.h
1 // Copyright @ MyScript. All rights reserved.
2 
3 #pragma once
4 
5 #include <iink/Engine.h>
6 #include <iink/graphics/Color.h>
7 #include <iink/graphics/IPath.h>
8 #include <iink/graphics/LineCap.h>
9 #include <iink/graphics/LineJoin.h>
10 #include <iink/graphics/FillRule.h>
11 #include <iink/graphics/Transform.h>
12 
13 #include <memory>
14 
15 namespace myscript {
16 namespace iink {
17 namespace graphics {
18 
22 class ICanvas
23 {
24 public:
25 
26  virtual ~ICanvas() = default;
27 
39  virtual void startDraw(int x, int y, int width, int height) noexcept {}
40 
46  virtual void endDraw() noexcept {}
47 
53  virtual Transform getTransform() noexcept = 0;
54 
60  virtual void setTransform(const Transform& transform) noexcept = 0;
61 
67  virtual void setStrokeColor(Color color) noexcept = 0;
68 
74  virtual void setStrokeWidth(float width) noexcept = 0;
75 
81  virtual void setStrokeLineCap(LineCap lineCap) noexcept = 0;
82 
88  virtual void setStrokeLineJoin(LineJoin lineJoin) noexcept = 0;
89 
95  virtual void setStrokeMiterLimit(float limit) noexcept = 0;
96 
103  virtual void setStrokeDashArray(const float* array, size_t size) noexcept = 0;
104 
110  virtual void setStrokeDashOffset(float offset) noexcept = 0;
111 
117  virtual void setFillColor(Color color) noexcept = 0;
118 
124  virtual void setFillRule(FillRule rule) noexcept = 0;
125 
134  virtual void setDropShadow(float xOffset, float yOffset, float radius, Color color) noexcept {};
135 
146  virtual void setFontProperties(const String& family, float lineHeight, float size, const String& style, const String& variant, int weight) noexcept = 0;
147 
159  virtual void startGroup(const String& id, float x, float y, float width, float height, bool clipContent) noexcept = 0;
160 
166  virtual void endGroup(const String& id) noexcept = 0;
167 
173  virtual void startItem(const String& id) noexcept = 0;
174 
180  virtual void endItem(const String& id) noexcept = 0;
181 
193  virtual std::shared_ptr<graphics::IPath> createPath() noexcept = 0;
194 
200  virtual void drawPath(std::shared_ptr<IPath> path) noexcept = 0;
201 
210  virtual void drawRectangle(float x, float y, float width, float height) noexcept = 0;
211 
220  virtual void drawLine(float x1, float y1, float x2, float y2) noexcept = 0;
221 
237  virtual void drawObject(const String& url, const String& mimeType, float x, float y, float width, float height) noexcept = 0;
238 
253  virtual void drawText(const String& label, float x, float y, float xmin, float ymin, float xmax, float ymax) noexcept = 0;
254 
271  virtual void blendOffscreen(uint32_t id,
272  float src_x, float src_y, float src_width, float src_height,
273  float dest_x, float dest_y, float dest_width, float dest_height,
274  Color color = 0xFFFFFFFF) noexcept {}
275 };
276 
277 }
278 }
279 }
Definition: String.h:30
Definition: ICanvas.h:23
virtual void startDraw(int x, int y, int width, int height) noexcept
Definition: ICanvas.h:39
virtual void drawObject(const String &url, const String &mimeType, float x, float y, float width, float height) noexcept=0
virtual void startItem(const String &id) noexcept=0
virtual void drawRectangle(float x, float y, float width, float height) noexcept=0
virtual void setDropShadow(float xOffset, float yOffset, float radius, Color color) noexcept
Definition: ICanvas.h:134
virtual void setFillColor(Color color) noexcept=0
virtual void setStrokeDashOffset(float offset) noexcept=0
virtual void setFontProperties(const String &family, float lineHeight, float size, const String &style, const String &variant, int weight) noexcept=0
virtual std::shared_ptr< graphics::IPath > createPath() noexcept=0
virtual void setStrokeLineCap(LineCap lineCap) noexcept=0
virtual void setTransform(const Transform &transform) noexcept=0
virtual void endItem(const String &id) noexcept=0
virtual void setStrokeMiterLimit(float limit) noexcept=0
virtual void drawText(const String &label, float x, float y, float xmin, float ymin, float xmax, float ymax) noexcept=0
virtual void startGroup(const String &id, float x, float y, float width, float height, bool clipContent) noexcept=0
virtual void setStrokeDashArray(const float *array, size_t size) noexcept=0
virtual void setStrokeLineJoin(LineJoin lineJoin) noexcept=0
virtual void setStrokeWidth(float width) noexcept=0
virtual void blendOffscreen(uint32_t id, float src_x, float src_y, float src_width, float src_height, float dest_x, float dest_y, float dest_width, float dest_height, Color color=0xFFFFFFFF) noexcept
Definition: ICanvas.h:271
virtual void drawPath(std::shared_ptr< IPath > path) noexcept=0
virtual Transform getTransform() noexcept=0
virtual void endGroup(const String &id) noexcept=0
virtual void setStrokeColor(Color color) noexcept=0
virtual void setFillRule(FillRule rule) noexcept=0
virtual void endDraw() noexcept
Definition: ICanvas.h:46
virtual void drawLine(float x1, float y1, float x2, float y2) noexcept=0
Definition: IPath.h:29
FillRule
Definition: FillRule.h:13
LineJoin
Definition: LineJoin.h:13
LineCap
Definition: LineCap.h:13
Definition: Configuration.h:11
Definition: Color.h:19
Definition: Transform.h:30