@shopify/react-native-skia 2.2.0 → 2.2.1
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.
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerInterface.java +1 -0
- package/cpp/rnskia/RNSkJsiViewApi.h +36 -1
- package/cpp/rnskia/RNSkView.h +10 -0
- package/lib/commonjs/renderer/Canvas.d.ts +11 -4
- package/lib/commonjs/renderer/Canvas.js +48 -26
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +13 -7
- package/lib/commonjs/sksg/Container.js +44 -18
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/Reconciler.d.ts +3 -2
- package/lib/commonjs/sksg/Reconciler.js +2 -2
- package/lib/commonjs/sksg/Reconciler.js.map +1 -1
- package/lib/commonjs/views/types.d.ts +1 -0
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/renderer/Canvas.d.ts +11 -4
- package/lib/module/renderer/Canvas.js +47 -26
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +13 -7
- package/lib/module/sksg/Container.js +44 -18
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/Reconciler.d.ts +3 -2
- package/lib/module/sksg/Reconciler.js +2 -2
- package/lib/module/sksg/Reconciler.js.map +1 -1
- package/lib/module/views/types.d.ts +1 -0
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +7 -2
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +11 -3
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +7 -4
- package/lib/typescript/lib/module/renderer/Canvas.d.ts +10 -2
- package/lib/typescript/lib/module/sksg/Container.d.ts +11 -3
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +7 -4
- package/lib/typescript/src/renderer/Canvas.d.ts +11 -4
- package/lib/typescript/src/sksg/Container.d.ts +13 -7
- package/lib/typescript/src/sksg/Reconciler.d.ts +3 -2
- package/lib/typescript/src/views/types.d.ts +1 -0
- package/package.json +1 -1
- package/src/renderer/Canvas.tsx +50 -30
- package/src/sksg/Container.ts +73 -20
- package/src/sksg/Reconciler.ts +5 -3
- package/src/views/types.ts +1 -0
@@ -232,10 +232,45 @@ public:
|
|
232
232
|
});
|
233
233
|
}
|
234
234
|
|
235
|
+
JSI_HOST_FUNCTION(size) {
|
236
|
+
if (count != 1) {
|
237
|
+
_platformContext->raiseError(
|
238
|
+
std::string("size: Expected 1 argument, got " +
|
239
|
+
std::to_string(count) + "."));
|
240
|
+
return jsi::Value::undefined();
|
241
|
+
}
|
242
|
+
|
243
|
+
if (!arguments[0].isNumber()) {
|
244
|
+
_platformContext->raiseError(
|
245
|
+
"size: First argument must be a number");
|
246
|
+
return jsi::Value::undefined();
|
247
|
+
}
|
248
|
+
|
249
|
+
// find Skia View
|
250
|
+
int nativeId = arguments[0].asNumber();
|
251
|
+
std::shared_ptr<RNSkView> view = ViewRegistry::getInstance().withViewInfo(
|
252
|
+
nativeId,
|
253
|
+
[](std::shared_ptr<RNSkViewInfo> info) { return info->view; });
|
254
|
+
if (view != nullptr) {
|
255
|
+
auto pixelDensity = _platformContext->getPixelDensity();
|
256
|
+
auto sizeObj = jsi::Object(runtime);
|
257
|
+
sizeObj.setProperty(runtime, "width", view->getScaledWidth() / pixelDensity);
|
258
|
+
sizeObj.setProperty(runtime, "height", view->getScaledHeight() / pixelDensity);
|
259
|
+
return sizeObj;
|
260
|
+
}
|
261
|
+
|
262
|
+
// Return default size if view not found
|
263
|
+
auto sizeObj = jsi::Object(runtime);
|
264
|
+
sizeObj.setProperty(runtime, "width", 0);
|
265
|
+
sizeObj.setProperty(runtime, "height", 0);
|
266
|
+
return sizeObj;
|
267
|
+
}
|
268
|
+
|
235
269
|
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(RNSkJsiViewApi, setJsiProperty),
|
236
270
|
JSI_EXPORT_FUNC(RNSkJsiViewApi, requestRedraw),
|
237
271
|
JSI_EXPORT_FUNC(RNSkJsiViewApi, makeImageSnapshotAsync),
|
238
|
-
JSI_EXPORT_FUNC(RNSkJsiViewApi, makeImageSnapshot)
|
272
|
+
JSI_EXPORT_FUNC(RNSkJsiViewApi, makeImageSnapshot),
|
273
|
+
JSI_EXPORT_FUNC(RNSkJsiViewApi, size))
|
239
274
|
|
240
275
|
/**
|
241
276
|
* Constructor
|
package/cpp/rnskia/RNSkView.h
CHANGED
@@ -203,6 +203,16 @@ public:
|
|
203
203
|
|
204
204
|
std::shared_ptr<RNSkRenderer> getRenderer() { return _renderer; }
|
205
205
|
|
206
|
+
/**
|
207
|
+
Returns the scaled width of the view
|
208
|
+
*/
|
209
|
+
int getScaledWidth() { return _canvasProvider->getScaledWidth(); }
|
210
|
+
|
211
|
+
/**
|
212
|
+
Returns the scaled height of the view
|
213
|
+
*/
|
214
|
+
int getScaledHeight() { return _canvasProvider->getScaledHeight(); }
|
215
|
+
|
206
216
|
protected:
|
207
217
|
std::shared_ptr<RNSkPlatformContext> getPlatformContext() {
|
208
218
|
return _platformContext;
|
@@ -1,20 +1,27 @@
|
|
1
1
|
import type { FC } from "react";
|
2
2
|
import React from "react";
|
3
|
-
import type { ViewProps } from "react-native";
|
4
|
-
import type
|
3
|
+
import type { MeasureInWindowOnSuccessCallback, MeasureOnSuccessCallback, ViewProps } from "react-native";
|
4
|
+
import { type SharedValue } from "react-native-reanimated";
|
5
5
|
import type { SkImage, SkRect, SkSize } from "../skia/types";
|
6
6
|
export interface CanvasRef extends FC<CanvasProps> {
|
7
7
|
makeImageSnapshot(rect?: SkRect): SkImage;
|
8
8
|
makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;
|
9
9
|
redraw(): void;
|
10
10
|
getNativeId(): number;
|
11
|
+
measure(callback: MeasureOnSuccessCallback): void;
|
12
|
+
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;
|
11
13
|
}
|
12
14
|
export declare const useCanvasRef: () => React.RefObject<CanvasRef | null>;
|
13
|
-
export
|
15
|
+
export declare const useCanvasSize: () => {
|
16
|
+
ref: React.RefObject<CanvasRef | null>;
|
17
|
+
size: SkSize;
|
18
|
+
};
|
19
|
+
export declare const isFabric: boolean;
|
20
|
+
export interface CanvasProps extends Omit<ViewProps, "onLayout"> {
|
14
21
|
debug?: boolean;
|
15
22
|
opaque?: boolean;
|
16
23
|
onSize?: SharedValue<SkSize>;
|
17
24
|
colorSpace?: "p3" | "srgb";
|
18
25
|
ref?: React.Ref<CanvasRef>;
|
19
26
|
}
|
20
|
-
export declare const Canvas: ({ debug, opaque, children, onSize,
|
27
|
+
export declare const Canvas: ({ debug, opaque, children, onSize, colorSpace, ref, onLayout, ...viewProps }: CanvasProps) => React.JSX.Element;
|
@@ -3,62 +3,76 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.useCanvasRef = exports.Canvas = void 0;
|
6
|
+
exports.useCanvasSize = exports.useCanvasRef = exports.isFabric = exports.Canvas = void 0;
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
8
8
|
var _SkiaViewNativeId = require("../views/SkiaViewNativeId");
|
9
9
|
var _SkiaPictureViewNativeComponent = _interopRequireDefault(require("../specs/SkiaPictureViewNativeComponent"));
|
10
10
|
var _Reconciler = require("../sksg/Reconciler");
|
11
11
|
var _skia = require("../skia");
|
12
|
+
var _global;
|
12
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
13
14
|
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); }
|
14
15
|
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; }
|
15
16
|
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); }
|
16
17
|
const useCanvasRef = () => (0, _react.useRef)(null);
|
17
|
-
|
18
|
-
//const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
|
19
|
-
|
20
|
-
// TODO: no need to go through the JS thread for this
|
21
18
|
exports.useCanvasRef = useCanvasRef;
|
22
|
-
const
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
};
|
19
|
+
const useCanvasSize = () => {
|
20
|
+
const ref = useCanvasRef();
|
21
|
+
const [size, setSize] = (0, _react.useState)({
|
22
|
+
width: 0,
|
23
|
+
height: 0
|
24
|
+
});
|
25
|
+
(0, _react.useLayoutEffect)(() => {
|
26
|
+
if (ref.current) {
|
27
|
+
ref.current.measure((_x, _y, width, height) => {
|
28
|
+
setSize({
|
29
|
+
width,
|
30
|
+
height
|
31
|
+
});
|
32
|
+
});
|
36
33
|
}
|
37
|
-
|
34
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
35
|
+
}, []);
|
36
|
+
return {
|
37
|
+
ref,
|
38
|
+
size
|
39
|
+
};
|
38
40
|
};
|
41
|
+
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
43
|
+
exports.useCanvasSize = useCanvasSize;
|
44
|
+
const isFabric = exports.isFabric = Boolean((_global = global) === null || _global === void 0 ? void 0 : _global.nativeFabricUIManager);
|
39
45
|
const Canvas = ({
|
40
46
|
debug,
|
41
47
|
opaque,
|
42
48
|
children,
|
43
49
|
onSize,
|
44
|
-
onLayout: _onLayout,
|
45
50
|
colorSpace = "p3",
|
46
51
|
ref,
|
52
|
+
// Here know this is a type error but this is done on purpose to check it at runtime
|
53
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
54
|
+
// @ts-expect-error
|
55
|
+
onLayout,
|
47
56
|
...viewProps
|
48
57
|
}) => {
|
49
|
-
|
58
|
+
if (onLayout && isFabric) {
|
59
|
+
console.error(
|
60
|
+
// eslint-disable-next-line max-len
|
61
|
+
"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size");
|
62
|
+
}
|
63
|
+
const viewRef = (0, _react.useRef)(null);
|
50
64
|
// Native ID
|
51
65
|
const nativeId = (0, _react.useMemo)(() => {
|
52
66
|
return _SkiaViewNativeId.SkiaViewNativeId.current++;
|
53
67
|
}, []);
|
54
68
|
|
55
69
|
// Root
|
56
|
-
const root = (0, _react.useMemo)(() => new _Reconciler.SkiaSGRoot(_skia.Skia, nativeId), [nativeId]);
|
70
|
+
const root = (0, _react.useMemo)(() => new _Reconciler.SkiaSGRoot(_skia.Skia, nativeId, onSize), [nativeId, onSize]);
|
57
71
|
|
58
72
|
// Render effects
|
59
73
|
(0, _react.useLayoutEffect)(() => {
|
60
74
|
root.render(children);
|
61
|
-
}, [children, root]);
|
75
|
+
}, [children, root, nativeId]);
|
62
76
|
(0, _react.useEffect)(() => {
|
63
77
|
return () => {
|
64
78
|
root.unmount();
|
@@ -78,15 +92,23 @@ const Canvas = ({
|
|
78
92
|
},
|
79
93
|
getNativeId: () => {
|
80
94
|
return nativeId;
|
95
|
+
},
|
96
|
+
measure: callback => {
|
97
|
+
var _viewRef$current;
|
98
|
+
(_viewRef$current = viewRef.current) === null || _viewRef$current === void 0 || _viewRef$current.measure(callback);
|
99
|
+
},
|
100
|
+
measureInWindow: callback => {
|
101
|
+
var _viewRef$current2;
|
102
|
+
(_viewRef$current2 = viewRef.current) === null || _viewRef$current2 === void 0 || _viewRef$current2.measureInWindow(callback);
|
81
103
|
}
|
82
104
|
}));
|
83
105
|
return /*#__PURE__*/_react.default.createElement(_SkiaPictureViewNativeComponent.default, _extends({
|
106
|
+
ref: viewRef,
|
84
107
|
collapsable: false,
|
85
108
|
nativeID: `${nativeId}`,
|
86
109
|
debug: debug,
|
87
110
|
opaque: opaque,
|
88
|
-
colorSpace: colorSpace
|
89
|
-
onLayout: onLayout
|
111
|
+
colorSpace: colorSpace
|
90
112
|
}, viewProps));
|
91
113
|
};
|
92
114
|
exports.Canvas = Canvas;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_SkiaViewNativeId","_SkiaPictureViewNativeComponent","_interopRequireDefault","_Reconciler","_skia","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","useCanvasRef","useRef","exports","
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_SkiaViewNativeId","_SkiaPictureViewNativeComponent","_interopRequireDefault","_Reconciler","_skia","_global","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","useCanvasRef","useRef","exports","useCanvasSize","ref","size","setSize","useState","width","height","useLayoutEffect","current","measure","_x","_y","isFabric","Boolean","global","nativeFabricUIManager","Canvas","debug","opaque","children","onSize","colorSpace","onLayout","viewProps","console","error","viewRef","nativeId","useMemo","SkiaViewNativeId","root","SkiaSGRoot","Skia","render","useEffect","unmount","useImperativeHandle","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","requestRedraw","getNativeId","callback","_viewRef$current","measureInWindow","_viewRef$current2","createElement","collapsable","nativeID"],"sources":["Canvas.tsx"],"sourcesContent":["import type { FC } from \"react\";\nimport React, {\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n MeasureInWindowOnSuccessCallback,\n MeasureOnSuccessCallback,\n View,\n ViewProps,\n} from \"react-native\";\nimport { type SharedValue } from \"react-native-reanimated\";\n\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkImage, SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\n\nexport interface CanvasRef extends FC<CanvasProps> {\n makeImageSnapshot(rect?: SkRect): SkImage;\n makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;\n redraw(): void;\n getNativeId(): number;\n measure(callback: MeasureOnSuccessCallback): void;\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;\n}\n\nexport const useCanvasRef = () => useRef<CanvasRef>(null);\n\nexport const useCanvasSize = () => {\n const ref = useCanvasRef();\n const [size, setSize] = useState<SkSize>({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (ref.current) {\n ref.current.measure((_x, _y, width, height) => {\n setSize({ width, height });\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return { ref, size };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isFabric = Boolean((global as any)?.nativeFabricUIManager);\n\nexport interface CanvasProps extends Omit<ViewProps, \"onLayout\"> {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n colorSpace?: \"p3\" | \"srgb\";\n ref?: React.Ref<CanvasRef>;\n}\n\nexport const Canvas = ({\n debug,\n opaque,\n children,\n onSize,\n colorSpace = \"p3\",\n ref,\n // Here know this is a type error but this is done on purpose to check it at runtime\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n if (onLayout && isFabric) {\n console.error(\n // eslint-disable-next-line max-len\n \"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size\"\n );\n }\n const viewRef = useRef<View>(null);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(\n () => new SkiaSGRoot(Skia, nativeId, onSize),\n [nativeId, onSize]\n );\n\n // Render effects\n useLayoutEffect(() => {\n root.render(children);\n }, [children, root, nativeId]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n // Component methods\n useImperativeHandle(\n ref,\n () =>\n ({\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 SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n measure: (callback) => {\n viewRef.current?.measure(callback);\n },\n measureInWindow: (callback) => {\n viewRef.current?.measureInWindow(callback);\n },\n } as CanvasRef)\n );\n\n return (\n <SkiaPictureViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n colorSpace={colorSpace}\n {...viewProps}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,14 +1,14 @@
|
|
1
|
-
import type {
|
1
|
+
import type { SharedValue } from "react-native-reanimated";
|
2
|
+
import type { Skia, SkCanvas, SkSize } from "../skia/types";
|
2
3
|
import type { Node } from "./Node";
|
3
4
|
import type { Recording } from "./Recorder/Recorder";
|
4
5
|
import "../views/api";
|
5
6
|
export declare abstract class Container {
|
6
7
|
protected Skia: Skia;
|
7
|
-
protected nativeId: number;
|
8
8
|
private _root;
|
9
9
|
protected recording: Recording | null;
|
10
10
|
protected unmounted: boolean;
|
11
|
-
constructor(Skia: Skia
|
11
|
+
constructor(Skia: Skia);
|
12
12
|
get root(): Node[];
|
13
13
|
set root(value: Node[]);
|
14
14
|
mount(): void;
|
@@ -17,18 +17,24 @@ export declare abstract class Container {
|
|
17
17
|
abstract redraw(): void;
|
18
18
|
}
|
19
19
|
declare class StaticContainer extends Container {
|
20
|
-
|
20
|
+
private nativeId;
|
21
|
+
private onSize?;
|
22
|
+
constructor(Skia: Skia, nativeId: number, onSize?: SharedValue<SkSize> | undefined);
|
21
23
|
redraw(): void;
|
22
24
|
}
|
23
25
|
declare class ReanimatedContainer extends Container {
|
26
|
+
private nativeId;
|
27
|
+
private onSize?;
|
24
28
|
private mapperId;
|
25
|
-
constructor(Skia: Skia, nativeId: number);
|
29
|
+
constructor(Skia: Skia, nativeId: number, onSize?: SharedValue<SkSize> | undefined);
|
26
30
|
redraw(): void;
|
27
31
|
}
|
28
32
|
declare class NativeReanimatedContainer extends Container {
|
33
|
+
private nativeId;
|
34
|
+
private onSize?;
|
29
35
|
private mapperId;
|
30
|
-
constructor(Skia: Skia, nativeId: number);
|
36
|
+
constructor(Skia: Skia, nativeId: number, onSize?: SharedValue<SkSize> | undefined);
|
31
37
|
redraw(): void;
|
32
38
|
}
|
33
|
-
export declare const createContainer: (Skia: Skia, nativeId: number) => StaticContainer | ReanimatedContainer | NativeReanimatedContainer;
|
39
|
+
export declare const createContainer: (Skia: Skia, nativeId: number, onSize?: SharedValue<SkSize>) => StaticContainer | ReanimatedContainer | NativeReanimatedContainer;
|
34
40
|
export {};
|
@@ -16,9 +16,15 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
16
16
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
17
17
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
18
18
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
19
|
-
const drawOnscreen = (Skia, nativeId, recording) => {
|
19
|
+
const drawOnscreen = (Skia, nativeId, recording, onSize) => {
|
20
20
|
"worklet";
|
21
21
|
|
22
|
+
if (onSize) {
|
23
|
+
const size = SkiaViewApi.size(nativeId);
|
24
|
+
if (size.width !== onSize.value.width || size.height !== onSize.value.height) {
|
25
|
+
onSize.value = size;
|
26
|
+
}
|
27
|
+
}
|
22
28
|
const rec = Skia.PictureRecorder();
|
23
29
|
const canvas = rec.beginRecording();
|
24
30
|
//const start = performance.now();
|
@@ -30,19 +36,24 @@ const drawOnscreen = (Skia, nativeId, recording) => {
|
|
30
36
|
//console.log("Recording time: ", end - start);
|
31
37
|
SkiaViewApi.setJsiProperty(nativeId, "picture", picture);
|
32
38
|
};
|
33
|
-
const nativeDrawOnscreen = (nativeId, recorder) => {
|
39
|
+
const nativeDrawOnscreen = (nativeId, recorder, onSize) => {
|
34
40
|
"worklet";
|
35
41
|
|
36
42
|
//const start = performance.now();
|
43
|
+
if (onSize) {
|
44
|
+
const size = SkiaViewApi.size(nativeId);
|
45
|
+
if (size.width !== onSize.value.width || size.height !== onSize.value.height) {
|
46
|
+
onSize.value = size;
|
47
|
+
}
|
48
|
+
}
|
37
49
|
const picture = recorder.play();
|
38
50
|
//const end = performance.now();
|
39
51
|
//console.log("Recording time: ", end - start);
|
40
52
|
SkiaViewApi.setJsiProperty(nativeId, "picture", picture);
|
41
53
|
};
|
42
54
|
class Container {
|
43
|
-
constructor(Skia
|
55
|
+
constructor(Skia) {
|
44
56
|
this.Skia = Skia;
|
45
|
-
this.nativeId = nativeId;
|
46
57
|
_defineProperty(this, "_root", []);
|
47
58
|
_defineProperty(this, "recording", null);
|
48
59
|
_defineProperty(this, "unmounted", false);
|
@@ -69,8 +80,10 @@ class Container {
|
|
69
80
|
}
|
70
81
|
exports.Container = Container;
|
71
82
|
class StaticContainer extends Container {
|
72
|
-
constructor(Skia, nativeId) {
|
73
|
-
super(Skia
|
83
|
+
constructor(Skia, nativeId, onSize) {
|
84
|
+
super(Skia);
|
85
|
+
this.nativeId = nativeId;
|
86
|
+
this.onSize = onSize;
|
74
87
|
}
|
75
88
|
redraw() {
|
76
89
|
const recorder = new _Recorder.Recorder();
|
@@ -78,6 +91,12 @@ class StaticContainer extends Container {
|
|
78
91
|
this.recording = recorder.getRecording();
|
79
92
|
const isOnScreen = this.nativeId !== -1;
|
80
93
|
if (isOnScreen) {
|
94
|
+
if (this.onSize) {
|
95
|
+
const size = SkiaViewApi.size(this.nativeId);
|
96
|
+
if (size.width !== this.onSize.value.width || size.height !== this.onSize.value.height) {
|
97
|
+
this.onSize.value = size;
|
98
|
+
}
|
99
|
+
}
|
81
100
|
const rec = this.Skia.PictureRecorder();
|
82
101
|
const canvas = rec.beginRecording();
|
83
102
|
this.drawOnCanvas(canvas);
|
@@ -87,8 +106,10 @@ class StaticContainer extends Container {
|
|
87
106
|
}
|
88
107
|
}
|
89
108
|
class ReanimatedContainer extends Container {
|
90
|
-
constructor(Skia, nativeId) {
|
91
|
-
super(Skia
|
109
|
+
constructor(Skia, nativeId, onSize) {
|
110
|
+
super(Skia);
|
111
|
+
this.nativeId = nativeId;
|
112
|
+
this.onSize = onSize;
|
92
113
|
_defineProperty(this, "mapperId", null);
|
93
114
|
}
|
94
115
|
redraw() {
|
@@ -123,13 +144,15 @@ class ReanimatedContainer extends Container {
|
|
123
144
|
_ReanimatedProxy.default.runOnUI(() => {
|
124
145
|
"worklet";
|
125
146
|
|
126
|
-
drawOnscreen(Skia, nativeId, recording);
|
147
|
+
drawOnscreen(Skia, nativeId, recording, this.onSize);
|
127
148
|
})();
|
128
149
|
}
|
129
150
|
}
|
130
151
|
class NativeReanimatedContainer extends Container {
|
131
|
-
constructor(Skia, nativeId) {
|
132
|
-
super(Skia
|
152
|
+
constructor(Skia, nativeId, onSize) {
|
153
|
+
super(Skia);
|
154
|
+
this.nativeId = nativeId;
|
155
|
+
this.onSize = onSize;
|
133
156
|
_defineProperty(this, "mapperId", null);
|
134
157
|
}
|
135
158
|
redraw() {
|
@@ -147,28 +170,31 @@ class NativeReanimatedContainer extends Container {
|
|
147
170
|
(0, _Visitor.visit)(recorder, this.root);
|
148
171
|
const sharedValues = recorder.getSharedValues();
|
149
172
|
const sharedRecorder = recorder.getRecorder();
|
150
|
-
_ReanimatedProxy.default.runOnUI(
|
173
|
+
_ReanimatedProxy.default.runOnUI(onSize => {
|
151
174
|
"worklet";
|
152
175
|
|
153
|
-
nativeDrawOnscreen(nativeId, sharedRecorder);
|
154
|
-
})();
|
176
|
+
nativeDrawOnscreen(nativeId, sharedRecorder, onSize);
|
177
|
+
})(this.onSize);
|
155
178
|
if (sharedValues.length > 0) {
|
179
|
+
const {
|
180
|
+
onSize
|
181
|
+
} = this;
|
156
182
|
this.mapperId = _ReanimatedProxy.default.startMapper(() => {
|
157
183
|
"worklet";
|
158
184
|
|
159
185
|
sharedRecorder.applyUpdates(sharedValues);
|
160
|
-
nativeDrawOnscreen(nativeId, sharedRecorder);
|
186
|
+
nativeDrawOnscreen(nativeId, sharedRecorder, onSize);
|
161
187
|
}, sharedValues);
|
162
188
|
}
|
163
189
|
}
|
164
190
|
}
|
165
|
-
const createContainer = (Skia, nativeId) => {
|
191
|
+
const createContainer = (Skia, nativeId, onSize) => {
|
166
192
|
const web = global.SkiaViewApi && global.SkiaViewApi.web;
|
167
193
|
if (_renderHelpers.HAS_REANIMATED_3 && nativeId !== -1) {
|
168
194
|
if (!web) {
|
169
|
-
return new NativeReanimatedContainer(Skia, nativeId);
|
195
|
+
return new NativeReanimatedContainer(Skia, nativeId, onSize);
|
170
196
|
} else {
|
171
|
-
return new ReanimatedContainer(Skia, nativeId);
|
197
|
+
return new ReanimatedContainer(Skia, nativeId, onSize);
|
172
198
|
}
|
173
199
|
} else {
|
174
200
|
return new StaticContainer(Skia, nativeId);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_ReanimatedProxy","_interopRequireDefault","require","_renderHelpers","_Recorder","_Visitor","_Player","_DrawingContext","_ReanimatedRecorder","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","drawOnscreen","Skia","nativeId","recording","rec","PictureRecorder","canvas","beginRecording","ctx","createDrawingContext","paintPool","replay","commands","picture","finishRecordingAsPicture","SkiaViewApi","setJsiProperty","nativeDrawOnscreen","recorder","play","Container","constructor","root","_root","mount","unmounted","unmount","drawOnCanvas","Error","exports","StaticContainer","redraw","Recorder","visit","getRecording","isOnScreen","ReanimatedContainer","mapperId","Rea","stopMapper","record","animationValues","size","startMapper","Array","from","runOnUI","NativeReanimatedContainer","ReanimatedRecorder","sharedValues","getSharedValues","sharedRecorder","getRecorder","length","applyUpdates","createContainer","web","global","HAS_REANIMATED_3"],"sources":["Container.ts"],"sourcesContent":["import Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas } from \"../skia/types\";\nimport { HAS_REANIMATED_3 } from \"../external/reanimated/renderHelpers\";\nimport type { JsiRecorder } from \"../skia/types/Recorder\";\n\nimport type { Node } from \"./Node\";\nimport type { Recording } from \"./Recorder/Recorder\";\nimport { Recorder } from \"./Recorder/Recorder\";\nimport { visit } from \"./Recorder/Visitor\";\nimport { replay } from \"./Recorder/Player\";\nimport { createDrawingContext } from \"./Recorder/DrawingContext\";\nimport { ReanimatedRecorder } from \"./Recorder/ReanimatedRecorder\";\n\nimport \"../views/api\";\n\nconst drawOnscreen = (Skia: Skia, nativeId: number, recording: Recording) => {\n \"worklet\";\n\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n //const start = performance.now();\n\n const ctx = createDrawingContext(Skia, recording.paintPool, canvas);\n replay(ctx, recording.commands);\n const picture = rec.finishRecordingAsPicture();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nconst nativeDrawOnscreen = (nativeId: number, recorder: JsiRecorder) => {\n \"worklet\";\n\n //const start = performance.now();\n\n const picture = recorder.play();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport abstract class Container {\n private _root: Node[] = [];\n protected recording: Recording | null = null;\n protected unmounted = false;\n\n constructor(protected Skia: Skia, protected nativeId: number) {}\n\n get root() {\n return this._root;\n }\n\n set root(value: Node[]) {\n this._root = value;\n }\n\n mount() {\n this.unmounted = false;\n }\n\n unmount() {\n this.unmounted = true;\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n if (!this.recording) {\n throw new Error(\"No recording to draw\");\n }\n const ctx = createDrawingContext(\n this.Skia,\n this.recording.paintPool,\n canvas\n );\n replay(ctx, this.recording.commands);\n }\n\n abstract redraw(): void;\n}\n\nclass StaticContainer extends Container {\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n const recorder = new Recorder();\n visit(recorder, this.root);\n this.recording = recorder.getRecording();\n const isOnScreen = this.nativeId !== -1;\n if (isOnScreen) {\n const rec = this.Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n this.drawOnCanvas(canvas);\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(this.nativeId, \"picture\", picture);\n }\n }\n}\n\nclass ReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const recorder = new Recorder();\n visit(recorder, this.root);\n const record = recorder.getRecording();\n const { animationValues } = record;\n this.recording = {\n commands: record.commands,\n paintPool: record.paintPool,\n };\n const { nativeId, Skia, recording } = this;\n if (animationValues.size > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n }, Array.from(animationValues));\n }\n Rea.runOnUI(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n })();\n }\n}\n\nclass NativeReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(Skia: Skia, nativeId: number) {\n super(Skia, nativeId);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const { nativeId, Skia } = this;\n const recorder = new ReanimatedRecorder(Skia);\n visit(recorder, this.root);\n const sharedValues = recorder.getSharedValues();\n const sharedRecorder = recorder.getRecorder();\n Rea.runOnUI(() => {\n \"worklet\";\n nativeDrawOnscreen(nativeId, sharedRecorder);\n })();\n if (sharedValues.length > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n sharedRecorder.applyUpdates(sharedValues);\n nativeDrawOnscreen(nativeId, sharedRecorder);\n }, sharedValues);\n }\n }\n}\n\nexport const createContainer = (Skia: Skia, nativeId: number) => {\n const web = global.SkiaViewApi && global.SkiaViewApi.web;\n if (HAS_REANIMATED_3 && nativeId !== -1) {\n if (!web) {\n return new NativeReanimatedContainer(Skia, nativeId);\n } else {\n return new ReanimatedContainer(Skia, nativeId);\n }\n } else {\n return new StaticContainer(Skia, nativeId);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_ReanimatedProxy","_interopRequireDefault","require","_renderHelpers","_Recorder","_Visitor","_Player","_DrawingContext","_ReanimatedRecorder","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","drawOnscreen","Skia","nativeId","recording","onSize","size","SkiaViewApi","width","height","rec","PictureRecorder","canvas","beginRecording","ctx","createDrawingContext","paintPool","replay","commands","picture","finishRecordingAsPicture","setJsiProperty","nativeDrawOnscreen","recorder","play","Container","constructor","root","_root","mount","unmounted","unmount","drawOnCanvas","Error","exports","StaticContainer","redraw","Recorder","visit","getRecording","isOnScreen","ReanimatedContainer","mapperId","Rea","stopMapper","record","animationValues","startMapper","Array","from","runOnUI","NativeReanimatedContainer","ReanimatedRecorder","sharedValues","getSharedValues","sharedRecorder","getRecorder","length","applyUpdates","createContainer","web","global","HAS_REANIMATED_3"],"sources":["Container.ts"],"sourcesContent":["import type { SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport type { Skia, SkCanvas, SkSize } from \"../skia/types\";\nimport { HAS_REANIMATED_3 } from \"../external/reanimated/renderHelpers\";\nimport type { JsiRecorder } from \"../skia/types/Recorder\";\n\nimport type { Node } from \"./Node\";\nimport type { Recording } from \"./Recorder/Recorder\";\nimport { Recorder } from \"./Recorder/Recorder\";\nimport { visit } from \"./Recorder/Visitor\";\nimport { replay } from \"./Recorder/Player\";\nimport { createDrawingContext } from \"./Recorder/DrawingContext\";\nimport { ReanimatedRecorder } from \"./Recorder/ReanimatedRecorder\";\n\nimport \"../views/api\";\n\nconst drawOnscreen = (\n Skia: Skia,\n nativeId: number,\n recording: Recording,\n onSize?: SharedValue<SkSize>\n) => {\n \"worklet\";\n if (onSize) {\n const size = SkiaViewApi.size(nativeId);\n if (\n size.width !== onSize.value.width ||\n size.height !== onSize.value.height\n ) {\n onSize.value = size;\n }\n }\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n //const start = performance.now();\n\n const ctx = createDrawingContext(Skia, recording.paintPool, canvas);\n replay(ctx, recording.commands);\n const picture = rec.finishRecordingAsPicture();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nconst nativeDrawOnscreen = (\n nativeId: number,\n recorder: JsiRecorder,\n onSize?: SharedValue<SkSize>\n) => {\n \"worklet\";\n\n //const start = performance.now();\n if (onSize) {\n const size = SkiaViewApi.size(nativeId);\n if (\n size.width !== onSize.value.width ||\n size.height !== onSize.value.height\n ) {\n onSize.value = size;\n }\n }\n const picture = recorder.play();\n //const end = performance.now();\n //console.log(\"Recording time: \", end - start);\n SkiaViewApi.setJsiProperty(nativeId, \"picture\", picture);\n};\n\nexport abstract class Container {\n private _root: Node[] = [];\n protected recording: Recording | null = null;\n protected unmounted = false;\n\n constructor(protected Skia: Skia) {}\n\n get root() {\n return this._root;\n }\n\n set root(value: Node[]) {\n this._root = value;\n }\n\n mount() {\n this.unmounted = false;\n }\n\n unmount() {\n this.unmounted = true;\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n if (!this.recording) {\n throw new Error(\"No recording to draw\");\n }\n const ctx = createDrawingContext(\n this.Skia,\n this.recording.paintPool,\n canvas\n );\n replay(ctx, this.recording.commands);\n }\n\n abstract redraw(): void;\n}\n\nclass StaticContainer extends Container {\n constructor(\n Skia: Skia,\n private nativeId: number,\n private onSize?: SharedValue<SkSize>\n ) {\n super(Skia);\n }\n\n redraw() {\n const recorder = new Recorder();\n visit(recorder, this.root);\n this.recording = recorder.getRecording();\n const isOnScreen = this.nativeId !== -1;\n if (isOnScreen) {\n if (this.onSize) {\n const size = SkiaViewApi.size(this.nativeId);\n if (\n size.width !== this.onSize.value.width ||\n size.height !== this.onSize.value.height\n ) {\n this.onSize.value = size;\n }\n }\n const rec = this.Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n this.drawOnCanvas(canvas);\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(this.nativeId, \"picture\", picture);\n }\n }\n}\n\nclass ReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(\n Skia: Skia,\n private nativeId: number,\n private onSize?: SharedValue<SkSize>\n ) {\n super(Skia);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const recorder = new Recorder();\n visit(recorder, this.root);\n const record = recorder.getRecording();\n const { animationValues } = record;\n this.recording = {\n commands: record.commands,\n paintPool: record.paintPool,\n };\n const { nativeId, Skia, recording } = this;\n if (animationValues.size > 0) {\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!);\n }, Array.from(animationValues));\n }\n Rea.runOnUI(() => {\n \"worklet\";\n drawOnscreen(Skia, nativeId, recording!, this.onSize);\n })();\n }\n}\n\nclass NativeReanimatedContainer extends Container {\n private mapperId: number | null = null;\n\n constructor(\n Skia: Skia,\n private nativeId: number,\n private onSize?: SharedValue<SkSize>\n ) {\n super(Skia);\n }\n\n redraw() {\n if (this.mapperId !== null) {\n Rea.stopMapper(this.mapperId);\n }\n if (this.unmounted) {\n return;\n }\n const { nativeId, Skia } = this;\n const recorder = new ReanimatedRecorder(Skia);\n visit(recorder, this.root);\n const sharedValues = recorder.getSharedValues();\n const sharedRecorder = recorder.getRecorder();\n Rea.runOnUI((onSize?: SharedValue<SkSize>) => {\n \"worklet\";\n nativeDrawOnscreen(nativeId, sharedRecorder, onSize);\n })(this.onSize);\n if (sharedValues.length > 0) {\n const { onSize } = this;\n this.mapperId = Rea.startMapper(() => {\n \"worklet\";\n sharedRecorder.applyUpdates(sharedValues);\n nativeDrawOnscreen(nativeId, sharedRecorder, onSize);\n }, sharedValues);\n }\n }\n}\n\nexport const createContainer = (\n Skia: Skia,\n nativeId: number,\n onSize?: SharedValue<SkSize>\n) => {\n const web = global.SkiaViewApi && global.SkiaViewApi.web;\n if (HAS_REANIMATED_3 && nativeId !== -1) {\n if (!web) {\n return new NativeReanimatedContainer(Skia, nativeId, onSize);\n } else {\n return new ReanimatedContainer(Skia, nativeId, onSize);\n }\n } else {\n return new StaticContainer(Skia, nativeId);\n }\n};\n"],"mappings":";;;;;;AAEA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAKA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,mBAAA,GAAAN,OAAA;AAEAA,OAAA;AAAsB,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAEtB,MAAMgB,YAAY,GAAGA,CACnBC,IAAU,EACVC,QAAgB,EAChBC,SAAoB,EACpBC,MAA4B,KACzB;EACH,SAAS;;EACT,IAAIA,MAAM,EAAE;IACV,MAAMC,IAAI,GAAGC,WAAW,CAACD,IAAI,CAACH,QAAQ,CAAC;IACvC,IACEG,IAAI,CAACE,KAAK,KAAKH,MAAM,CAAChB,KAAK,CAACmB,KAAK,IACjCF,IAAI,CAACG,MAAM,KAAKJ,MAAM,CAAChB,KAAK,CAACoB,MAAM,EACnC;MACAJ,MAAM,CAAChB,KAAK,GAAGiB,IAAI;IACrB;EACF;EACA,MAAMI,GAAG,GAAGR,IAAI,CAACS,eAAe,CAAC,CAAC;EAClC,MAAMC,MAAM,GAAGF,GAAG,CAACG,cAAc,CAAC,CAAC;EACnC;;EAEA,MAAMC,GAAG,GAAG,IAAAC,oCAAoB,EAACb,IAAI,EAAEE,SAAS,CAACY,SAAS,EAAEJ,MAAM,CAAC;EACnE,IAAAK,cAAM,EAACH,GAAG,EAAEV,SAAS,CAACc,QAAQ,CAAC;EAC/B,MAAMC,OAAO,GAAGT,GAAG,CAACU,wBAAwB,CAAC,CAAC;EAC9C;EACA;EACAb,WAAW,CAACc,cAAc,CAAClB,QAAQ,EAAE,SAAS,EAAEgB,OAAO,CAAC;AAC1D,CAAC;AAED,MAAMG,kBAAkB,GAAGA,CACzBnB,QAAgB,EAChBoB,QAAqB,EACrBlB,MAA4B,KACzB;EACH,SAAS;;EAET;EACA,IAAIA,MAAM,EAAE;IACV,MAAMC,IAAI,GAAGC,WAAW,CAACD,IAAI,CAACH,QAAQ,CAAC;IACvC,IACEG,IAAI,CAACE,KAAK,KAAKH,MAAM,CAAChB,KAAK,CAACmB,KAAK,IACjCF,IAAI,CAACG,MAAM,KAAKJ,MAAM,CAAChB,KAAK,CAACoB,MAAM,EACnC;MACAJ,MAAM,CAAChB,KAAK,GAAGiB,IAAI;IACrB;EACF;EACA,MAAMa,OAAO,GAAGI,QAAQ,CAACC,IAAI,CAAC,CAAC;EAC/B;EACA;EACAjB,WAAW,CAACc,cAAc,CAAClB,QAAQ,EAAE,SAAS,EAAEgB,OAAO,CAAC;AAC1D,CAAC;AAEM,MAAeM,SAAS,CAAC;EAK9BC,WAAWA,CAAWxB,IAAU,EAAE;IAAA,KAAZA,IAAU,GAAVA,IAAU;IAAAnB,eAAA,gBAJR,EAAE;IAAAA,eAAA,oBACc,IAAI;IAAAA,eAAA,oBACtB,KAAK;EAEQ;EAEnC,IAAI4C,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACC,KAAK;EACnB;EAEA,IAAID,IAAIA,CAACtC,KAAa,EAAE;IACtB,IAAI,CAACuC,KAAK,GAAGvC,KAAK;EACpB;EAEAwC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACC,SAAS,GAAG,KAAK;EACxB;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACD,SAAS,GAAG,IAAI;EACvB;EAEAE,YAAYA,CAACpB,MAAgB,EAAE;IAC7B,IAAI,CAAC,IAAI,CAACR,SAAS,EAAE;MACnB,MAAM,IAAI6B,KAAK,CAAC,sBAAsB,CAAC;IACzC;IACA,MAAMnB,GAAG,GAAG,IAAAC,oCAAoB,EAC9B,IAAI,CAACb,IAAI,EACT,IAAI,CAACE,SAAS,CAACY,SAAS,EACxBJ,MACF,CAAC;IACD,IAAAK,cAAM,EAACH,GAAG,EAAE,IAAI,CAACV,SAAS,CAACc,QAAQ,CAAC;EACtC;AAGF;AAACgB,OAAA,CAAAT,SAAA,GAAAA,SAAA;AAED,MAAMU,eAAe,SAASV,SAAS,CAAC;EACtCC,WAAWA,CACTxB,IAAU,EACFC,QAAgB,EAChBE,MAA4B,EACpC;IACA,KAAK,CAACH,IAAI,CAAC;IAAC,KAHJC,QAAgB,GAAhBA,QAAgB;IAAA,KAChBE,MAA4B,GAA5BA,MAA4B;EAGtC;EAEA+B,MAAMA,CAAA,EAAG;IACP,MAAMb,QAAQ,GAAG,IAAIc,kBAAQ,CAAC,CAAC;IAC/B,IAAAC,cAAK,EAACf,QAAQ,EAAE,IAAI,CAACI,IAAI,CAAC;IAC1B,IAAI,CAACvB,SAAS,GAAGmB,QAAQ,CAACgB,YAAY,CAAC,CAAC;IACxC,MAAMC,UAAU,GAAG,IAAI,CAACrC,QAAQ,KAAK,CAAC,CAAC;IACvC,IAAIqC,UAAU,EAAE;MACd,IAAI,IAAI,CAACnC,MAAM,EAAE;QACf,MAAMC,IAAI,GAAGC,WAAW,CAACD,IAAI,CAAC,IAAI,CAACH,QAAQ,CAAC;QAC5C,IACEG,IAAI,CAACE,KAAK,KAAK,IAAI,CAACH,MAAM,CAAChB,KAAK,CAACmB,KAAK,IACtCF,IAAI,CAACG,MAAM,KAAK,IAAI,CAACJ,MAAM,CAAChB,KAAK,CAACoB,MAAM,EACxC;UACA,IAAI,CAACJ,MAAM,CAAChB,KAAK,GAAGiB,IAAI;QAC1B;MACF;MACA,MAAMI,GAAG,GAAG,IAAI,CAACR,IAAI,CAACS,eAAe,CAAC,CAAC;MACvC,MAAMC,MAAM,GAAGF,GAAG,CAACG,cAAc,CAAC,CAAC;MACnC,IAAI,CAACmB,YAAY,CAACpB,MAAM,CAAC;MACzB,MAAMO,OAAO,GAAGT,GAAG,CAACU,wBAAwB,CAAC,CAAC;MAC9Cb,WAAW,CAACc,cAAc,CAAC,IAAI,CAAClB,QAAQ,EAAE,SAAS,EAAEgB,OAAO,CAAC;IAC/D;EACF;AACF;AAEA,MAAMsB,mBAAmB,SAAShB,SAAS,CAAC;EAG1CC,WAAWA,CACTxB,IAAU,EACFC,QAAgB,EAChBE,MAA4B,EACpC;IACA,KAAK,CAACH,IAAI,CAAC;IAAC,KAHJC,QAAgB,GAAhBA,QAAgB;IAAA,KAChBE,MAA4B,GAA5BA,MAA4B;IAAAtB,eAAA,mBALJ,IAAI;EAQtC;EAEAqD,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACM,QAAQ,KAAK,IAAI,EAAE;MAC1BC,wBAAG,CAACC,UAAU,CAAC,IAAI,CAACF,QAAQ,CAAC;IAC/B;IACA,IAAI,IAAI,CAACZ,SAAS,EAAE;MAClB;IACF;IACA,MAAMP,QAAQ,GAAG,IAAIc,kBAAQ,CAAC,CAAC;IAC/B,IAAAC,cAAK,EAACf,QAAQ,EAAE,IAAI,CAACI,IAAI,CAAC;IAC1B,MAAMkB,MAAM,GAAGtB,QAAQ,CAACgB,YAAY,CAAC,CAAC;IACtC,MAAM;MAAEO;IAAgB,CAAC,GAAGD,MAAM;IAClC,IAAI,CAACzC,SAAS,GAAG;MACfc,QAAQ,EAAE2B,MAAM,CAAC3B,QAAQ;MACzBF,SAAS,EAAE6B,MAAM,CAAC7B;IACpB,CAAC;IACD,MAAM;MAAEb,QAAQ;MAAED,IAAI;MAAEE;IAAU,CAAC,GAAG,IAAI;IAC1C,IAAI0C,eAAe,CAACxC,IAAI,GAAG,CAAC,EAAE;MAC5B,IAAI,CAACoC,QAAQ,GAAGC,wBAAG,CAACI,WAAW,CAAC,MAAM;QACpC,SAAS;;QACT9C,YAAY,CAACC,IAAI,EAAEC,QAAQ,EAAEC,SAAU,CAAC;MAC1C,CAAC,EAAE4C,KAAK,CAACC,IAAI,CAACH,eAAe,CAAC,CAAC;IACjC;IACAH,wBAAG,CAACO,OAAO,CAAC,MAAM;MAChB,SAAS;;MACTjD,YAAY,CAACC,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAG,IAAI,CAACC,MAAM,CAAC;IACvD,CAAC,CAAC,CAAC,CAAC;EACN;AACF;AAEA,MAAM8C,yBAAyB,SAAS1B,SAAS,CAAC;EAGhDC,WAAWA,CACTxB,IAAU,EACFC,QAAgB,EAChBE,MAA4B,EACpC;IACA,KAAK,CAACH,IAAI,CAAC;IAAC,KAHJC,QAAgB,GAAhBA,QAAgB;IAAA,KAChBE,MAA4B,GAA5BA,MAA4B;IAAAtB,eAAA,mBALJ,IAAI;EAQtC;EAEAqD,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACM,QAAQ,KAAK,IAAI,EAAE;MAC1BC,wBAAG,CAACC,UAAU,CAAC,IAAI,CAACF,QAAQ,CAAC;IAC/B;IACA,IAAI,IAAI,CAACZ,SAAS,EAAE;MAClB;IACF;IACA,MAAM;MAAE3B,QAAQ;MAAED;IAAK,CAAC,GAAG,IAAI;IAC/B,MAAMqB,QAAQ,GAAG,IAAI6B,sCAAkB,CAAClD,IAAI,CAAC;IAC7C,IAAAoC,cAAK,EAACf,QAAQ,EAAE,IAAI,CAACI,IAAI,CAAC;IAC1B,MAAM0B,YAAY,GAAG9B,QAAQ,CAAC+B,eAAe,CAAC,CAAC;IAC/C,MAAMC,cAAc,GAAGhC,QAAQ,CAACiC,WAAW,CAAC,CAAC;IAC7Cb,wBAAG,CAACO,OAAO,CAAE7C,MAA4B,IAAK;MAC5C,SAAS;;MACTiB,kBAAkB,CAACnB,QAAQ,EAAEoD,cAAc,EAAElD,MAAM,CAAC;IACtD,CAAC,CAAC,CAAC,IAAI,CAACA,MAAM,CAAC;IACf,IAAIgD,YAAY,CAACI,MAAM,GAAG,CAAC,EAAE;MAC3B,MAAM;QAAEpD;MAAO,CAAC,GAAG,IAAI;MACvB,IAAI,CAACqC,QAAQ,GAAGC,wBAAG,CAACI,WAAW,CAAC,MAAM;QACpC,SAAS;;QACTQ,cAAc,CAACG,YAAY,CAACL,YAAY,CAAC;QACzC/B,kBAAkB,CAACnB,QAAQ,EAAEoD,cAAc,EAAElD,MAAM,CAAC;MACtD,CAAC,EAAEgD,YAAY,CAAC;IAClB;EACF;AACF;AAEO,MAAMM,eAAe,GAAGA,CAC7BzD,IAAU,EACVC,QAAgB,EAChBE,MAA4B,KACzB;EACH,MAAMuD,GAAG,GAAGC,MAAM,CAACtD,WAAW,IAAIsD,MAAM,CAACtD,WAAW,CAACqD,GAAG;EACxD,IAAIE,+BAAgB,IAAI3D,QAAQ,KAAK,CAAC,CAAC,EAAE;IACvC,IAAI,CAACyD,GAAG,EAAE;MACR,OAAO,IAAIT,yBAAyB,CAACjD,IAAI,EAAEC,QAAQ,EAAEE,MAAM,CAAC;IAC9D,CAAC,MAAM;MACL,OAAO,IAAIoC,mBAAmB,CAACvC,IAAI,EAAEC,QAAQ,EAAEE,MAAM,CAAC;IACxD;EACF,CAAC,MAAM;IACL,OAAO,IAAI8B,eAAe,CAACjC,IAAI,EAAEC,QAAQ,CAAC;EAC5C;AACF,CAAC;AAAC+B,OAAA,CAAAyB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import type { ReactNode } from "react";
|
2
|
-
import type {
|
2
|
+
import type { SharedValue } from "react-native-reanimated";
|
3
|
+
import type { SkCanvas, Skia, SkSize } from "../skia/types";
|
3
4
|
import { NodeType } from "../dom/types";
|
4
5
|
import "./Elements";
|
5
6
|
export declare class SkiaSGRoot {
|
6
7
|
Skia: Skia;
|
7
8
|
private root;
|
8
9
|
private container;
|
9
|
-
constructor(Skia: Skia, nativeId?: number);
|
10
|
+
constructor(Skia: Skia, nativeId?: number, onSize?: SharedValue<SkSize>);
|
10
11
|
get sg(): {
|
11
12
|
type: NodeType;
|
12
13
|
props: {};
|
@@ -20,11 +20,11 @@ skiaReconciler.injectIntoDevTools({
|
|
20
20
|
rendererPackageName: "react-native-skia"
|
21
21
|
});
|
22
22
|
class SkiaSGRoot {
|
23
|
-
constructor(Skia, nativeId = -1) {
|
23
|
+
constructor(Skia, nativeId = -1, onSize) {
|
24
24
|
this.Skia = Skia;
|
25
25
|
_defineProperty(this, "root", void 0);
|
26
26
|
_defineProperty(this, "container", void 0);
|
27
|
-
this.container = (0, _Container.createContainer)(Skia, nativeId);
|
27
|
+
this.container = (0, _Container.createContainer)(Skia, nativeId, onSize);
|
28
28
|
this.root = skiaReconciler.createContainer(this.container, 0, null, true, null, "", console.error, null);
|
29
29
|
}
|
30
30
|
get sg() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactReconciler","_interopRequireDefault","require","_types","_HostConfig","_Container","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","skiaReconciler","ReactReconciler","sksgHostConfig","injectIntoDevTools","bundleType","version","rendererPackageName","SkiaSGRoot","constructor","Skia","nativeId","container","createContainer","root","console","error","sg","children","type","NodeType","Group","props","isDeclaration","updateContainer","element","Promise","resolve","debug","render","mount","redraw","drawOnCanvas","canvas","getPicture","recorder","PictureRecorder","beginRecording","finishRecordingAsPicture","unmount","exports"],"sources":["Reconciler.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { OpaqueRoot } from \"react-reconciler\";\nimport ReactReconciler from \"react-reconciler\";\n\nimport type { SkCanvas, Skia } from \"../skia/types\";\nimport { NodeType } from \"../dom/types\";\n\nimport { debug, sksgHostConfig } from \"./HostConfig\";\nimport type { Container } from \"./Container\";\nimport { createContainer } from \"./Container\";\nimport \"./Elements\";\n\nconst skiaReconciler = ReactReconciler(sksgHostConfig);\n\nskiaReconciler.injectIntoDevTools({\n bundleType: 1,\n version: \"0.0.1\",\n rendererPackageName: \"react-native-skia\",\n});\n\nexport class SkiaSGRoot {\n private root: OpaqueRoot;\n private container: Container;\n\n constructor(public Skia: Skia, nativeId = -1) {\n this.container = createContainer(Skia, nativeId);\n this.root = skiaReconciler.createContainer(\n this.container,\n 0,\n null,\n true,\n null,\n \"\",\n console.error,\n null\n );\n }\n\n get sg() {\n const children = this.container.root;\n return { type: NodeType.Group, props: {}, children, isDeclaration: false };\n }\n\n private updateContainer(element: ReactNode) {\n return new Promise((resolve) => {\n skiaReconciler.updateContainer(element, this.root, null, () => {\n debug(\"updateContainer\");\n resolve(true);\n });\n });\n }\n\n async render(element: ReactNode) {\n this.container.mount();\n await this.updateContainer(element);\n this.container.redraw();\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n this.container.drawOnCanvas(canvas);\n }\n\n getPicture() {\n const recorder = this.Skia.PictureRecorder();\n const canvas = recorder.beginRecording();\n this.drawOnCanvas(canvas);\n return recorder.finishRecordingAsPicture();\n }\n\n unmount() {\n this.container.unmount();\n return new Promise((resolve) => {\n skiaReconciler.updateContainer(null, this.root, null, () => {\n debug(\"unmountContainer\");\n resolve(true);\n });\n });\n }\n}\n"],"mappings":";;;;;;
|
1
|
+
{"version":3,"names":["_reactReconciler","_interopRequireDefault","require","_types","_HostConfig","_Container","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","skiaReconciler","ReactReconciler","sksgHostConfig","injectIntoDevTools","bundleType","version","rendererPackageName","SkiaSGRoot","constructor","Skia","nativeId","onSize","container","createContainer","root","console","error","sg","children","type","NodeType","Group","props","isDeclaration","updateContainer","element","Promise","resolve","debug","render","mount","redraw","drawOnCanvas","canvas","getPicture","recorder","PictureRecorder","beginRecording","finishRecordingAsPicture","unmount","exports"],"sources":["Reconciler.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { OpaqueRoot } from \"react-reconciler\";\nimport type { SharedValue } from \"react-native-reanimated\";\nimport ReactReconciler from \"react-reconciler\";\n\nimport type { SkCanvas, Skia, SkSize } from \"../skia/types\";\nimport { NodeType } from \"../dom/types\";\n\nimport { debug, sksgHostConfig } from \"./HostConfig\";\nimport type { Container } from \"./Container\";\nimport { createContainer } from \"./Container\";\n\nimport \"./Elements\";\n\nconst skiaReconciler = ReactReconciler(sksgHostConfig);\n\nskiaReconciler.injectIntoDevTools({\n bundleType: 1,\n version: \"0.0.1\",\n rendererPackageName: \"react-native-skia\",\n});\n\nexport class SkiaSGRoot {\n private root: OpaqueRoot;\n private container: Container;\n\n constructor(public Skia: Skia, nativeId = -1, onSize?: SharedValue<SkSize>) {\n this.container = createContainer(Skia, nativeId, onSize);\n this.root = skiaReconciler.createContainer(\n this.container,\n 0,\n null,\n true,\n null,\n \"\",\n console.error,\n null\n );\n }\n\n get sg() {\n const children = this.container.root;\n return { type: NodeType.Group, props: {}, children, isDeclaration: false };\n }\n\n private updateContainer(element: ReactNode) {\n return new Promise((resolve) => {\n skiaReconciler.updateContainer(element, this.root, null, () => {\n debug(\"updateContainer\");\n resolve(true);\n });\n });\n }\n\n async render(element: ReactNode) {\n this.container.mount();\n await this.updateContainer(element);\n this.container.redraw();\n }\n\n drawOnCanvas(canvas: SkCanvas) {\n this.container.drawOnCanvas(canvas);\n }\n\n getPicture() {\n const recorder = this.Skia.PictureRecorder();\n const canvas = recorder.beginRecording();\n this.drawOnCanvas(canvas);\n return recorder.finishRecordingAsPicture();\n }\n\n unmount() {\n this.container.unmount();\n return new Promise((resolve) => {\n skiaReconciler.updateContainer(null, this.root, null, () => {\n debug(\"unmountContainer\");\n resolve(true);\n });\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -12,6 +12,7 @@ export interface ISkiaViewApi {
|
|
12
12
|
requestRedraw: (nativeId: number) => void;
|
13
13
|
makeImageSnapshot: (nativeId: number, rect?: SkRect) => SkImage;
|
14
14
|
makeImageSnapshotAsync: (nativeId: number, rect?: SkRect) => Promise<SkImage>;
|
15
|
+
size: (nativeId: number) => SkSize;
|
15
16
|
}
|
16
17
|
export interface SkiaBaseViewProps extends ViewProps {
|
17
18
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport type { Node } from \"../dom/types\";\nimport type { SkImage, SkPicture, SkRect, SkSize } from \"../skia/types\";\n\nexport type NativeSkiaViewProps = ViewProps & {\n debug?: boolean;\n opaque?: boolean;\n};\n\nexport interface ISkiaViewApi {\n web?: boolean;\n setJsiProperty: <T>(nativeId: number, name: string, value: T) => void;\n requestRedraw: (nativeId: number) => void;\n makeImageSnapshot: (nativeId: number, rect?: SkRect) => SkImage;\n makeImageSnapshotAsync: (nativeId: number, rect?: SkRect) => Promise<SkImage>;\n}\n\nexport interface SkiaBaseViewProps extends ViewProps {\n /**\n * When set to true the view will display information about the\n * average time it takes to render.\n */\n debug?: boolean;\n /**\n * Pass an animated value to the onSize property to get updates when\n * the Skia view is resized.\n */\n onSize?: SharedValue<SkSize>;\n\n opaque?: boolean;\n}\n\nexport interface SkiaPictureViewNativeProps extends SkiaBaseViewProps {\n picture?: SkPicture;\n}\n\nexport interface SkiaDomViewNativeProps extends SkiaBaseViewProps {\n root?: Node<unknown>;\n}\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewProps } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport type { Node } from \"../dom/types\";\nimport type { SkImage, SkPicture, SkRect, SkSize } from \"../skia/types\";\n\nexport type NativeSkiaViewProps = ViewProps & {\n debug?: boolean;\n opaque?: boolean;\n};\n\nexport interface ISkiaViewApi {\n web?: boolean;\n setJsiProperty: <T>(nativeId: number, name: string, value: T) => void;\n requestRedraw: (nativeId: number) => void;\n makeImageSnapshot: (nativeId: number, rect?: SkRect) => SkImage;\n makeImageSnapshotAsync: (nativeId: number, rect?: SkRect) => Promise<SkImage>;\n size: (nativeId: number) => SkSize;\n}\n\nexport interface SkiaBaseViewProps extends ViewProps {\n /**\n * When set to true the view will display information about the\n * average time it takes to render.\n */\n debug?: boolean;\n /**\n * Pass an animated value to the onSize property to get updates when\n * the Skia view is resized.\n */\n onSize?: SharedValue<SkSize>;\n\n opaque?: boolean;\n}\n\nexport interface SkiaPictureViewNativeProps extends SkiaBaseViewProps {\n picture?: SkPicture;\n}\n\nexport interface SkiaDomViewNativeProps extends SkiaBaseViewProps {\n root?: Node<unknown>;\n}\n"],"mappings":"","ignoreList":[]}
|