@shopify/react-native-skia 1.9.0 → 1.10.0

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 (96) hide show
  1. package/cpp/api/JsiSkCanvas.h +1 -1
  2. package/lib/commonjs/index.d.ts +1 -1
  3. package/lib/commonjs/index.js +8 -8
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/renderer/Canvas.d.ts +9 -10
  6. package/lib/commonjs/renderer/Canvas.js +67 -59
  7. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  8. package/lib/commonjs/renderer/CanvasOld.d.ts +11 -0
  9. package/lib/commonjs/renderer/CanvasOld.js +96 -0
  10. package/lib/commonjs/renderer/CanvasOld.js.map +1 -0
  11. package/lib/commonjs/sksg/Container.js +12 -8
  12. package/lib/commonjs/sksg/Container.js.map +1 -1
  13. package/lib/commonjs/sksg/HostConfig2.d.ts +19 -0
  14. package/lib/commonjs/sksg/HostConfig2.js +159 -0
  15. package/lib/commonjs/sksg/HostConfig2.js.map +1 -0
  16. package/lib/commonjs/sksg/Recorder/Core.d.ts +42 -37
  17. package/lib/commonjs/sksg/Recorder/Core.js +46 -38
  18. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  19. package/lib/commonjs/sksg/Recorder/Player.js +6 -2
  20. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  21. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +4 -0
  22. package/lib/commonjs/sksg/Recorder/Recorder.js +14 -2
  23. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  24. package/lib/commonjs/sksg/Recorder/Visitor.js +6 -0
  25. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
  26. package/lib/module/index.d.ts +1 -1
  27. package/lib/module/index.js +1 -1
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/module/renderer/Canvas.d.ts +9 -10
  30. package/lib/module/renderer/Canvas.js +65 -55
  31. package/lib/module/renderer/Canvas.js.map +1 -1
  32. package/lib/module/renderer/CanvasOld.d.ts +11 -0
  33. package/lib/module/renderer/CanvasOld.js +87 -0
  34. package/lib/module/renderer/CanvasOld.js.map +1 -0
  35. package/lib/module/sksg/Container.js +12 -8
  36. package/lib/module/sksg/Container.js.map +1 -1
  37. package/lib/module/sksg/HostConfig2.d.ts +19 -0
  38. package/lib/module/sksg/HostConfig2.js +152 -0
  39. package/lib/module/sksg/HostConfig2.js.map +1 -0
  40. package/lib/module/sksg/Recorder/Core.d.ts +42 -37
  41. package/lib/module/sksg/Recorder/Core.js +44 -37
  42. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  43. package/lib/module/sksg/Recorder/Player.js +7 -3
  44. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  45. package/lib/module/sksg/Recorder/Recorder.d.ts +4 -0
  46. package/lib/module/sksg/Recorder/Recorder.js +14 -2
  47. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  48. package/lib/module/sksg/Recorder/Visitor.js +6 -0
  49. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  50. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +2 -2
  51. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +3 -0
  52. package/lib/typescript/lib/commonjs/sksg/HostConfig2.d.ts +44 -0
  53. package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +1 -0
  54. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +2 -0
  55. package/lib/typescript/lib/module/index.d.ts +1 -1
  56. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -3
  57. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +3 -0
  58. package/lib/typescript/lib/module/sksg/HostConfig2.d.ts +43 -0
  59. package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +1 -0
  60. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +2 -0
  61. package/lib/typescript/src/index.d.ts +1 -1
  62. package/lib/typescript/src/renderer/Canvas.d.ts +9 -10
  63. package/lib/typescript/src/renderer/CanvasOld.d.ts +11 -0
  64. package/lib/typescript/src/sksg/HostConfig2.d.ts +19 -0
  65. package/lib/typescript/src/sksg/Recorder/Core.d.ts +42 -37
  66. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +4 -0
  67. package/package.json +3 -2
  68. package/src/index.ts +1 -1
  69. package/src/renderer/Canvas.tsx +80 -78
  70. package/src/renderer/CanvasOld.tsx +126 -0
  71. package/src/sksg/Container.ts +7 -4
  72. package/src/sksg/HostConfig2.ts +247 -0
  73. package/src/sksg/Recorder/Core.ts +11 -0
  74. package/src/sksg/Recorder/Player.ts +7 -3
  75. package/src/sksg/Recorder/Recorder.ts +16 -2
  76. package/src/sksg/Recorder/Visitor.ts +6 -0
  77. package/lib/commonjs/renderer/Canvas2.d.ts +0 -10
  78. package/lib/commonjs/renderer/Canvas2.js +0 -104
  79. package/lib/commonjs/renderer/Canvas2.js.map +0 -1
  80. package/lib/commonjs/renderer/Canvas2.web.d.ts +0 -3
  81. package/lib/commonjs/renderer/Canvas2.web.js +0 -9
  82. package/lib/commonjs/renderer/Canvas2.web.js.map +0 -1
  83. package/lib/module/renderer/Canvas2.d.ts +0 -10
  84. package/lib/module/renderer/Canvas2.js +0 -97
  85. package/lib/module/renderer/Canvas2.js.map +0 -1
  86. package/lib/module/renderer/Canvas2.web.d.ts +0 -3
  87. package/lib/module/renderer/Canvas2.web.js +0 -3
  88. package/lib/module/renderer/Canvas2.web.js.map +0 -1
  89. package/lib/typescript/lib/commonjs/renderer/Canvas2.d.ts +0 -3
  90. package/lib/typescript/lib/commonjs/renderer/Canvas2.web.d.ts +0 -2
  91. package/lib/typescript/lib/module/renderer/Canvas2.d.ts +0 -1
  92. package/lib/typescript/lib/module/renderer/Canvas2.web.d.ts +0 -1
  93. package/lib/typescript/src/renderer/Canvas2.d.ts +0 -10
  94. package/lib/typescript/src/renderer/Canvas2.web.d.ts +0 -3
  95. package/src/renderer/Canvas2.tsx +0 -128
  96. package/src/renderer/Canvas2.web.tsx +0 -6
