@shopify/react-native-skia 0.1.236 → 0.1.237
Sign up to get free protection for your applications and to get access to all the features.
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkCanvas.h +36 -0
- package/cpp/api/JsiSkRSXform.h +35 -7
- package/cpp/rnskia/dom/JsiDomApi.h +2 -0
- package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +60 -0
- package/cpp/rnskia/dom/props/RSXformProp.h +52 -0
- package/cpp/rnskia/dom/props/RectProp.h +31 -0
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +2 -1
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +4 -0
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.js +47 -0
- package/lib/commonjs/dom/nodes/drawings/AtlasNode.js.map +1 -0
- package/lib/commonjs/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/commonjs/dom/nodes/drawings/index.js +13 -0
- package/lib/commonjs/dom/nodes/drawings/index.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.d.ts +7 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/dom/types/NodeType.d.ts +1 -0
- package/lib/commonjs/dom/types/NodeType.js +1 -0
- package/lib/commonjs/dom/types/NodeType.js.map +1 -1
- package/lib/commonjs/dom/types/SkDOM.d.ts +2 -1
- package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
- package/lib/commonjs/external/reanimated/buffers.d.ts +5 -0
- package/lib/commonjs/external/reanimated/buffers.js +48 -0
- package/lib/commonjs/external/reanimated/buffers.js.map +1 -0
- package/lib/commonjs/external/reanimated/index.d.ts +1 -0
- package/lib/commonjs/external/reanimated/index.js +13 -0
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/textures.js +3 -17
- package/lib/commonjs/external/reanimated/textures.js.map +1 -1
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +8 -1
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/commonjs/mock/index.js +5 -0
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.d.ts +3 -1
- package/lib/commonjs/renderer/HostComponents.js +3 -0
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/Offscreen.d.ts +4 -2
- package/lib/commonjs/renderer/Offscreen.js +23 -18
- package/lib/commonjs/renderer/Offscreen.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/commonjs/renderer/components/shapes/Atlas.js +17 -0
- package/lib/commonjs/renderer/components/shapes/Atlas.js.map +1 -0
- package/lib/commonjs/renderer/components/shapes/index.d.ts +1 -0
- package/lib/commonjs/renderer/components/shapes/index.js +13 -0
- package/lib/commonjs/renderer/components/shapes/index.js.map +1 -1
- package/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/commonjs/skia/core/AnimatedImage.js +4 -1
- package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
- package/lib/commonjs/skia/core/Data.d.ts +1 -1
- package/lib/commonjs/skia/core/Data.js +11 -4
- package/lib/commonjs/skia/core/Data.js.map +1 -1
- package/lib/commonjs/skia/core/Rect.d.ts +2 -2
- package/lib/commonjs/skia/types/Canvas.d.ts +16 -1
- package/lib/commonjs/skia/types/Canvas.js.map +1 -1
- package/lib/commonjs/skia/types/Image/Image.d.ts +8 -0
- package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
- package/lib/commonjs/skia/types/RSXform.d.ts +7 -1
- package/lib/commonjs/skia/types/RSXform.js.map +1 -1
- package/lib/commonjs/skia/types/Rect.d.ts +4 -0
- package/lib/commonjs/skia/types/Rect.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +3 -2
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +19 -0
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/commonjs/skia/web/JsiSkRSXform.js +33 -2
- package/lib/commonjs/skia/web/JsiSkRSXform.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRect.d.ts +3 -2
- package/lib/commonjs/skia/web/JsiSkRect.js +7 -0
- package/lib/commonjs/skia/web/JsiSkRect.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js +2 -1
- package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +5 -0
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +2 -1
- package/lib/module/dom/nodes/JsiSkDOM.js +5 -1
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/module/dom/nodes/drawings/AtlasNode.js +34 -0
- package/lib/module/dom/nodes/drawings/AtlasNode.js.map +1 -0
- package/lib/module/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/module/dom/nodes/drawings/index.js +1 -0
- package/lib/module/dom/nodes/drawings/index.js.map +1 -1
- package/lib/module/dom/types/Drawings.d.ts +7 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/dom/types/NodeType.d.ts +1 -0
- package/lib/module/dom/types/NodeType.js +1 -0
- package/lib/module/dom/types/NodeType.js.map +1 -1
- package/lib/module/dom/types/SkDOM.d.ts +2 -1
- package/lib/module/dom/types/SkDOM.js.map +1 -1
- package/lib/module/external/reanimated/buffers.d.ts +5 -0
- package/lib/module/external/reanimated/buffers.js +27 -0
- package/lib/module/external/reanimated/buffers.js.map +1 -0
- package/lib/module/external/reanimated/index.d.ts +1 -0
- package/lib/module/external/reanimated/index.js +1 -0
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/textures.js +5 -16
- package/lib/module/external/reanimated/textures.js.map +1 -1
- package/lib/module/external/reanimated/useAnimatedImageValue.js +7 -1
- package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/module/mock/index.js +5 -0
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/HostComponents.d.ts +3 -1
- package/lib/module/renderer/HostComponents.js +3 -0
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/Offscreen.d.ts +4 -2
- package/lib/module/renderer/Offscreen.js +15 -13
- package/lib/module/renderer/Offscreen.js.map +1 -1
- package/lib/module/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/module/renderer/components/shapes/Atlas.js +5 -0
- package/lib/module/renderer/components/shapes/Atlas.js.map +1 -0
- package/lib/module/renderer/components/shapes/index.d.ts +1 -0
- package/lib/module/renderer/components/shapes/index.js +1 -0
- package/lib/module/renderer/components/shapes/index.js.map +1 -1
- package/lib/module/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/module/skia/core/AnimatedImage.js +4 -1
- package/lib/module/skia/core/AnimatedImage.js.map +1 -1
- package/lib/module/skia/core/Data.d.ts +1 -1
- package/lib/module/skia/core/Data.js +11 -4
- package/lib/module/skia/core/Data.js.map +1 -1
- package/lib/module/skia/core/Rect.d.ts +2 -2
- package/lib/module/skia/types/Canvas.d.ts +16 -1
- package/lib/module/skia/types/Canvas.js.map +1 -1
- package/lib/module/skia/types/Image/Image.d.ts +8 -0
- package/lib/module/skia/types/Image/Image.js.map +1 -1
- package/lib/module/skia/types/RSXform.d.ts +7 -1
- package/lib/module/skia/types/RSXform.js.map +1 -1
- package/lib/module/skia/types/Rect.d.ts +4 -0
- package/lib/module/skia/types/Rect.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +3 -2
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/module/skia/web/JsiSkCanvas.js +18 -0
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/module/skia/web/JsiSkRSXform.js +34 -3
- package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
- package/lib/module/skia/web/JsiSkRect.d.ts +3 -2
- package/lib/module/skia/web/JsiSkRect.js +7 -0
- package/lib/module/skia/web/JsiSkRect.js.map +1 -1
- package/lib/module/skia/web/JsiSkTextBlobFactory.js +2 -1
- package/lib/module/skia/web/JsiSkTextBlobFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +5 -0
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +2 -1
- package/lib/typescript/src/dom/nodes/drawings/AtlasNode.d.ts +8 -0
- package/lib/typescript/src/dom/nodes/drawings/index.d.ts +1 -0
- package/lib/typescript/src/dom/types/Drawings.d.ts +7 -1
- package/lib/typescript/src/dom/types/NodeType.d.ts +1 -0
- package/lib/typescript/src/dom/types/SkDOM.d.ts +2 -1
- package/lib/typescript/src/external/reanimated/buffers.d.ts +5 -0
- package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
- package/lib/typescript/src/renderer/HostComponents.d.ts +3 -1
- package/lib/typescript/src/renderer/Offscreen.d.ts +4 -2
- package/lib/typescript/src/renderer/components/shapes/Atlas.d.ts +4 -0
- package/lib/typescript/src/renderer/components/shapes/index.d.ts +1 -0
- package/lib/typescript/src/skia/core/AnimatedImage.d.ts +1 -1
- package/lib/typescript/src/skia/core/Data.d.ts +1 -1
- package/lib/typescript/src/skia/core/Rect.d.ts +2 -2
- package/lib/typescript/src/skia/types/Canvas.d.ts +16 -1
- package/lib/typescript/src/skia/types/Image/Image.d.ts +8 -0
- package/lib/typescript/src/skia/types/RSXform.d.ts +7 -1
- package/lib/typescript/src/skia/types/Rect.d.ts +4 -0
- package/lib/typescript/src/skia/types/Skia.d.ts +3 -2
- package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -1
- package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +8 -2
- package/lib/typescript/src/skia/web/JsiSkRect.d.ts +3 -2
- package/package.json +1 -1
- package/src/dom/nodes/JsiSkDOM.ts +8 -0
- package/src/dom/nodes/drawings/AtlasNode.ts +24 -0
- package/src/dom/nodes/drawings/index.ts +1 -0
- package/src/dom/types/Drawings.ts +9 -0
- package/src/dom/types/NodeType.ts +1 -0
- package/src/dom/types/SkDOM.ts +2 -0
- package/src/external/reanimated/buffers.ts +53 -0
- package/src/external/reanimated/index.ts +1 -0
- package/src/external/reanimated/textures.tsx +7 -19
- package/src/external/reanimated/useAnimatedImageValue.ts +15 -4
- package/src/mock/index.ts +5 -0
- package/src/renderer/HostComponents.ts +6 -1
- package/src/renderer/Offscreen.tsx +20 -16
- package/src/renderer/components/shapes/Atlas.tsx +8 -0
- package/src/renderer/components/shapes/index.ts +1 -0
- package/src/skia/core/AnimatedImage.ts +3 -2
- package/src/skia/core/Data.ts +8 -4
- package/src/skia/types/Canvas.ts +32 -1
- package/src/skia/types/Image/Image.ts +10 -0
- package/src/skia/types/RSXform.ts +7 -1
- package/src/skia/types/Rect.ts +6 -0
- package/src/skia/types/Skia.ts +10 -2
- package/src/skia/web/JsiSkCanvas.ts +60 -23
- package/src/skia/web/JsiSkRSXform.ts +28 -4
- package/src/skia/web/JsiSkRect.ts +12 -2
- package/src/skia/web/JsiSkTextBlobFactory.ts +5 -5
- package/src/skia/web/JsiSkia.ts +15 -0
@@ -1,22 +1,11 @@
|
|
1
1
|
import { useEffect, useMemo } from "react";
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import { runOnUI, useSharedValue } from "./moduleWrapper"; // TODO: We're not sure yet why PixelRatio is not needed here.
|
2
|
+
import { drawAsImageFromPicture, drawAsPicture } from "../../renderer/Offscreen";
|
3
|
+
import { runOnUI, useSharedValue } from "./moduleWrapper";
|
5
4
|
|
6
|
-
const
|
7
|
-
|
8
|
-
const createTexture = (texture, picture, size) => {
|
5
|
+
const createTextureValue = (texture, picture, size) => {
|
9
6
|
"worklet";
|
10
7
|
|
11
|
-
|
12
|
-
const canvas = surface.getCanvas(); // see comment above
|
13
|
-
//canvas.save();
|
14
|
-
//canvas.scale(pd, pd);
|
15
|
-
|
16
|
-
canvas.drawPicture(picture); //canvas.restore();
|
17
|
-
|
18
|
-
surface.flush();
|
19
|
-
texture.value = surface.makeImageSnapshot();
|
8
|
+
texture.value = drawAsImageFromPicture(picture, size);
|
20
9
|
};
|
21
10
|
|
22
11
|
export const useTextureValue = (element, size) => {
|
@@ -28,7 +17,7 @@ export const useTextureValue = (element, size) => {
|
|
28
17
|
export const useTextureValueFromPicture = (picture, size) => {
|
29
18
|
const texture = useSharedValue(null);
|
30
19
|
useEffect(() => {
|
31
|
-
runOnUI(
|
20
|
+
runOnUI(createTextureValue)(texture, picture, size);
|
32
21
|
}, [texture, picture, size]);
|
33
22
|
return texture;
|
34
23
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","
|
1
|
+
{"version":3,"names":["useEffect","useMemo","drawAsImageFromPicture","drawAsPicture","runOnUI","useSharedValue","createTextureValue","texture","picture","size","value","useTextureValue","element","useTextureValueFromPicture"],"sources":["textures.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { ReactElement } from \"react\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport type { SkImage, SkPicture, SkSize } from \"../../skia/types\";\nimport {\n drawAsImageFromPicture,\n drawAsPicture,\n} from \"../../renderer/Offscreen\";\n\nimport { runOnUI, useSharedValue } from \"./moduleWrapper\";\n\nconst createTextureValue = (\n texture: SharedValue<SkImage | null>,\n picture: SkPicture,\n size: SkSize\n) => {\n \"worklet\";\n texture.value = drawAsImageFromPicture(picture, size);\n};\n\nexport const useTextureValue = (element: ReactElement, size: SkSize) => {\n const picture = useMemo(() => {\n return drawAsPicture(element);\n }, [element]);\n return useTextureValueFromPicture(picture, size);\n};\n\nexport const useTextureValueFromPicture = (\n picture: SkPicture,\n size: SkSize\n) => {\n const texture = useSharedValue<SkImage | null>(null);\n useEffect(() => {\n runOnUI(createTextureValue)(texture, picture, size);\n }, [texture, picture, size]);\n return texture;\n};\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,OAApB,QAAmC,OAAnC;AAKA,SACEC,sBADF,EAEEC,aAFF,QAGO,0BAHP;AAKA,SAASC,OAAT,EAAkBC,cAAlB,QAAwC,iBAAxC;;AAEA,MAAMC,kBAAkB,GAAG,CACzBC,OADyB,EAEzBC,OAFyB,EAGzBC,IAHyB,KAItB;EACH;;EACAF,OAAO,CAACG,KAAR,GAAgBR,sBAAsB,CAACM,OAAD,EAAUC,IAAV,CAAtC;AACD,CAPD;;AASA,OAAO,MAAME,eAAe,GAAG,CAACC,OAAD,EAAwBH,IAAxB,KAAyC;EACtE,MAAMD,OAAO,GAAGP,OAAO,CAAC,MAAM;IAC5B,OAAOE,aAAa,CAACS,OAAD,CAApB;EACD,CAFsB,EAEpB,CAACA,OAAD,CAFoB,CAAvB;EAGA,OAAOC,0BAA0B,CAACL,OAAD,EAAUC,IAAV,CAAjC;AACD,CALM;AAOP,OAAO,MAAMI,0BAA0B,GAAG,CACxCL,OADwC,EAExCC,IAFwC,KAGrC;EACH,MAAMF,OAAO,GAAGF,cAAc,CAAiB,IAAjB,CAA9B;EACAL,SAAS,CAAC,MAAM;IACdI,OAAO,CAACE,kBAAD,CAAP,CAA4BC,OAA5B,EAAqCC,OAArC,EAA8CC,IAA9C;EACD,CAFQ,EAEN,CAACF,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,CAFM,CAAT;EAGA,OAAOF,OAAP;AACD,CATM"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { useEffect } from "react";
|
1
2
|
import { useAnimatedImage } from "../../skia/core/AnimatedImage";
|
2
3
|
import { throwOnMissingReanimated, useFrameCallback, useSharedValue } from "./moduleWrapper";
|
3
4
|
const DEFAULT_FRAME_DURATION = 60;
|
@@ -8,7 +9,7 @@ export const useAnimatedImageValue = source => {
|
|
8
9
|
const animatedImage = useAnimatedImage(source, err => {
|
9
10
|
console.error(err);
|
10
11
|
throw new Error(`Could not load animated image - got '${err.message}'`);
|
11
|
-
});
|
12
|
+
}, false);
|
12
13
|
const frameDuration = (animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.currentFrameDuration()) || DEFAULT_FRAME_DURATION;
|
13
14
|
useFrameCallback(frameInfo => {
|
14
15
|
if (!animatedImage) {
|
@@ -36,6 +37,11 @@ export const useAnimatedImageValue = source => {
|
|
36
37
|
|
37
38
|
lastTimestamp.value = timestamp; // eslint-disable-next-line react-hooks/exhaustive-deps
|
38
39
|
}, true);
|
40
|
+
useEffect(() => {
|
41
|
+
return () => {
|
42
|
+
animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.dispose();
|
43
|
+
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
44
|
+
}, []);
|
39
45
|
return currentFrame;
|
40
46
|
};
|
41
47
|
//# sourceMappingURL=useAnimatedImageValue.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useAnimatedImage","throwOnMissingReanimated","useFrameCallback","useSharedValue","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import type { FrameInfo } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport {\n throwOnMissingReanimated,\n useFrameCallback,\n useSharedValue,\n} from \"./moduleWrapper\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (source: DataSourceParam) => {\n throwOnMissingReanimated();\n const currentFrame = useSharedValue<null | SkImage>(null);\n const lastTimestamp = useSharedValue(0);\n const animatedImage = useAnimatedImage(source
|
1
|
+
{"version":3,"names":["useEffect","useAnimatedImage","throwOnMissingReanimated","useFrameCallback","useSharedValue","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { FrameInfo } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport {\n throwOnMissingReanimated,\n useFrameCallback,\n useSharedValue,\n} from \"./moduleWrapper\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (source: DataSourceParam) => {\n throwOnMissingReanimated();\n const currentFrame = useSharedValue<null | SkImage>(null);\n const lastTimestamp = useSharedValue(0);\n const animatedImage = useAnimatedImage(\n source,\n (err) => {\n console.error(err);\n throw new Error(`Could not load animated image - got '${err.message}'`);\n },\n false\n );\n const frameDuration =\n animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;\n\n useFrameCallback((frameInfo: FrameInfo) => {\n if (!animatedImage) {\n currentFrame.value = null;\n return;\n }\n\n const { timestamp } = frameInfo;\n const elapsed = timestamp - lastTimestamp.value;\n\n // Check if it's time to switch frames based on GIF frame duration\n if (elapsed < frameDuration) {\n return;\n }\n\n // Update the current frame\n animatedImage.decodeNextFrame();\n if (currentFrame.value) {\n currentFrame.value.dispose();\n }\n currentFrame.value = animatedImage.getCurrentFrame();\n\n // Update the last timestamp\n lastTimestamp.value = timestamp;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, true);\n useEffect(() => {\n return () => {\n animatedImage?.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return currentFrame;\n};\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAGA,SAASC,gBAAT,QAAiC,+BAAjC;AAGA,SACEC,wBADF,EAEEC,gBAFF,EAGEC,cAHF,QAIO,iBAJP;AAMA,MAAMC,sBAAsB,GAAG,EAA/B;AAEA,OAAO,MAAMC,qBAAqB,GAAIC,MAAD,IAA6B;EAChEL,wBAAwB;EACxB,MAAMM,YAAY,GAAGJ,cAAc,CAAiB,IAAjB,CAAnC;EACA,MAAMK,aAAa,GAAGL,cAAc,CAAC,CAAD,CAApC;EACA,MAAMM,aAAa,GAAGT,gBAAgB,CACpCM,MADoC,EAEnCI,GAAD,IAAS;IACPC,OAAO,CAACC,KAAR,CAAcF,GAAd;IACA,MAAM,IAAIG,KAAJ,CAAW,wCAAuCH,GAAG,CAACI,OAAQ,GAA9D,CAAN;EACD,CALmC,EAMpC,KANoC,CAAtC;EAQA,MAAMC,aAAa,GACjB,CAAAN,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEO,oBAAf,OAAyCZ,sBAD3C;EAGAF,gBAAgB,CAAEe,SAAD,IAA0B;IACzC,IAAI,CAACR,aAAL,EAAoB;MAClBF,YAAY,CAACW,KAAb,GAAqB,IAArB;MACA;IACD;;IAED,MAAM;MAAEC;IAAF,IAAgBF,SAAtB;IACA,MAAMG,OAAO,GAAGD,SAAS,GAAGX,aAAa,CAACU,KAA1C,CAPyC,CASzC;;IACA,IAAIE,OAAO,GAAGL,aAAd,EAA6B;MAC3B;IACD,CAZwC,CAczC;;;IACAN,aAAa,CAACY,eAAd;;IACA,IAAId,YAAY,CAACW,KAAjB,EAAwB;MACtBX,YAAY,CAACW,KAAb,CAAmBI,OAAnB;IACD;;IACDf,YAAY,CAACW,KAAb,GAAqBT,aAAa,CAACc,eAAd,EAArB,CAnByC,CAqBzC;;IACAf,aAAa,CAACU,KAAd,GAAsBC,SAAtB,CAtByC,CAuBzC;EACD,CAxBe,EAwBb,IAxBa,CAAhB;EAyBApB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXU,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEa,OAAf;IACD,CAFD,CADc,CAId;EACD,CALQ,EAKN,EALM,CAAT;EAMA,OAAOf,YAAP;AACD,CA/CM"}
|
package/lib/module/mock/index.js
CHANGED
@@ -36,6 +36,11 @@ export const Mock = CanvasKit => {
|
|
36
36
|
usePathInterpolation: NoopSharedValue,
|
37
37
|
useTextureValue: NoopSharedValue,
|
38
38
|
useTextureValueFromPicture: NoopSharedValue,
|
39
|
+
useRSXformBuffer: NoopSharedValue,
|
40
|
+
usePointBuffer: NoopSharedValue,
|
41
|
+
useColorBuffer: NoopSharedValue,
|
42
|
+
useRectBuffer: NoopSharedValue,
|
43
|
+
useBuffer: NoopSharedValue,
|
39
44
|
useRawData: Noop,
|
40
45
|
useData: Noop,
|
41
46
|
useFont: () => Skia.Font(undefined, 0),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["JsiSkApi","Noop","undefined","NoopValue","current","NoopSharedValue","value","Mock","CanvasKit","global","SkiaApi","Skia","require","Canvas","useValue","useComputedValue","useTouchHandler","useTiming","useLoop","useSpring","useClockValue","useValueEffect","useClock","usePathInterpolation","useTextureValue","useTextureValueFromPicture","useRawData","useData","useFont","Font","useFonts","useTypeface","useImage","useSVG"],"sources":["index.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport { JsiSkApi } from \"../skia/web\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst Noop: () => any = () => undefined;\nconst NoopValue = () => ({ current: 0 });\nconst NoopSharedValue = () => ({ value: 0 });\n\nexport const Mock = (CanvasKit: CanvasKit) => {\n global.SkiaApi = JsiSkApi(CanvasKit);\n const Skia = global.SkiaApi;\n return {\n Skia,\n ...require(\"../renderer/components\"),\n ...require(\"../skia\"),\n ...require(\"../animation\"),\n ...require(\"../dom/types\"),\n ...require(\"../dom/nodes\"),\n // We could use the real Canvas if we mock the SkiaView component for node\n Canvas: Noop,\n // Skia Animations\n useValue: NoopValue,\n useComputedValue: NoopValue,\n useTouchHandler: Noop,\n useTiming: NoopValue,\n useLoop: NoopValue,\n useSpring: NoopValue,\n useClockValue: NoopValue,\n useValueEffect: Noop,\n // Reanimated hooks\n useClock: NoopSharedValue,\n usePathInterpolation: NoopSharedValue,\n useTextureValue: NoopSharedValue,\n useTextureValueFromPicture: NoopSharedValue,\n useRawData: Noop,\n useData: Noop,\n useFont: () => Skia.Font(undefined, 0),\n useFonts: Noop,\n useTypeface: () => null,\n useImage: () => null,\n useSVG: () => null,\n };\n};\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB,C,CAEA;;AACA,MAAMC,IAAe,GAAG,MAAMC,SAA9B;;AACA,MAAMC,SAAS,GAAG,OAAO;EAAEC,OAAO,EAAE;AAAX,CAAP,CAAlB;;AACA,MAAMC,eAAe,GAAG,OAAO;EAAEC,KAAK,EAAE;AAAT,CAAP,CAAxB;;AAEA,OAAO,MAAMC,IAAI,GAAIC,SAAD,IAA0B;EAC5CC,MAAM,CAACC,OAAP,GAAiBV,QAAQ,CAACQ,SAAD,CAAzB;EACA,MAAMG,IAAI,GAAGF,MAAM,CAACC,OAApB;EACA,OAAO;IACLC,IADK;IAEL,GAAGC,OAAO,CAAC,wBAAD,CAFL;IAGL,GAAGA,OAAO,CAAC,SAAD,CAHL;IAIL,GAAGA,OAAO,CAAC,cAAD,CAJL;IAKL,GAAGA,OAAO,CAAC,cAAD,CALL;IAML,GAAGA,OAAO,CAAC,cAAD,CANL;IAOL;IACAC,MAAM,EAAEZ,IARH;IASL;IACAa,QAAQ,EAAEX,SAVL;IAWLY,gBAAgB,EAAEZ,SAXb;IAYLa,eAAe,EAAEf,IAZZ;IAaLgB,SAAS,EAAEd,SAbN;IAcLe,OAAO,EAAEf,SAdJ;IAeLgB,SAAS,EAAEhB,SAfN;IAgBLiB,aAAa,EAAEjB,SAhBV;IAiBLkB,cAAc,EAAEpB,IAjBX;IAkBL;IACAqB,QAAQ,EAAEjB,eAnBL;IAoBLkB,oBAAoB,EAAElB,eApBjB;IAqBLmB,eAAe,EAAEnB,eArBZ;IAsBLoB,0BAA0B,EAAEpB,eAtBvB;IAuBLqB,
|
1
|
+
{"version":3,"names":["JsiSkApi","Noop","undefined","NoopValue","current","NoopSharedValue","value","Mock","CanvasKit","global","SkiaApi","Skia","require","Canvas","useValue","useComputedValue","useTouchHandler","useTiming","useLoop","useSpring","useClockValue","useValueEffect","useClock","usePathInterpolation","useTextureValue","useTextureValueFromPicture","useRSXformBuffer","usePointBuffer","useColorBuffer","useRectBuffer","useBuffer","useRawData","useData","useFont","Font","useFonts","useTypeface","useImage","useSVG"],"sources":["index.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport { JsiSkApi } from \"../skia/web\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst Noop: () => any = () => undefined;\nconst NoopValue = () => ({ current: 0 });\nconst NoopSharedValue = () => ({ value: 0 });\n\nexport const Mock = (CanvasKit: CanvasKit) => {\n global.SkiaApi = JsiSkApi(CanvasKit);\n const Skia = global.SkiaApi;\n return {\n Skia,\n ...require(\"../renderer/components\"),\n ...require(\"../skia\"),\n ...require(\"../animation\"),\n ...require(\"../dom/types\"),\n ...require(\"../dom/nodes\"),\n // We could use the real Canvas if we mock the SkiaView component for node\n Canvas: Noop,\n // Skia Animations\n useValue: NoopValue,\n useComputedValue: NoopValue,\n useTouchHandler: Noop,\n useTiming: NoopValue,\n useLoop: NoopValue,\n useSpring: NoopValue,\n useClockValue: NoopValue,\n useValueEffect: Noop,\n // Reanimated hooks\n useClock: NoopSharedValue,\n usePathInterpolation: NoopSharedValue,\n useTextureValue: NoopSharedValue,\n useTextureValueFromPicture: NoopSharedValue,\n useRSXformBuffer: NoopSharedValue,\n usePointBuffer: NoopSharedValue,\n useColorBuffer: NoopSharedValue,\n useRectBuffer: NoopSharedValue,\n useBuffer: NoopSharedValue,\n useRawData: Noop,\n useData: Noop,\n useFont: () => Skia.Font(undefined, 0),\n useFonts: Noop,\n useTypeface: () => null,\n useImage: () => null,\n useSVG: () => null,\n };\n};\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB,C,CAEA;;AACA,MAAMC,IAAe,GAAG,MAAMC,SAA9B;;AACA,MAAMC,SAAS,GAAG,OAAO;EAAEC,OAAO,EAAE;AAAX,CAAP,CAAlB;;AACA,MAAMC,eAAe,GAAG,OAAO;EAAEC,KAAK,EAAE;AAAT,CAAP,CAAxB;;AAEA,OAAO,MAAMC,IAAI,GAAIC,SAAD,IAA0B;EAC5CC,MAAM,CAACC,OAAP,GAAiBV,QAAQ,CAACQ,SAAD,CAAzB;EACA,MAAMG,IAAI,GAAGF,MAAM,CAACC,OAApB;EACA,OAAO;IACLC,IADK;IAEL,GAAGC,OAAO,CAAC,wBAAD,CAFL;IAGL,GAAGA,OAAO,CAAC,SAAD,CAHL;IAIL,GAAGA,OAAO,CAAC,cAAD,CAJL;IAKL,GAAGA,OAAO,CAAC,cAAD,CALL;IAML,GAAGA,OAAO,CAAC,cAAD,CANL;IAOL;IACAC,MAAM,EAAEZ,IARH;IASL;IACAa,QAAQ,EAAEX,SAVL;IAWLY,gBAAgB,EAAEZ,SAXb;IAYLa,eAAe,EAAEf,IAZZ;IAaLgB,SAAS,EAAEd,SAbN;IAcLe,OAAO,EAAEf,SAdJ;IAeLgB,SAAS,EAAEhB,SAfN;IAgBLiB,aAAa,EAAEjB,SAhBV;IAiBLkB,cAAc,EAAEpB,IAjBX;IAkBL;IACAqB,QAAQ,EAAEjB,eAnBL;IAoBLkB,oBAAoB,EAAElB,eApBjB;IAqBLmB,eAAe,EAAEnB,eArBZ;IAsBLoB,0BAA0B,EAAEpB,eAtBvB;IAuBLqB,gBAAgB,EAAErB,eAvBb;IAwBLsB,cAAc,EAAEtB,eAxBX;IAyBLuB,cAAc,EAAEvB,eAzBX;IA0BLwB,aAAa,EAAExB,eA1BV;IA2BLyB,SAAS,EAAEzB,eA3BN;IA4BL0B,UAAU,EAAE9B,IA5BP;IA6BL+B,OAAO,EAAE/B,IA7BJ;IA8BLgC,OAAO,EAAE,MAAMtB,IAAI,CAACuB,IAAL,CAAUhC,SAAV,EAAqB,CAArB,CA9BV;IA+BLiC,QAAQ,EAAElC,IA/BL;IAgCLmC,WAAW,EAAE,MAAM,IAhCd;IAiCLC,QAAQ,EAAE,MAAM,IAjCX;IAkCLC,MAAM,EAAE,MAAM;EAlCT,CAAP;AAoCD,CAvCM"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { NodeType } from "../dom/types";
|
2
|
-
import type { DeclarationNode, FractalNoiseProps, RenderNode, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps } from "../dom/types";
|
2
|
+
import type { DeclarationNode, FractalNoiseProps, RenderNode, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps } from "../dom/types";
|
3
3
|
import type { ChildrenProps } from "../dom/types/Common";
|
4
4
|
import type { BlendProps, MorphologyImageFilterProps } from "../dom/types/ImageFilters";
|
5
5
|
import type { SkRect, SkRRect } from "../skia/types";
|
@@ -22,6 +22,7 @@ declare global {
|
|
22
22
|
PatchNode: (props: PatchProps) => RenderNode<PatchProps>;
|
23
23
|
PointsNode: (props: PointsProps) => RenderNode<PointsProps>;
|
24
24
|
DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;
|
25
|
+
AtlasNode: (props: AtlasProps) => RenderNode<AtlasProps>;
|
25
26
|
BlurMaskFilterNode: (props: BlurMaskFilterProps) => DeclarationNode<BlurMaskFilterProps>;
|
26
27
|
DashPathEffectNode: (props: DashPathEffectProps) => DeclarationNode<DashPathEffectProps>;
|
27
28
|
DiscretePathEffectNode: (props: DiscretePathEffectProps) => DeclarationNode<DiscretePathEffectProps>;
|
@@ -81,6 +82,7 @@ declare global {
|
|
81
82
|
skPoints: SkiaProps<PointsProps>;
|
82
83
|
skRect: SkiaProps<RectProps>;
|
83
84
|
skRRect: SkiaProps<RoundedRectProps>;
|
85
|
+
skAtlas: SkiaProps<AtlasProps>;
|
84
86
|
skVertices: SkiaProps<VerticesProps>;
|
85
87
|
skText: SkiaProps<TextProps>;
|
86
88
|
skTextPath: SkiaProps<TextPathProps>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["NodeType","exhaustiveCheck","shouldUseJSDomOnNative","NATIVE_DOM","global","SkiaDomApi","createNode","container","type","props","Sk","Layer","Group","Paint","Fill","Image","Circle","Path","Line","Oval","Patch","Points","Rect","RRect","Vertices","Text","TextPath","TextBlob","Glyphs","DiffRect","Picture","ImageSVG","BlurMaskFilter","BlendImageFilter","BlurImageFilter","OffsetImageFilter","DropShadowImageFilter","DisplacementMapImageFilter","MorphologyImageFilter","RuntimeShaderImageFilter","MatrixColorFilter","BlendColorFilter","LerpColorFilter","LumaColorFilter","LinearToSRGBGammaColorFilter","SRGBToLinearGammaColorFilter","Shader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","CornerPathEffect","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","SumPathEffect","Line2DPathEffect","Blend","BackdropFilter","Box","BoxShadow","Paragraph"],"sources":["HostComponents.ts"],"sourcesContent":["import { NodeType } from \"../dom/types\";\nimport type {\n DeclarationNode,\n FractalNoiseProps,\n RenderNode,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n} from \"../dom/types\";\nimport type { ChildrenProps } from \"../dom/types/Common\";\nimport type {\n BlendProps,\n MorphologyImageFilterProps,\n} from \"../dom/types/ImageFilters\";\nimport type { SkRect, SkRRect } from \"../skia/types\";\nimport type { JsiDrawingNode } from \"../dom/nodes/DrawingNode\";\n\nimport type { Container } from \"./Container\";\nimport { exhaustiveCheck } from \"./typeddash\";\nimport type { SkiaProps } from \"./processors\";\n\n// This flag should only be turned on for debugging/testing\nconst shouldUseJSDomOnNative = false;\nexport const NATIVE_DOM = shouldUseJSDomOnNative ? false : !!global.SkiaDomApi;\n\ndeclare global {\n var SkiaDomApi: {\n // FIXME: We need a better type for this\n RectNode: (props: RectProps) => JsiDrawingNode<RectProps, SkRect>;\n RRectNode: (\n props: RoundedRectProps\n ) => JsiDrawingNode<RoundedRectProps, SkRRect>;\n GroupNode: (props: GroupProps) => RenderNode<GroupProps>;\n PaintNode: (props: PaintProps) => DeclarationNode<PaintProps>;\n FillNode: (props: PaintProps) => RenderNode<PaintProps>;\n CircleNode: (props: CircleProps) => RenderNode<CircleProps>;\n PathNode: (props: PathProps) => RenderNode<PathProps>;\n LineNode: (props: LineProps) => RenderNode<LineProps>;\n ImageNode: (props: ImageProps) => RenderNode<ImageProps>;\n OvalNode: (props: OvalProps) => RenderNode<OvalProps>;\n PatchNode: (props: PatchProps) => RenderNode<PatchProps>;\n PointsNode: (props: PointsProps) => RenderNode<PointsProps>;\n DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;\n // Mask filters\n BlurMaskFilterNode: (\n props: BlurMaskFilterProps\n ) => DeclarationNode<BlurMaskFilterProps>;\n\n // Path effects\n DashPathEffectNode: (\n props: DashPathEffectProps\n ) => DeclarationNode<DashPathEffectProps>;\n DiscretePathEffectNode: (\n props: DiscretePathEffectProps\n ) => DeclarationNode<DiscretePathEffectProps>;\n CornerPathEffectNode: (\n props: CornerPathEffectProps\n ) => DeclarationNode<CornerPathEffectProps>;\n Path1DPathEffectNode: (\n props: Path1DPathEffectProps\n ) => DeclarationNode<Path1DPathEffectProps>;\n Path2DPathEffectNode: (\n props: Path2DPathEffectProps\n ) => DeclarationNode<Path2DPathEffectProps>;\n Line2DPathEffectNode: (\n props: Line2DPathEffectProps\n ) => DeclarationNode<Line2DPathEffectProps>;\n SumPathEffectNode: () => DeclarationNode<null>;\n\n // Image filters\n BlendImageFilterNode: (\n props: BlendImageFilterProps\n ) => DeclarationNode<BlendImageFilterProps>;\n DropShadowImageFilterNode: (\n props: DropShadowImageFilterProps\n ) => DeclarationNode<DropShadowImageFilterProps>;\n DisplacementMapImageFilterNode: (\n props: DisplacementMapImageFilterProps\n ) => DeclarationNode<DisplacementMapImageFilterProps>;\n BlurImageFilterNode: (\n props: BlurImageFilterProps\n ) => DeclarationNode<BlurImageFilterProps>;\n OffsetImageFilterNode: (\n props: OffsetImageFilterProps\n ) => DeclarationNode<OffsetImageFilterProps>;\n MorphologyImageFilterNode: (\n props: MorphologyImageFilterProps\n ) => DeclarationNode<MorphologyImageFilterProps>;\n RuntimeShaderImageFilterNode: (\n props: RuntimeShaderImageFilterProps\n ) => DeclarationNode<RuntimeShaderImageFilterProps>;\n\n // Color filters\n MatrixColorFilterNode: (\n props: MatrixColorFilterProps\n ) => DeclarationNode<MatrixColorFilterProps>;\n BlendColorFilterNode: (\n props: BlendColorFilterProps\n ) => DeclarationNode<BlendColorFilterProps>;\n LinearToSRGBGammaColorFilterNode: () => DeclarationNode<null>;\n SRGBToLinearGammaColorFilterNode: () => DeclarationNode<null>;\n LumaColorFilterNode: () => DeclarationNode<null>;\n LerpColorFilterNode: (\n props: LerpColorFilterProps\n ) => DeclarationNode<LerpColorFilterProps>;\n\n // Shaders\n ShaderNode: (props: ShaderProps) => DeclarationNode<ShaderProps>;\n ImageShaderNode: (\n props: ImageShaderProps\n ) => DeclarationNode<ImageShaderProps>;\n ColorShaderNode: (props: ColorProps) => DeclarationNode<ColorProps>;\n TurbulenceNode: (\n props: TurbulenceProps\n ) => DeclarationNode<TurbulenceProps>;\n FractalNoiseNode: (\n props: FractalNoiseProps\n ) => DeclarationNode<FractalNoiseProps>;\n LinearGradientNode: (\n props: LinearGradientProps\n ) => DeclarationNode<LinearGradientProps>;\n RadialGradientNode: (\n props: RadialGradientProps\n ) => DeclarationNode<RadialGradientProps>;\n SweepGradientNode: (\n props: SweepGradientProps\n ) => DeclarationNode<SweepGradientProps>;\n TwoPointConicalGradientNode: (\n props: TwoPointConicalGradientProps\n ) => DeclarationNode<TwoPointConicalGradientProps>;\n PictureNode: (props: PictureProps) => RenderNode<PictureProps>;\n ImageSVGNode: (props: ImageSVGProps) => RenderNode<ImageSVGProps>;\n VerticesNode: (props: VerticesProps) => RenderNode<VerticesProps>;\n TextNode: (prop: TextProps) => RenderNode<TextProps>;\n TextPathNode: (prop: TextPathProps) => RenderNode<TextPathProps>;\n TextBlobNode: (prop: TextBlobProps) => RenderNode<TextBlobProps>;\n GlyphsNode: (prop: GlyphsProps) => RenderNode<GlyphsProps>;\n BlendNode: (prop: BlendProps) => DeclarationNode<BlendProps>;\n BackdropFilterNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n BoxNode: (prop: BoxProps) => RenderNode<BoxProps>;\n BoxShadowNode: (prop: BoxShadowProps) => DeclarationNode<BoxShadowProps>;\n LayerNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n\n // Paragraph\n ParagraphNode: (props: ParagraphProps) => RenderNode<ParagraphProps>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n\nexport const createNode = (\n container: Container,\n type: NodeType,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: any\n) => {\n const { Sk } = container;\n switch (type) {\n case NodeType.Layer:\n return Sk.Layer(props);\n case NodeType.Group:\n return Sk.Group(props);\n case NodeType.Paint:\n return Sk.Paint(props);\n // Drawings\n case NodeType.Fill:\n return Sk.Fill(props);\n case NodeType.Image:\n return Sk.Image(props);\n case NodeType.Circle:\n return Sk.Circle(props);\n case NodeType.Path:\n return Sk.Path(props);\n case NodeType.Line:\n return Sk.Line(props);\n case NodeType.Oval:\n return Sk.Oval(props);\n case NodeType.Patch:\n return Sk.Patch(props);\n case NodeType.Points:\n return Sk.Points(props);\n case NodeType.Rect:\n return Sk.Rect(props);\n case NodeType.RRect:\n return Sk.RRect(props);\n case NodeType.Vertices:\n return Sk.Vertices(props);\n case NodeType.Text:\n return Sk.Text(props);\n case NodeType.TextPath:\n return Sk.TextPath(props);\n case NodeType.TextBlob:\n return Sk.TextBlob(props);\n case NodeType.Glyphs:\n return Sk.Glyphs(props);\n case NodeType.DiffRect:\n return Sk.DiffRect(props);\n case NodeType.Picture:\n return Sk.Picture(props);\n case NodeType.ImageSVG:\n return Sk.ImageSVG(props);\n // Mask Filter\n case NodeType.BlurMaskFilter:\n return Sk.BlurMaskFilter(props);\n // Image Filter\n case NodeType.BlendImageFilter:\n return Sk.BlendImageFilter(props);\n case NodeType.BlurImageFilter:\n return Sk.BlurImageFilter(props);\n case NodeType.OffsetImageFilter:\n return Sk.OffsetImageFilter(props);\n case NodeType.DropShadowImageFilter:\n return Sk.DropShadowImageFilter(props);\n case NodeType.DisplacementMapImageFilter:\n return Sk.DisplacementMapImageFilter(props);\n case NodeType.MorphologyImageFilter:\n return Sk.MorphologyImageFilter(props);\n case NodeType.RuntimeShaderImageFilter:\n return Sk.RuntimeShaderImageFilter(props);\n // Color Filter\n case NodeType.MatrixColorFilter:\n return Sk.MatrixColorFilter(props);\n case NodeType.BlendColorFilter:\n return Sk.BlendColorFilter(props);\n case NodeType.LerpColorFilter:\n return Sk.LerpColorFilter(props);\n case NodeType.LumaColorFilter:\n return Sk.LumaColorFilter();\n case NodeType.LinearToSRGBGammaColorFilter:\n return Sk.LinearToSRGBGammaColorFilter();\n case NodeType.SRGBToLinearGammaColorFilter:\n return Sk.SRGBToLinearGammaColorFilter();\n // Shader\n case NodeType.Shader:\n return Sk.Shader(props);\n case NodeType.ImageShader:\n return Sk.ImageShader(props);\n case NodeType.ColorShader:\n return Sk.ColorShader(props);\n case NodeType.Turbulence:\n return Sk.Turbulence(props);\n case NodeType.FractalNoise:\n return Sk.FractalNoise(props);\n case NodeType.LinearGradient:\n return Sk.LinearGradient(props);\n case NodeType.RadialGradient:\n return Sk.RadialGradient(props);\n case NodeType.SweepGradient:\n return Sk.SweepGradient(props);\n case NodeType.TwoPointConicalGradient:\n return Sk.TwoPointConicalGradient(props);\n // Path Effect\n case NodeType.CornerPathEffect:\n return Sk.CornerPathEffect(props);\n case NodeType.DiscretePathEffect:\n return Sk.DiscretePathEffect(props);\n case NodeType.DashPathEffect:\n return Sk.DashPathEffect(props);\n case NodeType.Path1DPathEffect:\n return Sk.Path1DPathEffect(props);\n case NodeType.Path2DPathEffect:\n return Sk.Path2DPathEffect(props);\n case NodeType.SumPathEffect:\n return Sk.SumPathEffect();\n case NodeType.Line2DPathEffect:\n return Sk.Line2DPathEffect(props);\n // Mixed\n case NodeType.Blend:\n return Sk.Blend(props);\n case NodeType.BackdropFilter:\n return Sk.BackdropFilter(props);\n case NodeType.Box:\n return Sk.Box(props);\n case NodeType.BoxShadow:\n return Sk.BoxShadow(props);\n // Paragraph\n case NodeType.Paragraph:\n return Sk.Paragraph(props);\n default:\n return exhaustiveCheck(type);\n }\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["NodeType","exhaustiveCheck","shouldUseJSDomOnNative","NATIVE_DOM","global","SkiaDomApi","createNode","container","type","props","Sk","Layer","Group","Paint","Fill","Image","Circle","Path","Line","Oval","Patch","Points","Rect","RRect","Vertices","Text","TextPath","TextBlob","Glyphs","Atlas","DiffRect","Picture","ImageSVG","BlurMaskFilter","BlendImageFilter","BlurImageFilter","OffsetImageFilter","DropShadowImageFilter","DisplacementMapImageFilter","MorphologyImageFilter","RuntimeShaderImageFilter","MatrixColorFilter","BlendColorFilter","LerpColorFilter","LumaColorFilter","LinearToSRGBGammaColorFilter","SRGBToLinearGammaColorFilter","Shader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","CornerPathEffect","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","SumPathEffect","Line2DPathEffect","Blend","BackdropFilter","Box","BoxShadow","Paragraph"],"sources":["HostComponents.ts"],"sourcesContent":["import { NodeType } from \"../dom/types\";\nimport type {\n DeclarationNode,\n FractalNoiseProps,\n RenderNode,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n AtlasProps,\n} from \"../dom/types\";\nimport type { ChildrenProps } from \"../dom/types/Common\";\nimport type {\n BlendProps,\n MorphologyImageFilterProps,\n} from \"../dom/types/ImageFilters\";\nimport type { SkRect, SkRRect } from \"../skia/types\";\nimport type { JsiDrawingNode } from \"../dom/nodes/DrawingNode\";\n\nimport type { Container } from \"./Container\";\nimport { exhaustiveCheck } from \"./typeddash\";\nimport type { SkiaProps } from \"./processors\";\n\n// This flag should only be turned on for debugging/testing\nconst shouldUseJSDomOnNative = false;\nexport const NATIVE_DOM = shouldUseJSDomOnNative ? false : !!global.SkiaDomApi;\n\ndeclare global {\n var SkiaDomApi: {\n RectNode: (props: RectProps) => JsiDrawingNode<RectProps, SkRect>;\n RRectNode: (\n props: RoundedRectProps\n ) => JsiDrawingNode<RoundedRectProps, SkRRect>;\n GroupNode: (props: GroupProps) => RenderNode<GroupProps>;\n PaintNode: (props: PaintProps) => DeclarationNode<PaintProps>;\n FillNode: (props: PaintProps) => RenderNode<PaintProps>;\n CircleNode: (props: CircleProps) => RenderNode<CircleProps>;\n PathNode: (props: PathProps) => RenderNode<PathProps>;\n LineNode: (props: LineProps) => RenderNode<LineProps>;\n ImageNode: (props: ImageProps) => RenderNode<ImageProps>;\n OvalNode: (props: OvalProps) => RenderNode<OvalProps>;\n PatchNode: (props: PatchProps) => RenderNode<PatchProps>;\n PointsNode: (props: PointsProps) => RenderNode<PointsProps>;\n DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;\n AtlasNode: (props: AtlasProps) => RenderNode<AtlasProps>;\n\n // Mask filters\n BlurMaskFilterNode: (\n props: BlurMaskFilterProps\n ) => DeclarationNode<BlurMaskFilterProps>;\n\n // Path effects\n DashPathEffectNode: (\n props: DashPathEffectProps\n ) => DeclarationNode<DashPathEffectProps>;\n DiscretePathEffectNode: (\n props: DiscretePathEffectProps\n ) => DeclarationNode<DiscretePathEffectProps>;\n CornerPathEffectNode: (\n props: CornerPathEffectProps\n ) => DeclarationNode<CornerPathEffectProps>;\n Path1DPathEffectNode: (\n props: Path1DPathEffectProps\n ) => DeclarationNode<Path1DPathEffectProps>;\n Path2DPathEffectNode: (\n props: Path2DPathEffectProps\n ) => DeclarationNode<Path2DPathEffectProps>;\n Line2DPathEffectNode: (\n props: Line2DPathEffectProps\n ) => DeclarationNode<Line2DPathEffectProps>;\n SumPathEffectNode: () => DeclarationNode<null>;\n\n // Image filters\n BlendImageFilterNode: (\n props: BlendImageFilterProps\n ) => DeclarationNode<BlendImageFilterProps>;\n DropShadowImageFilterNode: (\n props: DropShadowImageFilterProps\n ) => DeclarationNode<DropShadowImageFilterProps>;\n DisplacementMapImageFilterNode: (\n props: DisplacementMapImageFilterProps\n ) => DeclarationNode<DisplacementMapImageFilterProps>;\n BlurImageFilterNode: (\n props: BlurImageFilterProps\n ) => DeclarationNode<BlurImageFilterProps>;\n OffsetImageFilterNode: (\n props: OffsetImageFilterProps\n ) => DeclarationNode<OffsetImageFilterProps>;\n MorphologyImageFilterNode: (\n props: MorphologyImageFilterProps\n ) => DeclarationNode<MorphologyImageFilterProps>;\n RuntimeShaderImageFilterNode: (\n props: RuntimeShaderImageFilterProps\n ) => DeclarationNode<RuntimeShaderImageFilterProps>;\n\n // Color filters\n MatrixColorFilterNode: (\n props: MatrixColorFilterProps\n ) => DeclarationNode<MatrixColorFilterProps>;\n BlendColorFilterNode: (\n props: BlendColorFilterProps\n ) => DeclarationNode<BlendColorFilterProps>;\n LinearToSRGBGammaColorFilterNode: () => DeclarationNode<null>;\n SRGBToLinearGammaColorFilterNode: () => DeclarationNode<null>;\n LumaColorFilterNode: () => DeclarationNode<null>;\n LerpColorFilterNode: (\n props: LerpColorFilterProps\n ) => DeclarationNode<LerpColorFilterProps>;\n\n // Shaders\n ShaderNode: (props: ShaderProps) => DeclarationNode<ShaderProps>;\n ImageShaderNode: (\n props: ImageShaderProps\n ) => DeclarationNode<ImageShaderProps>;\n ColorShaderNode: (props: ColorProps) => DeclarationNode<ColorProps>;\n TurbulenceNode: (\n props: TurbulenceProps\n ) => DeclarationNode<TurbulenceProps>;\n FractalNoiseNode: (\n props: FractalNoiseProps\n ) => DeclarationNode<FractalNoiseProps>;\n LinearGradientNode: (\n props: LinearGradientProps\n ) => DeclarationNode<LinearGradientProps>;\n RadialGradientNode: (\n props: RadialGradientProps\n ) => DeclarationNode<RadialGradientProps>;\n SweepGradientNode: (\n props: SweepGradientProps\n ) => DeclarationNode<SweepGradientProps>;\n TwoPointConicalGradientNode: (\n props: TwoPointConicalGradientProps\n ) => DeclarationNode<TwoPointConicalGradientProps>;\n PictureNode: (props: PictureProps) => RenderNode<PictureProps>;\n ImageSVGNode: (props: ImageSVGProps) => RenderNode<ImageSVGProps>;\n VerticesNode: (props: VerticesProps) => RenderNode<VerticesProps>;\n TextNode: (prop: TextProps) => RenderNode<TextProps>;\n TextPathNode: (prop: TextPathProps) => RenderNode<TextPathProps>;\n TextBlobNode: (prop: TextBlobProps) => RenderNode<TextBlobProps>;\n GlyphsNode: (prop: GlyphsProps) => RenderNode<GlyphsProps>;\n BlendNode: (prop: BlendProps) => DeclarationNode<BlendProps>;\n BackdropFilterNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n BoxNode: (prop: BoxProps) => RenderNode<BoxProps>;\n BoxShadowNode: (prop: BoxShadowProps) => DeclarationNode<BoxShadowProps>;\n LayerNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n\n // Paragraph\n ParagraphNode: (props: ParagraphProps) => RenderNode<ParagraphProps>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skAtlas: SkiaProps<AtlasProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n\nexport const createNode = (\n container: Container,\n type: NodeType,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: any\n) => {\n const { Sk } = container;\n switch (type) {\n case NodeType.Layer:\n return Sk.Layer(props);\n case NodeType.Group:\n return Sk.Group(props);\n case NodeType.Paint:\n return Sk.Paint(props);\n // Drawings\n case NodeType.Fill:\n return Sk.Fill(props);\n case NodeType.Image:\n return Sk.Image(props);\n case NodeType.Circle:\n return Sk.Circle(props);\n case NodeType.Path:\n return Sk.Path(props);\n case NodeType.Line:\n return Sk.Line(props);\n case NodeType.Oval:\n return Sk.Oval(props);\n case NodeType.Patch:\n return Sk.Patch(props);\n case NodeType.Points:\n return Sk.Points(props);\n case NodeType.Rect:\n return Sk.Rect(props);\n case NodeType.RRect:\n return Sk.RRect(props);\n case NodeType.Vertices:\n return Sk.Vertices(props);\n case NodeType.Text:\n return Sk.Text(props);\n case NodeType.TextPath:\n return Sk.TextPath(props);\n case NodeType.TextBlob:\n return Sk.TextBlob(props);\n case NodeType.Glyphs:\n return Sk.Glyphs(props);\n case NodeType.Atlas:\n return Sk.Atlas(props);\n case NodeType.DiffRect:\n return Sk.DiffRect(props);\n case NodeType.Picture:\n return Sk.Picture(props);\n case NodeType.ImageSVG:\n return Sk.ImageSVG(props);\n // Mask Filter\n case NodeType.BlurMaskFilter:\n return Sk.BlurMaskFilter(props);\n // Image Filter\n case NodeType.BlendImageFilter:\n return Sk.BlendImageFilter(props);\n case NodeType.BlurImageFilter:\n return Sk.BlurImageFilter(props);\n case NodeType.OffsetImageFilter:\n return Sk.OffsetImageFilter(props);\n case NodeType.DropShadowImageFilter:\n return Sk.DropShadowImageFilter(props);\n case NodeType.DisplacementMapImageFilter:\n return Sk.DisplacementMapImageFilter(props);\n case NodeType.MorphologyImageFilter:\n return Sk.MorphologyImageFilter(props);\n case NodeType.RuntimeShaderImageFilter:\n return Sk.RuntimeShaderImageFilter(props);\n // Color Filter\n case NodeType.MatrixColorFilter:\n return Sk.MatrixColorFilter(props);\n case NodeType.BlendColorFilter:\n return Sk.BlendColorFilter(props);\n case NodeType.LerpColorFilter:\n return Sk.LerpColorFilter(props);\n case NodeType.LumaColorFilter:\n return Sk.LumaColorFilter();\n case NodeType.LinearToSRGBGammaColorFilter:\n return Sk.LinearToSRGBGammaColorFilter();\n case NodeType.SRGBToLinearGammaColorFilter:\n return Sk.SRGBToLinearGammaColorFilter();\n // Shader\n case NodeType.Shader:\n return Sk.Shader(props);\n case NodeType.ImageShader:\n return Sk.ImageShader(props);\n case NodeType.ColorShader:\n return Sk.ColorShader(props);\n case NodeType.Turbulence:\n return Sk.Turbulence(props);\n case NodeType.FractalNoise:\n return Sk.FractalNoise(props);\n case NodeType.LinearGradient:\n return Sk.LinearGradient(props);\n case NodeType.RadialGradient:\n return Sk.RadialGradient(props);\n case NodeType.SweepGradient:\n return Sk.SweepGradient(props);\n case NodeType.TwoPointConicalGradient:\n return Sk.TwoPointConicalGradient(props);\n // Path Effect\n case NodeType.CornerPathEffect:\n return Sk.CornerPathEffect(props);\n case NodeType.DiscretePathEffect:\n return Sk.DiscretePathEffect(props);\n case NodeType.DashPathEffect:\n return Sk.DashPathEffect(props);\n case NodeType.Path1DPathEffect:\n return Sk.Path1DPathEffect(props);\n case NodeType.Path2DPathEffect:\n return Sk.Path2DPathEffect(props);\n case NodeType.SumPathEffect:\n return Sk.SumPathEffect();\n case NodeType.Line2DPathEffect:\n return Sk.Line2DPathEffect(props);\n // Mixed\n case NodeType.Blend:\n return Sk.Blend(props);\n case NodeType.BackdropFilter:\n return Sk.BackdropFilter(props);\n case NodeType.Box:\n return Sk.Box(props);\n case NodeType.BoxShadow:\n return Sk.BoxShadow(props);\n // Paragraph\n case NodeType.Paragraph:\n return Sk.Paragraph(props);\n default:\n return exhaustiveCheck(type);\n }\n};\n"],"mappings":"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"}
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import type { ReactElement } from "react";
|
2
|
-
|
3
|
-
export declare const drawAsPicture: (element: ReactElement) =>
|
2
|
+
import type { SkPicture, SkSize } from "../skia/types";
|
3
|
+
export declare const drawAsPicture: (element: ReactElement) => SkPicture;
|
4
|
+
export declare const drawAsImage: (element: ReactElement, size: SkSize) => import("../skia").SkImage;
|
5
|
+
export declare const drawAsImageFromPicture: (picture: SkPicture, size: SkSize) => import("../skia").SkImage;
|
@@ -1,19 +1,6 @@
|
|
1
1
|
import { JsiDrawingContext } from "../dom/types";
|
2
2
|
import { Skia } from "../skia";
|
3
3
|
import { SkiaRoot } from "./Reconciler";
|
4
|
-
export const drawAsImage = (element, width, height) => {
|
5
|
-
const picture = drawAsPicture(element);
|
6
|
-
const surface = Skia.Surface.MakeOffscreen(width, height);
|
7
|
-
|
8
|
-
if (!surface) {
|
9
|
-
throw new Error("Could not create offscreen surface");
|
10
|
-
}
|
11
|
-
|
12
|
-
const canvas = surface.getCanvas();
|
13
|
-
canvas.drawPicture(picture);
|
14
|
-
surface.flush();
|
15
|
-
return surface.makeImageSnapshot();
|
16
|
-
};
|
17
4
|
export const drawAsPicture = element => {
|
18
5
|
const recorder = Skia.PictureRecorder();
|
19
6
|
const canvas = recorder.beginRecording();
|
@@ -24,4 +11,19 @@ export const drawAsPicture = element => {
|
|
24
11
|
const picture = recorder.finishRecordingAsPicture();
|
25
12
|
return picture;
|
26
13
|
};
|
14
|
+
export const drawAsImage = (element, size) => {
|
15
|
+
return drawAsImageFromPicture(drawAsPicture(element), size);
|
16
|
+
}; // TODO: We're not sure yet why PixelRatio is not needed here.
|
17
|
+
|
18
|
+
const pd = 1;
|
19
|
+
export const drawAsImageFromPicture = (picture, size) => {
|
20
|
+
"worklet";
|
21
|
+
|
22
|
+
const surface = Skia.Surface.MakeOffscreen(size.width * pd, size.height * pd);
|
23
|
+
const canvas = surface.getCanvas();
|
24
|
+
canvas.scale(pd, pd);
|
25
|
+
canvas.drawPicture(picture);
|
26
|
+
surface.flush();
|
27
|
+
return surface.makeImageSnapshot();
|
28
|
+
};
|
27
29
|
//# sourceMappingURL=Offscreen.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["JsiDrawingContext","Skia","SkiaRoot","
|
1
|
+
{"version":3,"names":["JsiDrawingContext","Skia","SkiaRoot","drawAsPicture","element","recorder","PictureRecorder","canvas","beginRecording","root","render","ctx","dom","picture","finishRecordingAsPicture","drawAsImage","size","drawAsImageFromPicture","pd","surface","Surface","MakeOffscreen","width","height","getCanvas","scale","drawPicture","flush","makeImageSnapshot"],"sources":["Offscreen.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\n\nimport { JsiDrawingContext } from \"../dom/types\";\nimport type { SkPicture, SkSize } from \"../skia/types\";\nimport { Skia } from \"../skia\";\n\nimport { SkiaRoot } from \"./Reconciler\";\n\nexport const drawAsPicture = (element: ReactElement) => {\n const recorder = Skia.PictureRecorder();\n const canvas = recorder.beginRecording();\n const root = new SkiaRoot(Skia, false);\n root.render(element);\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.dom.render(ctx);\n const picture = recorder.finishRecordingAsPicture();\n return picture;\n};\n\nexport const drawAsImage = (element: ReactElement, size: SkSize) => {\n return drawAsImageFromPicture(drawAsPicture(element), size);\n};\n\n// TODO: We're not sure yet why PixelRatio is not needed here.\nconst pd = 1;\nexport const drawAsImageFromPicture = (picture: SkPicture, size: SkSize) => {\n \"worklet\";\n const surface = Skia.Surface.MakeOffscreen(\n size.width * pd,\n size.height * pd\n )!;\n const canvas = surface.getCanvas();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n surface.flush();\n return surface.makeImageSnapshot();\n};\n"],"mappings":"AAEA,SAASA,iBAAT,QAAkC,cAAlC;AAEA,SAASC,IAAT,QAAqB,SAArB;AAEA,SAASC,QAAT,QAAyB,cAAzB;AAEA,OAAO,MAAMC,aAAa,GAAIC,OAAD,IAA2B;EACtD,MAAMC,QAAQ,GAAGJ,IAAI,CAACK,eAAL,EAAjB;EACA,MAAMC,MAAM,GAAGF,QAAQ,CAACG,cAAT,EAAf;EACA,MAAMC,IAAI,GAAG,IAAIP,QAAJ,CAAaD,IAAb,EAAmB,KAAnB,CAAb;EACAQ,IAAI,CAACC,MAAL,CAAYN,OAAZ;EACA,MAAMO,GAAG,GAAG,IAAIX,iBAAJ,CAAsBC,IAAtB,EAA4BM,MAA5B,CAAZ;EACAE,IAAI,CAACG,GAAL,CAASF,MAAT,CAAgBC,GAAhB;EACA,MAAME,OAAO,GAAGR,QAAQ,CAACS,wBAAT,EAAhB;EACA,OAAOD,OAAP;AACD,CATM;AAWP,OAAO,MAAME,WAAW,GAAG,CAACX,OAAD,EAAwBY,IAAxB,KAAyC;EAClE,OAAOC,sBAAsB,CAACd,aAAa,CAACC,OAAD,CAAd,EAAyBY,IAAzB,CAA7B;AACD,CAFM,C,CAIP;;AACA,MAAME,EAAE,GAAG,CAAX;AACA,OAAO,MAAMD,sBAAsB,GAAG,CAACJ,OAAD,EAAqBG,IAArB,KAAsC;EAC1E;;EACA,MAAMG,OAAO,GAAGlB,IAAI,CAACmB,OAAL,CAAaC,aAAb,CACdL,IAAI,CAACM,KAAL,GAAaJ,EADC,EAEdF,IAAI,CAACO,MAAL,GAAcL,EAFA,CAAhB;EAIA,MAAMX,MAAM,GAAGY,OAAO,CAACK,SAAR,EAAf;EACAjB,MAAM,CAACkB,KAAP,CAAaP,EAAb,EAAiBA,EAAjB;EACAX,MAAM,CAACmB,WAAP,CAAmBb,OAAnB;EACAM,OAAO,CAACQ,KAAR;EACA,OAAOR,OAAO,CAACS,iBAAR,EAAP;AACD,CAXM"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["React","Atlas","props"],"sources":["Atlas.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { AtlasProps } from \"../../../dom/types\";\nimport type { SkiaProps } from \"../../processors\";\n\nexport const Atlas = (props: SkiaProps<AtlasProps>) => {\n return <skAtlas {...props} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAKA,OAAO,MAAMC,KAAK,GAAIC,KAAD,IAAkC;EACrD,oBAAO,+BAAaA,KAAb,CAAP;AACD,CAFM"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Circle\";\nexport * from \"./Rect\";\nexport * from \"./RoundedRect\";\nexport * from \"./DiffRect\";\nexport * from \"./Line\";\nexport * from \"./Path\";\nexport * from \"./Oval\";\nexport * from \"./Points\";\nexport * from \"./Patch\";\nexport * from \"./Vertices\";\nexport * from \"./Fill\";\nexport * from \"./FitBox\";\nexport * from \"./Box\";\n"],"mappings":"AAAA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,OAAd"}
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Circle\";\nexport * from \"./Rect\";\nexport * from \"./RoundedRect\";\nexport * from \"./DiffRect\";\nexport * from \"./Line\";\nexport * from \"./Path\";\nexport * from \"./Oval\";\nexport * from \"./Points\";\nexport * from \"./Patch\";\nexport * from \"./Vertices\";\nexport * from \"./Fill\";\nexport * from \"./FitBox\";\nexport * from \"./Box\";\nexport * from \"./Atlas\";\n"],"mappings":"AAAA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,OAAd;AACA,cAAc,SAAd"}
|
@@ -2,4 +2,4 @@ import type { DataSourceParam } from "../types";
|
|
2
2
|
/**
|
3
3
|
* Returns a Skia Animated Image object
|
4
4
|
* */
|
5
|
-
export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => import("../types").SkAnimatedImage | null;
|
5
|
+
export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined, managed?: boolean) => import("../types").SkAnimatedImage | null;
|
@@ -5,5 +5,8 @@ const animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(
|
|
5
5
|
* Returns a Skia Animated Image object
|
6
6
|
* */
|
7
7
|
|
8
|
-
export const useAnimatedImage = (source, onError)
|
8
|
+
export const useAnimatedImage = function (source, onError) {
|
9
|
+
let managed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
10
|
+
return useRawData(source, animatedImgFactory, onError, managed);
|
11
|
+
};
|
9
12
|
//# sourceMappingURL=AnimatedImage.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, animatedImgFactory, onError);\n"],"mappings":"AAAA,SAASA,IAAT,QAAqB,SAArB;AAGA,SAASC,UAAT,QAA2B,QAA3B;AAEA,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAL,CAAmBC,4BAAnB,CAAgDC,IAAhD,CACzBL,IAAI,CAACG,aADoB,CAA3B;AAIA;AACA;AACA;;AACA,OAAO,MAAMG,gBAAgB,GAAG,
|
1
|
+
{"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError","managed"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void,\n managed = true\n) => useRawData(source, animatedImgFactory, onError, managed);\n"],"mappings":"AAAA,SAASA,IAAT,QAAqB,SAArB;AAGA,SAASC,UAAT,QAA2B,QAA3B;AAEA,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAL,CAAmBC,4BAAnB,CAAgDC,IAAhD,CACzBL,IAAI,CAACG,aADoB,CAA3B;AAIA;AACA;AACA;;AACA,OAAO,MAAMG,gBAAgB,GAAG,UAC9BC,MAD8B,EAE9BC,OAF8B;EAAA,IAG9BC,OAH8B,uEAGpB,IAHoB;EAAA,OAI3BR,UAAU,CAACM,MAAD,EAASL,kBAAT,EAA6BM,OAA7B,EAAsCC,OAAtC,CAJiB;AAAA,CAAzB"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { SkData, DataSourceParam, SkJSIInstance } from "../types";
|
2
2
|
export declare const loadData: <T>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined) => Promise<T | null>;
|
3
3
|
export declare const useCollectionLoading: <T extends SkJSIInstance<string>>(source: DataSourceParam[], loader: () => Promise<(T | null)[]>) => T[] | null;
|
4
|
-
export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined) => T | null;
|
4
|
+
export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined, manage?: boolean) => T | null;
|
5
5
|
export declare const useData: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => SkData | null;
|
@@ -24,7 +24,8 @@ export const loadData = (source, factory, onError) => {
|
|
24
24
|
}
|
25
25
|
};
|
26
26
|
|
27
|
-
const useLoading = (source, loader)
|
27
|
+
const useLoading = function (source, loader) {
|
28
|
+
let manage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
28
29
|
const mounted = useRef(false);
|
29
30
|
const [data, setData] = useState(null);
|
30
31
|
const dataRef = useRef(null);
|
@@ -37,9 +38,12 @@ const useLoading = (source, loader) => {
|
|
37
38
|
}
|
38
39
|
});
|
39
40
|
return () => {
|
40
|
-
|
41
|
+
if (manage) {
|
42
|
+
var _dataRef$current;
|
43
|
+
|
44
|
+
(_dataRef$current = dataRef.current) === null || _dataRef$current === void 0 ? void 0 : _dataRef$current.dispose();
|
45
|
+
}
|
41
46
|
|
42
|
-
(_dataRef$current = dataRef.current) === null || _dataRef$current === void 0 ? void 0 : _dataRef$current.dispose();
|
43
47
|
mounted.current = false;
|
44
48
|
}; // eslint-disable-next-line react-hooks/exhaustive-deps
|
45
49
|
}, [source]);
|
@@ -69,7 +73,10 @@ export const useCollectionLoading = (source, loader) => {
|
|
69
73
|
}, [source]);
|
70
74
|
return data;
|
71
75
|
};
|
72
|
-
export const useRawData = (source, factory, onError)
|
76
|
+
export const useRawData = function (source, factory, onError) {
|
77
|
+
let manage = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
78
|
+
return useLoading(source, () => loadData(source, factory, onError), manage);
|
79
|
+
};
|
73
80
|
|
74
81
|
const identity = data => data;
|
75
82
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","mounted","data","setData","dataRef","current","value","dispose","useCollectionLoading","result","filter","r","forEach","instance","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null
|
1
|
+
{"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","manage","mounted","data","setData","dataRef","current","value","dispose","useCollectionLoading","result","filter","r","forEach","instance","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null>,\n manage = true\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T | null>(null);\n const dataRef = useRef<T | null>(null);\n useEffect(() => {\n mounted.current = true;\n loader().then((value) => {\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n return () => {\n if (manage) {\n dataRef.current?.dispose();\n }\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n return data;\n};\n\nexport const useCollectionLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam[],\n loader: () => Promise<(T | null)[]>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T[] | null>(null);\n const dataRef = useRef<T[] | null>(null);\n\n useEffect(() => {\n mounted.current = true;\n loader().then((result) => {\n const value = result.filter((r) => r !== null) as T[];\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n\n return () => {\n dataRef.current?.forEach((instance) => instance?.dispose());\n mounted.current = false;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n\n return data;\n};\n\nexport const useRawData = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void,\n manage = true\n) => useLoading(source, () => loadData<T>(source, factory, onError), manage);\n\nconst identity = (data: SkData) => data;\n\nexport const useData = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, identity, onError);\n"],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { SkRect, SkRRect } from "../types";
|
2
|
-
export declare const rect: (x: number, y: number, width: number, height: number) =>
|
3
|
-
export declare const bounds: (rects: SkRect[]) =>
|
2
|
+
export declare const rect: (x: number, y: number, width: number, height: number) => import("../types").SkHostRect;
|
3
|
+
export declare const bounds: (rects: SkRect[]) => import("../types").SkHostRect;
|
4
4
|
export declare const topLeft: (r: SkRect | SkRRect) => import("../types").SkPoint;
|
5
5
|
export declare const topRight: (r: SkRect | SkRRect) => import("../types").SkPoint;
|
6
6
|
export declare const bottomLeft: (r: SkRect | SkRRect) => import("../types").SkPoint;
|
@@ -2,7 +2,7 @@ import type { SkPaint } from "./Paint";
|
|
2
2
|
import type { SkRect } from "./Rect";
|
3
3
|
import type { SkFont } from "./Font";
|
4
4
|
import type { SkPath } from "./Path";
|
5
|
-
import type { SkImage, MipmapMode, FilterMode, ImageInfo } from "./Image";
|
5
|
+
import type { SkImage, MipmapMode, FilterMode, ImageInfo, CubicResampler, FilterOptions } from "./Image";
|
6
6
|
import type { SkSVG } from "./SVG";
|
7
7
|
import type { SkColor } from "./Color";
|
8
8
|
import type { InputRRect } from "./RRect";
|
@@ -13,6 +13,7 @@ import type { SkImageFilter } from "./ImageFilter";
|
|
13
13
|
import type { SkVertices } from "./Vertices";
|
14
14
|
import type { SkTextBlob } from "./TextBlob";
|
15
15
|
import type { SkPicture } from "./Picture";
|
16
|
+
import type { SkRSXform } from "./RSXform";
|
16
17
|
export declare enum ClipOp {
|
17
18
|
Difference = 0,
|
18
19
|
Intersect = 1
|
@@ -378,6 +379,20 @@ export interface SkCanvas {
|
|
378
379
|
* @param skp
|
379
380
|
*/
|
380
381
|
drawPicture(skp: SkPicture): void;
|
382
|
+
/**
|
383
|
+
* This method is used to draw an atlas on the canvas.
|
384
|
+
*
|
385
|
+
* @method drawAtlas
|
386
|
+
* @param {SkImage} atlas - The image to be drawn.
|
387
|
+
* @param {SkRect[]} srcs - The source rectangles.
|
388
|
+
* @param {SkRSXform[]} dsts - The destination transformations.
|
389
|
+
* @param {SkPaint} paint - The paint used for drawing.
|
390
|
+
* @param {BlendMode} [blendMode] - The blend mode used for drawing. Optional.
|
391
|
+
* @param {SkColor[]} [colors] - The colors used for drawing. Optional.
|
392
|
+
* @param {CubicResampler | FilterOptions} [sampling] - The sampling options. Optional.
|
393
|
+
* @returns {void} This method does not return anything.
|
394
|
+
*/
|
395
|
+
drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: CubicResampler | FilterOptions): void;
|
381
396
|
/** Read Image pixels
|
382
397
|
*
|
383
398
|
* @param srcX - x-axis upper left corner of the rectangle to read from
|