@shopify/react-native-skia 1.11.5 → 1.11.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/android/CMakeLists.txt +0 -1
  2. package/cpp/api/JsiSkParagraph.h +1 -3
  3. package/cpp/api/recorder/Convertor.h +19 -17
  4. package/cpp/api/recorder/Drawings.h +7 -10
  5. package/cpp/jsi/ViewProperty.h +1 -3
  6. package/lib/commonjs/animation/functions/interpolateColors.d.ts +1 -1
  7. package/lib/commonjs/dom/nodes/datatypes/Gradient.d.ts +2 -2
  8. package/lib/commonjs/dom/types/NodeType.js +8 -0
  9. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  10. package/lib/commonjs/external/reanimated/buffers.d.ts +1 -1
  11. package/lib/commonjs/renderer/Canvas.d.ts +3 -2
  12. package/lib/commonjs/renderer/Canvas.js +4 -2
  13. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  14. package/lib/commonjs/renderer/__tests__/setup.d.ts +1 -1
  15. package/lib/commonjs/skia/types/Image/ColorType.js +20 -2
  16. package/lib/commonjs/skia/types/Image/ColorType.js.map +1 -1
  17. package/lib/commonjs/skia/types/Image/ColorType.web.js +18 -2
  18. package/lib/commonjs/skia/types/Image/ColorType.web.js.map +1 -1
  19. package/lib/commonjs/skia/types/ImageFilter/ImageFilter.js +14 -0
  20. package/lib/commonjs/skia/types/ImageFilter/ImageFilter.js.map +1 -1
  21. package/lib/commonjs/skia/types/MaskFilter.js +5 -2
  22. package/lib/commonjs/skia/types/MaskFilter.js.map +1 -1
  23. package/lib/commonjs/skia/types/Paint/BlendMode.js +31 -2
  24. package/lib/commonjs/skia/types/Paint/BlendMode.js.map +1 -1
  25. package/lib/commonjs/skia/types/Paragraph/ParagraphBuilder.js +14 -0
  26. package/lib/commonjs/skia/types/Paragraph/ParagraphBuilder.js.map +1 -1
  27. package/lib/commonjs/skia/types/Path/Path.js +4 -0
  28. package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
  29. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  30. package/lib/commonjs/skia/web/JsiSkImage.d.ts +2 -2
  31. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -1
  32. package/lib/commonjs/skia/web/JsiSkPicture.d.ts +1 -1
  33. package/lib/commonjs/skia/web/JsiSkPoint.d.ts +1 -1
  34. package/lib/commonjs/skia/web/JsiSkRRect.d.ts +1 -1
  35. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +1 -1
  36. package/lib/commonjs/skia/web/JsiSkRect.d.ts +1 -1
  37. package/lib/commonjs/sksg/Container.d.ts +1 -4
  38. package/lib/commonjs/sksg/Container.js +8 -9
  39. package/lib/commonjs/sksg/Container.js.map +1 -1
  40. package/lib/commonjs/sksg/Recorder/Core.js +2 -0
  41. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  42. package/lib/commonjs/specs/NativeSkiaModule.web.d.ts +6 -0
  43. package/lib/commonjs/specs/NativeSkiaModule.web.js +33 -0
  44. package/lib/commonjs/specs/NativeSkiaModule.web.js.map +1 -1
  45. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  46. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js +32 -0
  47. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.js.map +1 -0
  48. package/lib/commonjs/views/types.d.ts +1 -0
  49. package/lib/commonjs/views/types.js.map +1 -1
  50. package/lib/commonjs/web/LoadSkiaWeb.js +1 -2
  51. package/lib/commonjs/web/LoadSkiaWeb.js.map +1 -1
  52. package/lib/module/animation/functions/interpolateColors.d.ts +1 -1
  53. package/lib/module/dom/nodes/datatypes/Gradient.d.ts +2 -2
  54. package/lib/module/dom/types/NodeType.js +8 -0
  55. package/lib/module/dom/types/NodeType.js.map +1 -1
  56. package/lib/module/external/reanimated/buffers.d.ts +1 -1
  57. package/lib/module/renderer/Canvas.d.ts +3 -2
  58. package/lib/module/renderer/Canvas.js +1 -1
  59. package/lib/module/renderer/Canvas.js.map +1 -1
  60. package/lib/module/renderer/__tests__/setup.d.ts +1 -1
  61. package/lib/module/skia/types/Image/ColorType.js +20 -2
  62. package/lib/module/skia/types/Image/ColorType.js.map +1 -1
  63. package/lib/module/skia/types/Image/ColorType.web.js +18 -2
  64. package/lib/module/skia/types/Image/ColorType.web.js.map +1 -1
  65. package/lib/module/skia/types/ImageFilter/ImageFilter.js +14 -0
  66. package/lib/module/skia/types/ImageFilter/ImageFilter.js.map +1 -1
  67. package/lib/module/skia/types/MaskFilter.js +5 -2
  68. package/lib/module/skia/types/MaskFilter.js.map +1 -1
  69. package/lib/module/skia/types/Paint/BlendMode.js +31 -2
  70. package/lib/module/skia/types/Paint/BlendMode.js.map +1 -1
  71. package/lib/module/skia/types/Paragraph/ParagraphBuilder.js +14 -0
  72. package/lib/module/skia/types/Paragraph/ParagraphBuilder.js.map +1 -1
  73. package/lib/module/skia/types/Path/Path.js +4 -0
  74. package/lib/module/skia/types/Path/Path.js.map +1 -1
  75. package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  76. package/lib/module/skia/web/JsiSkImage.d.ts +2 -2
  77. package/lib/module/skia/web/JsiSkPaint.d.ts +1 -1
  78. package/lib/module/skia/web/JsiSkPicture.d.ts +1 -1
  79. package/lib/module/skia/web/JsiSkPoint.d.ts +1 -1
  80. package/lib/module/skia/web/JsiSkRRect.d.ts +1 -1
  81. package/lib/module/skia/web/JsiSkRSXform.d.ts +1 -1
  82. package/lib/module/skia/web/JsiSkRect.d.ts +1 -1
  83. package/lib/module/sksg/Container.d.ts +1 -4
  84. package/lib/module/sksg/Container.js +8 -9
  85. package/lib/module/sksg/Container.js.map +1 -1
  86. package/lib/module/sksg/Recorder/Core.js +2 -0
  87. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  88. package/lib/module/specs/NativeSkiaModule.web.d.ts +6 -0
  89. package/lib/module/specs/NativeSkiaModule.web.js +30 -1
  90. package/lib/module/specs/NativeSkiaModule.web.js.map +1 -1
  91. package/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  92. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js +26 -0
  93. package/lib/module/specs/SkiaPictureViewNativeComponent.web.js.map +1 -0
  94. package/lib/module/views/types.d.ts +1 -0
  95. package/lib/module/views/types.js.map +1 -1
  96. package/lib/typescript/lib/commonjs/animation/functions/interpolateColors.d.ts +1 -1
  97. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +2 -3
  98. package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
  99. package/lib/typescript/lib/commonjs/skia/web/JsiSkColor.d.ts +1 -1
  100. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -1
  101. package/lib/typescript/lib/commonjs/specs/NativeSkiaModule.web.d.ts +1 -0
  102. package/lib/typescript/lib/commonjs/specs/SkiaPictureViewNativeComponent.web.d.ts +10 -0
  103. package/lib/typescript/lib/module/animation/functions/interpolateColors.d.ts +1 -1
  104. package/lib/typescript/lib/module/mock/index.d.ts +2 -2
  105. package/lib/typescript/lib/module/renderer/Canvas.d.ts +3 -2
  106. package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
  107. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -1
  108. package/lib/typescript/lib/module/skia/web/JsiSkColor.d.ts +1 -1
  109. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -1
  110. package/lib/typescript/lib/module/specs/NativeSkiaModule.web.d.ts +1 -0
  111. package/lib/typescript/lib/module/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  112. package/lib/typescript/src/animation/functions/interpolateColors.d.ts +1 -1
  113. package/lib/typescript/src/dom/nodes/datatypes/Gradient.d.ts +2 -2
  114. package/lib/typescript/src/external/reanimated/buffers.d.ts +1 -1
  115. package/lib/typescript/src/renderer/Canvas.d.ts +3 -2
  116. package/lib/typescript/src/renderer/__tests__/setup.d.ts +1 -1
  117. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -1
  118. package/lib/typescript/src/skia/web/JsiSkImage.d.ts +2 -2
  119. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -1
  120. package/lib/typescript/src/skia/web/JsiSkPicture.d.ts +1 -1
  121. package/lib/typescript/src/skia/web/JsiSkPoint.d.ts +1 -1
  122. package/lib/typescript/src/skia/web/JsiSkRRect.d.ts +1 -1
  123. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +1 -1
  124. package/lib/typescript/src/skia/web/JsiSkRect.d.ts +1 -1
  125. package/lib/typescript/src/sksg/Container.d.ts +1 -4
  126. package/lib/typescript/src/specs/NativeSkiaModule.web.d.ts +6 -0
  127. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.web.d.ts +9 -0
  128. package/lib/typescript/src/views/types.d.ts +1 -0
  129. package/package.json +1 -1
  130. package/src/renderer/Canvas.tsx +1 -1
  131. package/src/sksg/Container.ts +7 -12
  132. package/src/specs/NativeSkiaModule.web.ts +38 -0
  133. package/src/specs/SkiaPictureViewNativeComponent.web.ts +39 -0
  134. package/src/views/types.ts +1 -0
  135. package/cpp/jsi/JsiValue.cpp +0 -345
  136. package/cpp/jsi/JsiValue.h +0 -222
  137. package/lib/commonjs/renderer/Canvas.web.d.ts +0 -11
  138. package/lib/commonjs/renderer/Canvas.web.js +0 -112
  139. package/lib/commonjs/renderer/Canvas.web.js.map +0 -1
  140. package/lib/module/renderer/Canvas.web.d.ts +0 -11
  141. package/lib/module/renderer/Canvas.web.js +0 -105
  142. package/lib/module/renderer/Canvas.web.js.map +0 -1
  143. package/lib/typescript/lib/commonjs/renderer/Canvas.web.d.ts +0 -2
  144. package/lib/typescript/lib/module/renderer/Canvas.web.d.ts +0 -2
  145. package/lib/typescript/src/renderer/Canvas.web.d.ts +0 -11
  146. package/src/renderer/Canvas.web.tsx +0 -134