@@ -196,6 +196,9 @@ const pushPaints = (recorder: Recorder, paints: Node<any>[]) => {
196
196
  };
197
197
 
198
198
  const visitNode = (recorder: Recorder, node: Node<any>) => {
199
+ if (node.type === NodeType.Group) {
200
+ recorder.saveGroup();
201
+ }
199
202
  const { props } = node;
200
203
  const {
201
204
  colorFilters,
@@ -315,6 +318,9 @@ const visitNode = (recorder: Recorder, node: Node<any>) => {
315
318
  if (shouldRestore) {
316
319
  recorder.restoreCTM();
317
320
  }
321
+ if (node.type === NodeType.Group) {
322
+ recorder.restoreGroup();
323
+ }
318
324
  };
319
325
 
320
326
  export const visit = (recorder: Recorder, root: Node[]) => {
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
- export interface Canvas2Props extends ViewProps {
5
- debug?: boolean;
6
- opaque?: boolean;
7
- onSize?: SharedValue<SkSize>;
8
- mode?: "continuous" | "default";
9
- }
10
- export declare const Canvas2: import("react").ForwardRefExoticComponent<Canvas2Props & import("react").RefAttributes<unknown>>;
@@ -1,104 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Canvas2 = void 0;
7
- var _react = require("react");
8
- var _SkiaViewNativeId = require("../views/SkiaViewNativeId");
9
- var _SkiaPictureViewNativeComponent = _interopRequireDefault(require("../specs/SkiaPictureViewNativeComponent"));
10
- var _Reconciler = require("../sksg/Reconciler");
11
- var _skia = require("../skia");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- 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); }
14
- const NativeSkiaPictureView = _SkiaPictureViewNativeComponent.default;
15
-
16
- // TODO: no need to go through the JS thread for this
17
- const useOnSizeEvent = (resultValue, onLayout) => {
18
- return (0, _react.useCallback)(event => {
19
- if (onLayout) {
20
- onLayout(event);
21
- }
22
- const {
23
- width,
24
- height
25
- } = event.nativeEvent.layout;
26
- if (resultValue) {
27
- resultValue.value = {
28
- width,
29
- height
30
- };
31
- }
32
- }, [onLayout, resultValue]);
33
- };
34
- const Canvas2 = exports.Canvas2 = /*#__PURE__*/(0, _react.forwardRef)(({
35
- mode,
36
- debug,
37
- opaque,
38
- children,
39
- onSize,
40
- onLayout: _onLayout,
41
- ...viewProps
42
- }, ref) => {
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, nativeId), [nativeId]);
52
-
53
- // Render effects
54
- (0, _react.useEffect)(() => {
55
- root.render(children);
56
- }, [children, root]);
57
- (0, _react.useEffect)(() => {
58
- return () => {
59
- root.unmount();
60
- };
61
- }, [root]);
62
- const requestRedraw = (0, _react.useCallback)(() => {
63
- rafId.current = requestAnimationFrame(() => {
64
- root.render(children);
65
- if (mode === "continuous") {
66
- requestRedraw();
67
- }
68
- });
69
- }, [children, mode, root]);
70
- (0, _react.useEffect)(() => {
71
- if (mode === "continuous") {
72
- requestRedraw();
73
- }
74
- return () => {
75
- if (rafId.current !== null) {
76
- cancelAnimationFrame(rafId.current);
77
- }
78
- };
79
- }, [mode, requestRedraw]);
80
-
81
- // Component methods
82
- (0, _react.useImperativeHandle)(ref, () => ({
83
- makeImageSnapshot: rect => {
84
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
85
- },
86
- makeImageSnapshotAsync: rect => {
87
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
88
- },
89
- redraw: () => {
90
- SkiaViewApi.requestRedraw(nativeId);
91
- },
92
- getNativeId: () => {
93
- return nativeId;
94
- }
95
- }));
96
- return /*#__PURE__*/React.createElement(NativeSkiaPictureView, _extends({
97
- collapsable: false,
98
- nativeID: `${nativeId}`,
99
- debug: debug,
100
- opaque: opaque,
101
- onLayout: onLayout
102
- }, viewProps));
103
- });
104
- //# sourceMappingURL=Canvas2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_react","require","_SkiaViewNativeId","_SkiaPictureViewNativeComponent","_interopRequireDefault","_Reconciler","_skia","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","NativeSkiaPictureView","SkiaPictureViewNativeComponent","useOnSizeEvent","resultValue","onLayout","useCallback","event","width","height","nativeEvent","layout","value","Canvas2","exports","forwardRef","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","rafId","useRef","nativeId","useMemo","SkiaViewNativeId","current","root","SkiaSGRoot","Skia","useEffect","render","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","useImperativeHandle","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","getNativeId","React","createElement","collapsable","nativeID"],"sources":["Canvas2.tsx"],"sourcesContent":["import {\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 SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\n\nconst NativeSkiaPictureView = SkiaPictureViewNativeComponent;\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 Canvas2Props extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas2 = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: Canvas2Props,\n ref\n ) => {\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, nativeId), [nativeId]);\n\n // Render effects\n useEffect(() => {\n root.render(children);\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 (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 SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <NativeSkiaPictureView\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,3 +0,0 @@
1
- import type { CanvasProps } from "./Canvas";
2
- export type Canvas2Props = CanvasProps;
3
- export declare const Canvas2: import("react").FunctionComponent<CanvasProps & import("react").RefAttributes<import("..").SkiaDomView>>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Canvas2 = void 0;
7
- var _Canvas = require("./Canvas");
8
- const Canvas2 = exports.Canvas2 = _Canvas.Canvas;
9
- //# sourceMappingURL=Canvas2.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_Canvas","require","Canvas2","exports","Canvas"],"sources":["Canvas2.web.tsx"],"sourcesContent":["import type { CanvasProps } from \"./Canvas\";\nimport { Canvas } from \"./Canvas\";\n\nexport type Canvas2Props = CanvasProps;\n\nexport const Canvas2 = Canvas;\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,OAAA;AAIO,MAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,cAAM","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
- export interface Canvas2Props extends ViewProps {
5
- debug?: boolean;
6
- opaque?: boolean;
7
- onSize?: SharedValue<SkSize>;
8
- mode?: "continuous" | "default";
9
- }
10
- export declare const Canvas2: import("react").ForwardRefExoticComponent<Canvas2Props & import("react").RefAttributes<unknown>>;
@@ -1,97 +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 { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from "react";
3
- import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
4
- import SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
5
- import { SkiaSGRoot } from "../sksg/Reconciler";
6
- import { Skia } from "../skia";
7
- const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
8
-
9
- // TODO: no need to go through the JS thread for this
10
- const useOnSizeEvent = (resultValue, onLayout) => {
11
- return useCallback(event => {
12
- if (onLayout) {
13
- onLayout(event);
14
- }
15
- const {
16
- width,
17
- height
18
- } = event.nativeEvent.layout;
19
- if (resultValue) {
20
- resultValue.value = {
21
- width,
22
- height
23
- };
24
- }
25
- }, [onLayout, resultValue]);
26
- };
27
- export const Canvas2 = /*#__PURE__*/forwardRef(({
28
- mode,
29
- debug,
30
- opaque,
31
- children,
32
- onSize,
33
- onLayout: _onLayout,
34
- ...viewProps
35
- }, ref) => {
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, nativeId), [nativeId]);
45
-
46
- // Render effects
47
- useEffect(() => {
48
- root.render(children);
49
- }, [children, root]);
50
- useEffect(() => {
51
- return () => {
52
- root.unmount();
53
- };
54
- }, [root]);
55
- const requestRedraw = useCallback(() => {
56
- rafId.current = requestAnimationFrame(() => {
57
- root.render(children);
58
- if (mode === "continuous") {
59
- requestRedraw();
60
- }
61
- });
62
- }, [children, mode, root]);
63
- useEffect(() => {
64
- if (mode === "continuous") {
65
- requestRedraw();
66
- }
67
- return () => {
68
- if (rafId.current !== null) {
69
- cancelAnimationFrame(rafId.current);
70
- }
71
- };
72
- }, [mode, requestRedraw]);
73
-
74
- // Component methods
75
- useImperativeHandle(ref, () => ({
76
- makeImageSnapshot: rect => {
77
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
78
- },
79
- makeImageSnapshotAsync: rect => {
80
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
81
- },
82
- redraw: () => {
83
- SkiaViewApi.requestRedraw(nativeId);
84
- },
85
- getNativeId: () => {
86
- return nativeId;
87
- }
88
- }));
89
- return /*#__PURE__*/React.createElement(NativeSkiaPictureView, _extends({
90
- collapsable: false,
91
- nativeID: `${nativeId}`,
92
- debug: debug,
93
- opaque: opaque,
94
- onLayout: onLayout
95
- }, viewProps));
96
- });
97
- //# sourceMappingURL=Canvas2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["forwardRef","useCallback","useEffect","useImperativeHandle","useMemo","useRef","SkiaViewNativeId","SkiaPictureViewNativeComponent","SkiaSGRoot","Skia","NativeSkiaPictureView","useOnSizeEvent","resultValue","onLayout","event","width","height","nativeEvent","layout","value","Canvas2","mode","debug","opaque","children","onSize","_onLayout","viewProps","ref","rafId","nativeId","current","root","render","unmount","requestRedraw","requestAnimationFrame","cancelAnimationFrame","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","getNativeId","React","createElement","_extends","collapsable","nativeID"],"sources":["Canvas2.tsx"],"sourcesContent":["import {\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 SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\n\nconst NativeSkiaPictureView = SkiaPictureViewNativeComponent;\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 Canvas2Props extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n mode?: \"continuous\" | \"default\";\n}\n\nexport const Canvas2 = forwardRef(\n (\n {\n mode,\n debug,\n opaque,\n children,\n onSize,\n onLayout: _onLayout,\n ...viewProps\n }: Canvas2Props,\n ref\n ) => {\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, nativeId), [nativeId]);\n\n // Render effects\n useEffect(() => {\n root.render(children);\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 (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 SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n }));\n return (\n <NativeSkiaPictureView\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,3 +0,0 @@
1
- import type { CanvasProps } from "./Canvas";
2
- export type Canvas2Props = CanvasProps;
3
- export declare const Canvas2: import("react").FunctionComponent<CanvasProps & import("react").RefAttributes<import("..").SkiaDomView>>;
@@ -1,3 +0,0 @@
1
- import { Canvas } from "./Canvas";
2
- export const Canvas2 = Canvas;
3
- //# sourceMappingURL=Canvas2.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Canvas","Canvas2"],"sources":["Canvas2.web.tsx"],"sourcesContent":["import type { CanvasProps } from \"./Canvas\";\nimport { Canvas } from \"./Canvas\";\n\nexport type Canvas2Props = CanvasProps;\n\nexport const Canvas2 = Canvas;\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,UAAU;AAIjC,OAAO,MAAMC,OAAO,GAAGD,MAAM","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- export const __esModule: boolean;
2
- export const Canvas2: _react.ForwardRefExoticComponent<_react.RefAttributes<any>>;
3
- import _react = require("react");
@@ -1,2 +0,0 @@
1
- export const __esModule: boolean;
2
- export { Canvas as Canvas2 };
@@ -1 +0,0 @@
1
- export const Canvas2: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
@@ -1 +0,0 @@
1
- export const Canvas2: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
@@ -1,10 +0,0 @@
1
- import type { ViewProps } from "react-native";
2
- import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
- export interface Canvas2Props extends ViewProps {
5
- debug?: boolean;
6
- opaque?: boolean;
7
- onSize?: SharedValue<SkSize>;
8
- mode?: "continuous" | "default";
9
- }
10
- export declare const Canvas2: import("react").ForwardRefExoticComponent<Canvas2Props & import("react").RefAttributes<unknown>>;
@@ -1,3 +0,0 @@
1
- import type { CanvasProps } from "./Canvas";
2
- export type Canvas2Props = CanvasProps;
3
- export declare const Canvas2: import("react").FunctionComponent<CanvasProps & import("react").RefAttributes<import("..").SkiaDomView>>;
@@ -1,128 +0,0 @@
1
- import {
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 SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
14
- import type { SkRect, SkSize } from "../skia/types";
15
- import { SkiaSGRoot } from "../sksg/Reconciler";
16
- import { Skia } from "../skia";
17
- import type { SkiaBaseViewProps } from "../views";
18
-
19
- const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
20
-
21
- // TODO: no need to go through the JS thread for this
22
- const useOnSizeEvent = (
23
- resultValue: SkiaBaseViewProps["onSize"],
24
- onLayout?: (event: LayoutChangeEvent) => void
25
- ) => {
26
- return useCallback(
27
- (event: LayoutChangeEvent) => {
28
- if (onLayout) {
29
- onLayout(event);
30
- }
31
- const { width, height } = event.nativeEvent.layout;
32
-
33
- if (resultValue) {
34
- resultValue.value = { width, height };
35
- }
36
- },
37
- [onLayout, resultValue]
38
- );
39
- };
40
-
41
- export interface Canvas2Props extends ViewProps {
42
- debug?: boolean;
43
- opaque?: boolean;
44
- onSize?: SharedValue<SkSize>;
45
- mode?: "continuous" | "default";
46
- }
47
-
48
- export const Canvas2 = forwardRef(
49
- (
50
- {
51
- mode,
52
- debug,
53
- opaque,
54
- children,
55
- onSize,
56
- onLayout: _onLayout,
57
- ...viewProps
58
- }: Canvas2Props,
59
- ref
60
- ) => {
61
- const rafId = useRef<number | null>(null);
62
- const onLayout = useOnSizeEvent(onSize, _onLayout);
63
- // Native ID
64
- const nativeId = useMemo(() => {
65
- return SkiaViewNativeId.current++;
66
- }, []);
67
-
68
- // Root
69
- const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);
70
-
71
- // Render effects
72
- useEffect(() => {
73
- root.render(children);
74
- }, [children, root]);
75
-
76
- useEffect(() => {
77
- return () => {
78
- root.unmount();
79
- };
80
- }, [root]);
81
-
82
- const requestRedraw = useCallback(() => {
83
- rafId.current = requestAnimationFrame(() => {
84
- root.render(children);
85
- if (mode === "continuous") {
86
- requestRedraw();
87
- }
88
- });
89
- }, [children, mode, root]);
90
-
91
- useEffect(() => {
92
- if (mode === "continuous") {
93
- requestRedraw();
94
- }
95
- return () => {
96
- if (rafId.current !== null) {
97
- cancelAnimationFrame(rafId.current);
98
- }
99
- };
100
- }, [mode, requestRedraw]);
101
-
102
- // Component methods
103
- useImperativeHandle(ref, () => ({
104
- makeImageSnapshot: (rect?: SkRect) => {
105
- return SkiaViewApi.makeImageSnapshot(nativeId, rect);
106
- },
107
- makeImageSnapshotAsync: (rect?: SkRect) => {
108
- return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);
109
- },
110
- redraw: () => {
111
- SkiaViewApi.requestRedraw(nativeId);
112
- },
113
- getNativeId: () => {
114
- return nativeId;
115
- },
116
- }));
117
- return (
118
- <NativeSkiaPictureView
119
- collapsable={false}
120
- nativeID={`${nativeId}`}
121
- debug={debug}
122
- opaque={opaque}
123
- onLayout={onLayout}
124
- {...viewProps}
125
- />
126
- );
127
- }
128
- );
@@ -1,6 +0,0 @@
1
- import type { CanvasProps } from "./Canvas";
2
- import { Canvas } from "./Canvas";
3
-
4
- export type Canvas2Props = CanvasProps;
5
-
6
- export const Canvas2 = Canvas;