MyScript Interactive Ink SDK 4.3.0
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/ExtraBrushStyle.h>
8#include <iink/graphics/FillRule.h>
9#include <iink/graphics/InkPoint.h>
10#include <iink/graphics/IPath.h>
11#include <iink/graphics/LineCap.h>
12#include <iink/graphics/LineJoin.h>
13#include <iink/graphics/Transform.h>
14
15#include <memory>
16#include <vector>
17
18namespace myscript {
19namespace iink {
20namespace graphics {
21
26{
27public:
28
29 virtual ~ICanvas() = default;
30
42 virtual void startDraw(int x, int y, int width, int height) noexcept {}
43
49 virtual void endDraw() noexcept {}
50
56 virtual Transform getTransform() noexcept = 0;
57
63 virtual void setTransform(const Transform& transform) noexcept = 0;
64
70 virtual void setStrokeColor(Color color) noexcept = 0;
71
77 virtual void setStrokeWidth(float width) noexcept = 0;
78
84 virtual void setStrokeLineCap(LineCap lineCap) noexcept = 0;
85
91 virtual void setStrokeLineJoin(LineJoin lineJoin) noexcept = 0;
92
98 virtual void setStrokeMiterLimit(float limit) noexcept = 0;
99
106 virtual void setStrokeDashArray(const float* array, size_t size) noexcept = 0;
107
113 virtual void setStrokeDashOffset(float offset) noexcept = 0;
114
120 virtual void setFillColor(Color color) noexcept = 0;
121
127 virtual void setFillRule(FillRule rule) noexcept = 0;
128
137 virtual void setDropShadow(float xOffset, float yOffset, float radius, Color color) noexcept {};
138
149 virtual void setFontProperties(const String& family, float lineHeight, float size, const String& style, const String& variant, int weight) noexcept = 0;
150
162 virtual void startGroup(const String& id, float x, float y, float width, float height, bool clipContent) noexcept = 0;
163
169 virtual void endGroup(const String& id) noexcept = 0;
170
176 virtual void startItem(const String& id) noexcept = 0;
177
183 virtual void endItem(const String& id) noexcept = 0;
184
196 virtual std::shared_ptr<IPath> createPath() noexcept = 0;
197
203 virtual void drawPath(std::shared_ptr<IPath> path) noexcept = 0;
204
212 virtual bool isExtraBrushSupported(const String& brushName) noexcept
213 {
214 return false;
215 }
216
227 virtual void drawStrokeWithExtraBrush(const std::vector<InkPoints>& vInkPoints, unsigned int temporaryPoints, const ExtraBrushStyle& style, bool fullStroke, int64_t id) noexcept {}
228
237 virtual void drawRectangle(float x, float y, float width, float height) noexcept = 0;
238
247 virtual void drawLine(float x1, float y1, float x2, float y2) noexcept = 0;
248
264 virtual void drawObject(const String& url, const String& mimeType, float x, float y, float width, float height) noexcept = 0;
265
280 virtual void drawText(const String& label, float x, float y, float xmin, float ymin, float xmax, float ymax) noexcept = 0;
281
298 virtual void blendOffscreen(uint32_t id,
299 float src_x, float src_y, float src_width, float src_height,
300 float dest_x, float dest_y, float dest_width, float dest_height,
301 Color color = 0xFFFFFFFF) noexcept {}
302};
303
304}
305}
306}
Definition: String.h:17
Definition: ICanvas.h:26
virtual void startDraw(int x, int y, int width, int height) noexcept
Definition: ICanvas.h:42
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 bool isExtraBrushSupported(const String &brushName) noexcept
Definition: ICanvas.h:212
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:137
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 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:298
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 drawStrokeWithExtraBrush(const std::vector< InkPoints > &vInkPoints, unsigned int temporaryPoints, const ExtraBrushStyle &style, bool fullStroke, int64_t id) noexcept
Definition: ICanvas.h:227
virtual void endDraw() noexcept
Definition: ICanvas.h:49
virtual std::shared_ptr< IPath > createPath() noexcept=0
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:10
Definition: Color.h:19
Definition: ExtraBrushStyle.h:16
Definition: Transform.h:31