@@ -1,222 +0,0 @@
1
- #pragma once
2
-
3
- #include <jsi/jsi.h>
4
-
5
- #include <memory>
6
- #include <string>
7
- #include <unordered_map>
8
- #include <utility>
9
- #include <vector>
10
-
11
- namespace RNJsi {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- enum struct PropType {
16
- Undefined = 0,
17
- Null = 1, // Keep undefined / null constant so that we can do checks faster
18
- Bool = 2,
19
- Number = 3,
20
- String = 4,
21
- Object = 5,
22
- HostObject = 6,
23
- HostFunction = 7,
24
- Array = 8
25
- };
26
-
27
- using PropId = const char *;
28
-
29
- class JsiPropId {
30
- public:
31
- static const char *get(const std::string &name) { return _get(name); }
32
-
33
- static const char *get(const std::string &&name) {
34
- return _get(std::move(name));
35
- }
36
-
37
- private:
38
- static const char *_get(const std::string &name) {
39
- if (_impls().count(name) == 0) {
40
- // Alloc string
41
- char *impl = new char[name.size() + 1];
42
- strncpy(impl, name.c_str(), name.size() + 1);
43
- _impls().emplace(name, impl);
44
- }
45
- return _impls().at(name);
46
- }
47
-
48
- static std::unordered_map<std::string, PropId> &_impls() {
49
- static std::unordered_map<std::string, PropId> impls;
50
- return impls;
51
- }
52
- };
53
-
54
- /**
55
- This is a class that deep copies values from JS to C++.
56
- */
57
- class JsiValue {
58
- public:
59
- /**
60
- Default constructor for an empty JsiValue
61
- */
62
- JsiValue();
63
-
64
- /**
65
- Constructs an instance of the JsiValue object with a current value
66
- */
67
- JsiValue(jsi::Runtime &runtime, const jsi::Value &value);
68
-
69
- /**
70
- Updates the current value from the Javascript value. This function will
71
- perform a deep copy of the javascript value.
72
- */
73
- void setCurrent(jsi::Runtime &runtime, const jsi::Value &value);
74
-
75
- /**
76
- Returns the type of value contained in this JsiValue
77
- */
78
- PropType getType() const { return _type; }
79
-
80
- /**
81
- Returns true if the value is undefined or null.
82
- */
83
- bool isUndefinedOrNull() const { return _type <= PropType::Null; }
84
-
85
- /**
86
- Returns true if the value is undefined.
87
- */
88
- bool isUndefined() const { return _type == PropType::Undefined; }
89
-
90
- /**
91
- Returns true if the value is null.
92
- */
93
- bool isNull() const { return _type == PropType::Null; }
94
-
95
- /**
96
- Returns the bool value. Requires that the underlying type is bool
97
- */
98
- bool getAsBool() const;
99
-
100
- /**
101
- Returns the numeric value. Requires that the underlying type is number
102
- */
103
- double getAsNumber() const;
104
-
105
- /**
106
- Returns the string value. Requires that the underlying type is string
107
- */
108
- const std::string &getAsString() const;
109
-
110
- /**
111
- Returns the array value. Requires that the underlying type is array
112
- */
113
- const std::vector<JsiValue> &getAsArray() const;
114
-
115
- /**
116
- Returns an inner value by name. Requires that the underlying type is Object
117
- */
118
- const JsiValue &getValue(PropId name) const;
119
-
120
- /**
121
- Returns true if the underlying type is Object and the property name exists.
122
- */
123
- bool hasValue(PropId name) const;
124
-
125
- /**
126
- Returns the names of the properties stored in this value
127
- */
128
- std::vector<PropId> getKeys() const;
129
-
130
- /**
131
- Returns the host object value. Requires that the underlying type is Host
132
- Object
133
- */
134
- std::shared_ptr<jsi::HostObject> getAsHostObject() const;
135
-
136
- /**
137
- Returns a dynamic cast of the host object value. Requires that the underlying
138
- type is Host Object
139
- */
140
- template <typename T> std::shared_ptr<T> getAs() const {
141
- if (_type != PropType::HostObject) {
142
- throw std::runtime_error("Expected type host object, got " +
143
- getTypeAsString(_type));
144
- }
145
- return std::dynamic_pointer_cast<T>(_hostObject);
146
- }
147
-
148
- /**
149
- Returns the host function. Requires that the type is HostFunction
150
- */
151
- jsi::HostFunctionType getAsHostFunction() const;
152
-
153
- /**
154
- Returns a callable HostFunction representing the undderlying js function.
155
- Requires that the type is Function
156
- */
157
- const jsi::HostFunctionType getAsFunction() const;
158
-
159
- /**
160
- Returns a string representation of the value
161
- */
162
- std::string asString() const;
163
-
164
- /**
165
- Converts the underlying value back to a JS value
166
- */
167
- jsi::Value getAsJsiValue(jsi::Runtime &runtime) const;
168
-
169
- /**
170
- Returns a string representing the type.
171
- */
172
- static std::string getTypeAsString(PropType type);
173
-
174
- /**
175
- Implements the equals operator
176
- */
177
- bool operator==(const JsiValue &other) const;
178
-
179
- /**
180
- Implements the inequals operator
181
- */
182
- bool operator!=(const JsiValue &other) const;
183
-
184
- protected:
185
- const std::unordered_map<PropId, JsiValue> &getProps() const {
186
- return _props;
187
- }
188
-
189
- bool boolValue() const { return _boolValue; }
190
- double numberValue() const { return _numberValue; }
191
- std::string stringValue() const { return _stringValue; }
192
- std::shared_ptr<jsi::HostObject> hostObject() const { return _hostObject; }
193
- jsi::HostFunctionType hostFunction() const { return _hostFunction; }
194
- std::vector<JsiValue> array() const { return _array; }
195
- std::unordered_map<PropId, JsiValue> props() const { return _props; }
196
- const std::vector<PropId> &keysCache() const { return _keysCache; }
197
-
198
- private:
199
- void setObject(jsi::Runtime &runtime, const jsi::Value &value);
200
- jsi::Object getObject(jsi::Runtime &runtime) const;
201
-
202
- void setFunction(jsi::Runtime &runtime, const jsi::Value &value);
203
- jsi::Object getHostFunction(jsi::Runtime &runtime) const;
204
-
205
- void setArray(jsi::Runtime &runtime, const jsi::Object &obj);
206
- jsi::Array getArray(jsi::Runtime &runtime) const;
207
-
208
- void setHostObject(jsi::Runtime &runtime, const jsi::Object &obj);
209
- jsi::Object getHostObject(jsi::Runtime &runtime) const;
210
-
211
- PropType _type = PropType::Undefined;
212
- bool _boolValue;
213
- double _numberValue;
214
- std::string _stringValue = "";
215
- std::shared_ptr<jsi::HostObject> _hostObject;
216
- jsi::HostFunctionType _hostFunction;
217
- std::vector<JsiValue> _array;
218
- std::unordered_map<PropId, JsiValue> _props;
219
- std::vector<PropId> _keysCache;
220
- };
221
-
222
- } // namespace RNJsi
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import type { ViewProps } from "react-native";
3
- import type { SharedValue } from "react-native-reanimated";
4
- import type { SkSize } from "../skia/types";
5
- export interface CanvasProps extends ViewProps {
6
- debug?: boolean;
7
- opaque?: boolean;
8
- onSize?: SharedValue<SkSize>;
9
- mode?: "continuous" | "default";
10
- }
11
- export declare const Canvas: React.ForwardRefExoticComponent<CanvasProps & React.RefAttributes<unknown>>;
@@ -1,112 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Canvas = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _SkiaViewNativeId = require("../views/SkiaViewNativeId");
9
- var _Reconciler = require("../sksg/Reconciler");
10
- var _skia = require("../skia");
11
- var _SkiaPictureView = require("../views/SkiaPictureView.web");
12
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
- // TODO: no need to go through the JS thread for this
16
- const useOnSizeEvent = (resultValue, onLayout) => {
17
- return (0, _react.useCallback)(event => {
18
- if (onLayout) {
19
- onLayout(event);
20
- }
21
- const {
22
- width,
23
- height
24
- } = event.nativeEvent.layout;
25
- if (resultValue) {
26
- resultValue.value = {
27
- width,
28
- height
29
- };
30
- }
31
- }, [onLayout, resultValue]);
32
- };
33
- const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
34
- mode,
35
- debug,
36
- opaque,
37
- children,
38
- onSize,
39
- onLayout: _onLayout,
40
- ...viewProps
41
- }, ref) => {
42
- const viewRef = (0, _react.useRef)(null);
43
- const rafId = (0, _react.useRef)(null);
44
- const onLayout = useOnSizeEvent(onSize, _onLayout);
45
- // Native ID
46
- const nativeId = (0, _react.useMemo)(() => {
47
- return _SkiaViewNativeId.SkiaViewNativeId.current++;
48
- }, []);
49
-
50
- // Root
51
- const root = (0, _react.useMemo)(() => new _Reconciler.SkiaSGRoot(_skia.Skia), []);
52
-
53
- // Render effects
54
- (0, _react.useEffect)(() => {
55
- root.render(children);
56
- if (viewRef.current) {
57
- viewRef.current.setPicture(root.getPicture());
58
- }
59
- }, [children, root]);
60
- (0, _react.useEffect)(() => {
61
- return () => {
62
- root.unmount();
63
- };
64
- }, [root]);
65
- const requestRedraw = (0, _react.useCallback)(() => {
66
- rafId.current = requestAnimationFrame(() => {
67
- root.render(children);
68
- if (viewRef.current) {
69
- viewRef.current.setPicture(root.getPicture());
70
- }
71
- if (mode === "continuous") {
72
- requestRedraw();
73
- }
74
- });
75
- }, [children, mode, root]);
76
- (0, _react.useEffect)(() => {
77
- if (mode === "continuous") {
78
- requestRedraw();
79
- }
80
- return () => {
81
- if (rafId.current !== null) {
82
- cancelAnimationFrame(rafId.current);
83
- }
84
- };
85
- }, [mode, requestRedraw]);
86
-
87
- // Component methods
88
- (0, _react.useImperativeHandle)(ref, () => ({
89
- makeImageSnapshot: rect => {
90
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
91
- },
92
- makeImageSnapshotAsync: rect => {
93
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
94
- },
95
- redraw: () => {
96
- var _viewRef$current;
97
- (_viewRef$current = viewRef.current) === null || _viewRef$current === void 0 || _viewRef$current.redraw();
98
- },
99
- getNativeId: () => {
100
- return nativeId;
101
- }
102
- }));
103
- return /*#__PURE__*/_react.default.createElement(_SkiaPictureView.SkiaPictureView, _extends({
104
- ref: viewRef,
105
- collapsable: false,
106
- nativeID: `${nativeId}`,
107
- debug: debug,
108
- opaque: opaque,
109
- onLayout: onLayout
110
- }, viewProps));
111
- });
112
- //# sourceMappingURL=Canvas.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_SkiaViewNativeId","_Reconciler","_skia","_SkiaPictureView","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","useOnSizeEvent","resultValue","onLayout","useCallback","event","width","height","nativeEvent","layout","value","Canvas","exports","forwardRef","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","viewRef","useRef","rafId","nativeId","useMemo","SkiaViewNativeId","current","root","SkiaSGRoot","Skia","useEffect","render","setPicture","getPicture","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","useImperativeHandle","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","_viewRef$current","getNativeId","createElement","SkiaPictureView","collapsable","nativeID"],"sources":["Canvas.web.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\nimport type { LayoutChangeEvent, ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaPictureView } from \"../views/SkiaPictureView.web\";\n\n// TODO: no need to go through the JS thread for this\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport interface CanvasProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: CanvasProps,\n ref\n ) => {\n const viewRef = useRef<SkiaPictureView>(null);\n const rafId = useRef<number | null>(null);\n const onLayout = useOnSizeEvent(onSize, _onLayout);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia), []);\n\n // Render effects\n useEffect(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n }, [children, root]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n const requestRedraw = useCallback(() => {\n rafId.current = requestAnimationFrame(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n if (mode === \"continuous\") {\n requestRedraw();\n }\n });\n }, [children, mode, root]);\n\n useEffect(() => {\n if (mode === \"continuous\") {\n requestRedraw();\n }\n return () => {\n if (rafId.current !== null) {\n cancelAnimationFrame(rafId.current);\n }\n };\n }, [mode, requestRedraw]);\n\n // Component methods\n useImperativeHandle(ref, () => ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n viewRef.current?.redraw();\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <SkiaPictureView\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n onLayout={onLayout}\n {...viewProps}\n />\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import type { ViewProps } from "react-native";
3
- import type { SharedValue } from "react-native-reanimated";
4
- import type { SkSize } from "../skia/types";
5
- export interface CanvasProps extends ViewProps {
6
- debug?: boolean;
7
- opaque?: boolean;
8
- onSize?: SharedValue<SkSize>;
9
- mode?: "continuous" | "default";
10
- }
11
- export declare const Canvas: React.ForwardRefExoticComponent<CanvasProps & React.RefAttributes<unknown>>;
@@ -1,105 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
3
- import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
4
- import { SkiaSGRoot } from "../sksg/Reconciler";
5
- import { Skia } from "../skia";
6
- import { SkiaPictureView } from "../views/SkiaPictureView.web";
7
-
8
- // TODO: no need to go through the JS thread for this
9
- const useOnSizeEvent = (resultValue, onLayout) => {
10
- return useCallback(event => {
11
- if (onLayout) {
12
- onLayout(event);
13
- }
14
- const {
15
- width,
16
- height
17
- } = event.nativeEvent.layout;
18
- if (resultValue) {
19
- resultValue.value = {
20
- width,
21
- height
22
- };
23
- }
24
- }, [onLayout, resultValue]);
25
- };
26
- export const Canvas = /*#__PURE__*/forwardRef(({
27
- mode,
28
- debug,
29
- opaque,
30
- children,
31
- onSize,
32
- onLayout: _onLayout,
33
- ...viewProps
34
- }, ref) => {
35
- const viewRef = useRef(null);
36
- const rafId = useRef(null);
37
- const onLayout = useOnSizeEvent(onSize, _onLayout);
38
- // Native ID
39
- const nativeId = useMemo(() => {
40
- return SkiaViewNativeId.current++;
41
- }, []);
42
-
43
- // Root
44
- const root = useMemo(() => new SkiaSGRoot(Skia), []);
45
-
46
- // Render effects
47
- useEffect(() => {
48
- root.render(children);
49
- if (viewRef.current) {
50
- viewRef.current.setPicture(root.getPicture());
51
- }
52
- }, [children, root]);
53
- useEffect(() => {
54
- return () => {
55
- root.unmount();
56
- };
57
- }, [root]);
58
- const requestRedraw = useCallback(() => {
59
- rafId.current = requestAnimationFrame(() => {
60
- root.render(children);
61
- if (viewRef.current) {
62
- viewRef.current.setPicture(root.getPicture());
63
- }
64
- if (mode === "continuous") {
65
- requestRedraw();
66
- }
67
- });
68
- }, [children, mode, root]);
69
- useEffect(() => {
70
- if (mode === "continuous") {
71
- requestRedraw();
72
- }
73
- return () => {
74
- if (rafId.current !== null) {
75
- cancelAnimationFrame(rafId.current);
76
- }
77
- };
78
- }, [mode, requestRedraw]);
79
-
80
- // Component methods
81
- useImperativeHandle(ref, () => ({
82
- makeImageSnapshot: rect => {
83
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
84
- },
85
- makeImageSnapshotAsync: rect => {
86
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
87
- },
88
- redraw: () => {
89
- var _viewRef$current;
90
- (_viewRef$current = viewRef.current) === null || _viewRef$current === void 0 || _viewRef$current.redraw();
91
- },
92
- getNativeId: () => {
93
- return nativeId;
94
- }
95
- }));
96
- return /*#__PURE__*/React.createElement(SkiaPictureView, _extends({
97
- ref: viewRef,
98
- collapsable: false,
99
- nativeID: `${nativeId}`,
100
- debug: debug,
101
- opaque: opaque,
102
- onLayout: onLayout
103
- }, viewProps));
104
- });
105
- //# sourceMappingURL=Canvas.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","SkiaViewNativeId","SkiaSGRoot","Skia","SkiaPictureView","useOnSizeEvent","resultValue","onLayout","event","width","height","nativeEvent","layout","value","Canvas","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","viewRef","rafId","nativeId","current","root","render","setPicture","getPicture","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","_viewRef$current","getNativeId","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.web.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from \"react\";\nimport type { LayoutChangeEvent, ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaPictureView } from \"../views/SkiaPictureView.web\";\n\n// TODO: no need to go through the JS thread for this\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport interface CanvasProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: CanvasProps,\n ref\n ) => {\n const viewRef = useRef<SkiaPictureView>(null);\n const rafId = useRef<number | null>(null);\n const onLayout = useOnSizeEvent(onSize, _onLayout);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia), []);\n\n // Render effects\n useEffect(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n }, [children, root]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n const requestRedraw = useCallback(() => {\n rafId.current = requestAnimationFrame(() => {\n root.render(children);\n if (viewRef.current) {\n viewRef.current.setPicture(root.getPicture());\n }\n if (mode === \"continuous\") {\n requestRedraw();\n }\n });\n }, [children, mode, root]);\n\n useEffect(() => {\n if (mode === \"continuous\") {\n requestRedraw();\n }\n return () => {\n if (rafId.current !== null) {\n cancelAnimationFrame(rafId.current);\n }\n };\n }, [mode, requestRedraw]);\n\n // Component methods\n useImperativeHandle(ref, () => ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n viewRef.current?.redraw();\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <SkiaPictureView\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n onLayout={onLayout}\n {...viewProps}\n />\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- export const __esModule: boolean;
2
- export const Canvas: any;
@@ -1,2 +0,0 @@
1
- export const Canvas: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
- import React from "react";
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import type { ViewProps } from "react-native";
3
- import type { SharedValue } from "react-native-reanimated";
4
- import type { SkSize } from "../skia/types";
5
- export interface CanvasProps extends ViewProps {
6
- debug?: boolean;
7
- opaque?: boolean;
8
- onSize?: SharedValue<SkSize>;
9
- mode?: "continuous" | "default";
10
- }
11
- export declare const Canvas: React.ForwardRefExoticComponent<CanvasProps & React.RefAttributes<unknown>>;
@@ -1,134 +0,0 @@
1
- import React, {
2
- forwardRef,
3
- useCallback,
4
- useEffect,
5
- useImperativeHandle,
6
- useMemo,
7
- useRef,
8
- } from "react";
9
- import type { LayoutChangeEvent, ViewProps } from "react-native";
10
- import type { SharedValue } from "react-native-reanimated";
11
-
12
- import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
13
- import type { SkRect, SkSize } from "../skia/types";
14
- import { SkiaSGRoot } from "../sksg/Reconciler";
15
- import { Skia } from "../skia";
16
- import type { SkiaBaseViewProps } from "../views";
17
- import { SkiaPictureView } from "../views/SkiaPictureView.web";
18
-
19
- // TODO: no need to go through the JS thread for this
20
- const useOnSizeEvent = (
21
- resultValue: SkiaBaseViewProps["onSize"],
22
- onLayout?: (event: LayoutChangeEvent) => void
23
- ) => {
24
- return useCallback(
25
- (event: LayoutChangeEvent) => {
26
- if (onLayout) {
27
- onLayout(event);
28
- }
29
- const { width, height } = event.nativeEvent.layout;
30
-
31
- if (resultValue) {
32
- resultValue.value = { width, height };
33
- }
34
- },
35
- [onLayout, resultValue]
36
- );
37
- };
38
-
39
- export interface CanvasProps extends ViewProps {
40
- debug?: boolean;
41
- opaque?: boolean;
42
- onSize?: SharedValue<SkSize>;
43
- mode?: "continuous" | "default";
44
- }
45
-
46
- export const Canvas = forwardRef(
47
- (
48
- {
49
- mode,
50
- debug,
51
- opaque,
52
- children,
53
- onSize,
54
- onLayout: _onLayout,
55
- ...viewProps
56
- }: CanvasProps,
57
- ref
58
- ) => {
59
- const viewRef = useRef<SkiaPictureView>(null);
60
- const rafId = useRef<number | null>(null);
61
- const onLayout = useOnSizeEvent(onSize, _onLayout);
62
- // Native ID
63
- const nativeId = useMemo(() => {
64
- return SkiaViewNativeId.current++;
65
- }, []);
66
-
67
- // Root
68
- const root = useMemo(() => new SkiaSGRoot(Skia), []);
69
-
70
- // Render effects
71
- useEffect(() => {
72
- root.render(children);
73
- if (viewRef.current) {
74
- viewRef.current.setPicture(root.getPicture());
75
- }
76
- }, [children, root]);
77
-
78
- useEffect(() => {
79
- return () => {
80
- root.unmount();
81
- };
82
- }, [root]);
83
-
84
- const requestRedraw = useCallback(() => {
85
- rafId.current = requestAnimationFrame(() => {
86
- root.render(children);
87
- if (viewRef.current) {
88
- viewRef.current.setPicture(root.getPicture());
89
- }
90
- if (mode === "continuous") {
91
- requestRedraw();
92
- }
93
- });
94
- }, [children, mode, root]);
95
-
96
- useEffect(() => {
97
- if (mode === "continuous") {
98
- requestRedraw();
99
- }
100
- return () => {
101
- if (rafId.current !== null) {
102
- cancelAnimationFrame(rafId.current);
103
- }
104
- };
105
- }, [mode, requestRedraw]);
106
-
107
- // Component methods
108
- useImperativeHandle(ref, () => ({
109
- makeImageSnapshot: (rect?: SkRect) => {
110
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
111
- },
112
- makeImageSnapshotAsync: (rect?: SkRect) => {
113
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
114
- },
115
- redraw: () => {
116
- viewRef.current?.redraw();
117
- },
118
- getNativeId: () => {
119
- return nativeId;
120
- },
121
- }));
122
- return (
123
- <SkiaPictureView
124
- ref={viewRef}
125
- collapsable={false}
126
- nativeID={`${nativeId}`}
127
- debug={debug}
128
- opaque={opaque}
129
- onLayout={onLayout}
130
- {...viewProps}
131
- />
132
- );
133
- }
134
- );