@shopify/react-native-skia 1.2.0 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +3 -3
- package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +13 -8
- package/cpp/api/JsiNativeBuffer.h +43 -0
- package/cpp/api/JsiSkApi.h +3 -3
- package/cpp/api/JsiSkImageFactory.h +3 -3
- package/cpp/rnskia/RNSkPlatformContext.h +5 -5
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -3
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +70 -93
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.h +119 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +332 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +2 -1
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +27 -6
- package/lib/commonjs/external/ModuleProxy.d.ts +10 -0
- package/lib/commonjs/external/ModuleProxy.js +36 -0
- package/lib/commonjs/external/ModuleProxy.js.map +1 -0
- package/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +3 -0
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js +18 -0
- package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +1 -0
- package/lib/commonjs/external/reanimated/buffers.js +9 -6
- package/lib/commonjs/external/reanimated/buffers.js.map +1 -1
- package/lib/commonjs/external/reanimated/interpolators.js +8 -7
- package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js +27 -11
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/external/reanimated/textures.js +4 -3
- package/lib/commonjs/external/reanimated/textures.js.map +1 -1
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +6 -6
- package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +6 -5
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +1 -1
- package/lib/commonjs/renderer/Offscreen.js +1 -5
- package/lib/commonjs/renderer/Offscreen.js.map +1 -1
- package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +8 -15
- package/lib/commonjs/skia/types/Image/ImageFactory.js +1 -10
- package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.d.ts +18 -0
- package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js +13 -0
- package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -0
- package/lib/commonjs/skia/types/NativeBuffer/index.d.ts +1 -0
- package/lib/commonjs/skia/types/NativeBuffer/index.js +17 -0
- package/lib/commonjs/skia/types/NativeBuffer/index.js.map +1 -0
- package/lib/commonjs/skia/types/Skia.d.ts +2 -2
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/types/index.d.ts +1 -1
- package/lib/commonjs/skia/types/index.js +4 -4
- package/lib/commonjs/skia/types/index.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +3 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js +18 -2
- package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +8 -0
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js +29 -0
- package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js.map +1 -0
- package/lib/commonjs/skia/web/JsiSkia.js +2 -2
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/specs/NativeSkiaModule.web.d.ts +0 -2
- package/lib/commonjs/specs/NativeSkiaModule.web.js +0 -8
- package/lib/commonjs/specs/NativeSkiaModule.web.js.map +1 -1
- package/lib/module/external/ModuleProxy.d.ts +10 -0
- package/lib/module/external/ModuleProxy.js +28 -0
- package/lib/module/external/ModuleProxy.js.map +1 -0
- package/lib/module/external/reanimated/ReanimatedProxy.d.ts +3 -0
- package/lib/module/external/reanimated/ReanimatedProxy.js +12 -0
- package/lib/module/external/reanimated/ReanimatedProxy.js.map +1 -0
- package/lib/module/external/reanimated/buffers.js +8 -6
- package/lib/module/external/reanimated/buffers.js.map +1 -1
- package/lib/module/external/reanimated/interpolators.js +7 -7
- package/lib/module/external/reanimated/interpolators.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.js +26 -11
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/external/reanimated/textures.js +3 -3
- package/lib/module/external/reanimated/textures.js.map +1 -1
- package/lib/module/external/reanimated/useAnimatedImageValue.js +5 -6
- package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
- package/lib/module/external/reanimated/useDerivedValueOnJS.js +5 -5
- package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +1 -1
- package/lib/module/renderer/Offscreen.js +1 -5
- package/lib/module/renderer/Offscreen.js.map +1 -1
- package/lib/module/skia/types/Image/ImageFactory.d.ts +8 -15
- package/lib/module/skia/types/Image/ImageFactory.js +1 -10
- package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
- package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.d.ts +18 -0
- package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js +4 -0
- package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +1 -0
- package/lib/module/skia/types/NativeBuffer/index.d.ts +1 -0
- package/lib/module/skia/types/NativeBuffer/index.js +2 -0
- package/lib/module/skia/types/NativeBuffer/index.js.map +1 -0
- package/lib/module/skia/types/Skia.d.ts +2 -2
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/types/index.d.ts +1 -1
- package/lib/module/skia/types/index.js +1 -1
- package/lib/module/skia/types/index.js.map +1 -1
- package/lib/module/skia/web/JsiSkImageFactory.d.ts +3 -2
- package/lib/module/skia/web/JsiSkImageFactory.js +18 -2
- package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +8 -0
- package/lib/module/skia/web/JsiSkNativeBufferFactory.js +22 -0
- package/lib/module/skia/web/JsiSkNativeBufferFactory.js.map +1 -0
- package/lib/module/skia/web/JsiSkia.js +2 -2
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/specs/NativeSkiaModule.web.d.ts +0 -2
- package/lib/module/specs/NativeSkiaModule.web.js +0 -3
- package/lib/module/specs/NativeSkiaModule.web.js.map +1 -1
- package/lib/typescript/src/external/ModuleProxy.d.ts +10 -0
- package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts +3 -0
- package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +8 -15
- package/lib/typescript/src/skia/types/NativeBuffer/NativeBufferFactory.d.ts +18 -0
- package/lib/typescript/src/skia/types/NativeBuffer/index.d.ts +1 -0
- package/lib/typescript/src/skia/types/Skia.d.ts +2 -2
- package/lib/typescript/src/skia/types/index.d.ts +1 -1
- package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +3 -2
- package/lib/typescript/src/skia/web/JsiSkNativeBufferFactory.d.ts +8 -0
- package/lib/typescript/src/specs/NativeSkiaModule.web.d.ts +0 -2
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +1 -1
- package/src/external/ModuleProxy.ts +30 -0
- package/src/external/reanimated/ReanimatedProxy.ts +18 -0
- package/src/external/reanimated/buffers.ts +7 -6
- package/src/external/reanimated/interpolators.ts +7 -12
- package/src/external/reanimated/renderHelpers.ts +31 -18
- package/src/external/reanimated/textures.tsx +3 -3
- package/src/external/reanimated/useAnimatedImageValue.ts +5 -10
- package/src/external/reanimated/useDerivedValueOnJS.ts +5 -10
- package/src/renderer/Offscreen.tsx +1 -7
- package/src/skia/types/Image/ImageFactory.ts +7 -23
- package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +38 -0
- package/src/skia/types/NativeBuffer/index.ts +1 -0
- package/src/skia/types/Skia.ts +2 -2
- package/src/skia/types/index.ts +1 -1
- package/src/skia/web/JsiSkImageFactory.ts +28 -6
- package/src/skia/web/JsiSkNativeBufferFactory.ts +35 -0
- package/src/skia/web/JsiSkia.ts +2 -2
- package/src/specs/NativeSkiaModule.web.ts +0 -4
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDrawViewManagerDelegate.java +0 -34
- package/cpp/api/JsiPlatformBuffer.h +0 -51
- package/cpp/skia/include/gpu/GrBackendDrawableInfo.h +0 -9
- package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +0 -15
- package/lib/commonjs/external/reanimated/moduleWrapper.js +0 -46
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +0 -1
- package/lib/commonjs/skia/types/PlatformBuffer/PlatformBufferFactory.d.ts +0 -12
- package/lib/commonjs/skia/types/PlatformBuffer/PlatformBufferFactory.js +0 -6
- package/lib/commonjs/skia/types/PlatformBuffer/PlatformBufferFactory.js.map +0 -1
- package/lib/commonjs/skia/types/PlatformBuffer/index.d.ts +0 -1
- package/lib/commonjs/skia/types/PlatformBuffer/index.js +0 -17
- package/lib/commonjs/skia/types/PlatformBuffer/index.js.map +0 -1
- package/lib/commonjs/skia/web/JsiSkPlatformBufferFactory.d.ts +0 -8
- package/lib/commonjs/skia/web/JsiSkPlatformBufferFactory.js +0 -20
- package/lib/commonjs/skia/web/JsiSkPlatformBufferFactory.js.map +0 -1
- package/lib/module/external/reanimated/moduleWrapper.d.ts +0 -15
- package/lib/module/external/reanimated/moduleWrapper.js +0 -37
- package/lib/module/external/reanimated/moduleWrapper.js.map +0 -1
- package/lib/module/skia/types/PlatformBuffer/PlatformBufferFactory.d.ts +0 -12
- package/lib/module/skia/types/PlatformBuffer/PlatformBufferFactory.js +0 -2
- package/lib/module/skia/types/PlatformBuffer/PlatformBufferFactory.js.map +0 -1
- package/lib/module/skia/types/PlatformBuffer/index.d.ts +0 -1
- package/lib/module/skia/types/PlatformBuffer/index.js +0 -2
- package/lib/module/skia/types/PlatformBuffer/index.js.map +0 -1
- package/lib/module/skia/web/JsiSkPlatformBufferFactory.d.ts +0 -8
- package/lib/module/skia/web/JsiSkPlatformBufferFactory.js +0 -13
- package/lib/module/skia/web/JsiSkPlatformBufferFactory.js.map +0 -1
- package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +0 -15
- package/lib/typescript/src/skia/types/PlatformBuffer/PlatformBufferFactory.d.ts +0 -12
- package/lib/typescript/src/skia/types/PlatformBuffer/index.d.ts +0 -1
- package/lib/typescript/src/skia/web/JsiSkPlatformBufferFactory.d.ts +0 -8
- package/src/external/reanimated/moduleWrapper.ts +0 -83
- package/src/skia/types/PlatformBuffer/PlatformBufferFactory.ts +0 -14
- package/src/skia/types/PlatformBuffer/index.ts +0 -1
- package/src/skia/web/JsiSkPlatformBufferFactory.ts +0 -22
@@ -4,11 +4,7 @@ import { type FrameInfo, type SharedValue } from "react-native-reanimated";
|
|
4
4
|
import { useAnimatedImage } from "../../skia/core/AnimatedImage";
|
5
5
|
import type { DataSourceParam, SkImage } from "../../skia/types";
|
6
6
|
|
7
|
-
import
|
8
|
-
throwOnMissingReanimated,
|
9
|
-
useFrameCallback,
|
10
|
-
useSharedValue,
|
11
|
-
} from "./moduleWrapper";
|
7
|
+
import Rea from "./ReanimatedProxy";
|
12
8
|
|
13
9
|
const DEFAULT_FRAME_DURATION = 60;
|
14
10
|
|
@@ -16,11 +12,10 @@ export const useAnimatedImageValue = (
|
|
16
12
|
source: DataSourceParam,
|
17
13
|
paused?: SharedValue<boolean>
|
18
14
|
) => {
|
19
|
-
|
20
|
-
const defaultPaused = useSharedValue(false);
|
15
|
+
const defaultPaused = Rea.useSharedValue(false);
|
21
16
|
const isPaused = paused ?? defaultPaused;
|
22
|
-
const currentFrame = useSharedValue<null | SkImage>(null);
|
23
|
-
const lastTimestamp = useSharedValue(-1);
|
17
|
+
const currentFrame = Rea.useSharedValue<null | SkImage>(null);
|
18
|
+
const lastTimestamp = Rea.useSharedValue(-1);
|
24
19
|
const animatedImage = useAnimatedImage(
|
25
20
|
source,
|
26
21
|
(err) => {
|
@@ -32,7 +27,7 @@ export const useAnimatedImageValue = (
|
|
32
27
|
const frameDuration =
|
33
28
|
animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;
|
34
29
|
|
35
|
-
useFrameCallback((frameInfo: FrameInfo) => {
|
30
|
+
Rea.useFrameCallback((frameInfo: FrameInfo) => {
|
36
31
|
if (!animatedImage) {
|
37
32
|
currentFrame.value = null;
|
38
33
|
return;
|
@@ -1,11 +1,6 @@
|
|
1
1
|
import { useEffect, useMemo } from "react";
|
2
2
|
|
3
|
-
import
|
4
|
-
useSharedValue,
|
5
|
-
runOnJS,
|
6
|
-
startMapper,
|
7
|
-
stopMapper,
|
8
|
-
} from "./moduleWrapper";
|
3
|
+
import Rea from "./ReanimatedProxy";
|
9
4
|
|
10
5
|
export const useDerivedValueOnJS = (
|
11
6
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
@@ -13,13 +8,13 @@ export const useDerivedValueOnJS = (
|
|
13
8
|
deps: unknown[]
|
14
9
|
) => {
|
15
10
|
const init = useMemo(() => fn(), [fn]);
|
16
|
-
const value = useSharedValue(init);
|
11
|
+
const value = Rea.useSharedValue(init);
|
17
12
|
useEffect(() => {
|
18
|
-
const mapperId = startMapper(() => {
|
13
|
+
const mapperId = Rea.startMapper(() => {
|
19
14
|
"worklet";
|
20
|
-
runOnJS(fn)();
|
15
|
+
Rea.runOnJS(fn)();
|
21
16
|
}, deps);
|
22
|
-
return () => stopMapper(mapperId);
|
17
|
+
return () => Rea.stopMapper(mapperId);
|
23
18
|
}, [deps, fn]);
|
24
19
|
return value;
|
25
20
|
};
|
@@ -32,16 +32,10 @@ export const drawAsImage = (element: ReactElement, size: SkSize) => {
|
|
32
32
|
return drawAsImageFromPicture(drawAsPicture(element), size);
|
33
33
|
};
|
34
34
|
|
35
|
-
// TODO: We're not sure yet why PixelRatio is not needed here.
|
36
|
-
const pd = 1;
|
37
35
|
export const drawAsImageFromPicture = (picture: SkPicture, size: SkSize) => {
|
38
36
|
"worklet";
|
39
|
-
const surface = Skia.Surface.MakeOffscreen(
|
40
|
-
size.width * pd,
|
41
|
-
size.height * pd
|
42
|
-
)!;
|
37
|
+
const surface = Skia.Surface.MakeOffscreen(size.width, size.height)!;
|
43
38
|
const canvas = surface.getCanvas();
|
44
|
-
canvas.scale(pd, pd);
|
45
39
|
canvas.drawPicture(picture);
|
46
40
|
surface.flush();
|
47
41
|
const image = surface.makeImageSnapshot();
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import type { SkData } from "../Data";
|
2
|
+
import type { NativeBuffer } from "../NativeBuffer";
|
2
3
|
|
3
4
|
import type { SkImage } from "./Image";
|
4
5
|
|
@@ -27,24 +28,6 @@ export enum ColorType {
|
|
27
28
|
RGBA_F16Norm, // pixel with half floats in [0,1] for red, green, blue, alpha; in 64-bit word
|
28
29
|
RGBA_F16, // pixel with half floats for red, green, blue, alpha; in 64-bit word
|
29
30
|
RGBA_F32, // pixel using C float for red, green, blue, alpha; in 128-bit word
|
30
|
-
|
31
|
-
// The following 6 colortypes are just for reading from - not for rendering to
|
32
|
-
R8G8_unorm, // pixel with a uint8_t for red and green
|
33
|
-
|
34
|
-
A16_float, // pixel with a half float for alpha
|
35
|
-
R16G16_float, // pixel with a half float for red and green
|
36
|
-
|
37
|
-
A16_unorm, // pixel with a little endian uint16_t for alpha
|
38
|
-
R16G16_unorm, // pixel with a little endian uint16_t for red and green
|
39
|
-
R16G16B16A16_unorm, // pixel with a little endian uint16_t for red, green, blue, and alpha
|
40
|
-
|
41
|
-
SRGBA_8888,
|
42
|
-
R8_unorm,
|
43
|
-
|
44
|
-
// The `kN32_SkColorType` is platform dependent in the original enum,
|
45
|
-
// and TypeScript doesn't support conditional compilation natively.
|
46
|
-
// You might need to handle it differently based on your use case.
|
47
|
-
N32_SkColorType, // either BGRA_8888 or RGBA_8888 based on the platform
|
48
31
|
}
|
49
32
|
|
50
33
|
export interface ImageInfo {
|
@@ -70,19 +53,20 @@ export interface ImageFactory {
|
|
70
53
|
MakeImageFromEncoded: (encoded: SkData) => SkImage | null;
|
71
54
|
|
72
55
|
/**
|
73
|
-
* Return an Image backed by
|
56
|
+
* Return an Image backed by a given native buffer.
|
74
57
|
* The platform buffer must be a valid owning reference.
|
75
58
|
*
|
76
|
-
*
|
59
|
+
* For instance, this API is used by
|
60
|
+
* [react-native-vision-camera](https://github.com/mrousavy/react-native-vision-camera)
|
77
61
|
* to render a Skia Camera preview.
|
78
62
|
*
|
79
63
|
* - On Android; This is an `AHardwareBuffer*`
|
80
|
-
* - On iOS, this is a `
|
81
|
-
* @param
|
64
|
+
* - On iOS, this is a `CVPixelBufferRef`
|
65
|
+
* @param nativeBuffer A strong `uintptr_t` pointer to the native platform buffer
|
82
66
|
* @throws Throws an error if the Image could not be created, for example when the given
|
83
67
|
* platform buffer is invalid.
|
84
68
|
*/
|
85
|
-
|
69
|
+
MakeImageFromNativeBuffer: (nativeBuffer: NativeBuffer) => SkImage;
|
86
70
|
|
87
71
|
/**
|
88
72
|
* Returns an image that will be a screenshot of the view represented by
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import type { SkImage } from "../Image";
|
2
|
+
|
3
|
+
export type NativeBuffer<
|
4
|
+
T extends bigint | ArrayBuffer | CanvasImageSource | unknown = unknown
|
5
|
+
> = T;
|
6
|
+
|
7
|
+
export type NativeBufferAddr = NativeBuffer<bigint>;
|
8
|
+
export type NativeBufferWeb = NativeBuffer<CanvasImageSource>;
|
9
|
+
export type NativeBufferNode = NativeBuffer<ArrayBuffer>;
|
10
|
+
|
11
|
+
export const isNativeBufferAddr = (
|
12
|
+
buffer: NativeBuffer
|
13
|
+
): buffer is NativeBufferAddr => buffer instanceof BigInt;
|
14
|
+
export const isNativeBufferWeb = (
|
15
|
+
buffer: NativeBuffer
|
16
|
+
): buffer is NativeBufferWeb =>
|
17
|
+
buffer instanceof HTMLVideoElement ||
|
18
|
+
buffer instanceof HTMLCanvasElement ||
|
19
|
+
buffer instanceof ImageBitmap ||
|
20
|
+
buffer instanceof OffscreenCanvas ||
|
21
|
+
buffer instanceof VideoFrame ||
|
22
|
+
buffer instanceof HTMLImageElement ||
|
23
|
+
buffer instanceof SVGImageElement;
|
24
|
+
|
25
|
+
export const isNativeBufferNode = (
|
26
|
+
buffer: NativeBuffer
|
27
|
+
): buffer is NativeBufferNode => buffer instanceof ArrayBuffer;
|
28
|
+
|
29
|
+
export interface NativeBufferFactory {
|
30
|
+
/**
|
31
|
+
* Copy pixels to a native buffer.
|
32
|
+
*/
|
33
|
+
MakeFromImage: (image: SkImage) => NativeBuffer;
|
34
|
+
/**
|
35
|
+
* Release a platform buffer that was created with `MakeFromImage`.
|
36
|
+
*/
|
37
|
+
Release: (platformBuffer: NativeBuffer) => void;
|
38
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from "./NativeBufferFactory";
|
package/src/skia/types/Skia.ts
CHANGED
@@ -30,7 +30,7 @@ import type { Color, SkColor } from "./Color";
|
|
30
30
|
import type { TypefaceFontProviderFactory } from "./Paragraph/TypefaceFontProviderFactory";
|
31
31
|
import type { AnimatedImageFactory } from "./AnimatedImage";
|
32
32
|
import type { ParagraphBuilderFactory } from "./Paragraph/ParagraphBuilder";
|
33
|
-
import type {
|
33
|
+
import type { NativeBufferFactory } from "./NativeBuffer";
|
34
34
|
|
35
35
|
/**
|
36
36
|
* Declares the interface for the native Skia API
|
@@ -95,5 +95,5 @@ export interface Skia {
|
|
95
95
|
TextBlob: TextBlobFactory;
|
96
96
|
Surface: SurfaceFactory;
|
97
97
|
ParagraphBuilder: ParagraphBuilderFactory;
|
98
|
-
|
98
|
+
NativeBuffer: NativeBufferFactory;
|
99
99
|
}
|
package/src/skia/types/index.ts
CHANGED
@@ -1,16 +1,18 @@
|
|
1
|
-
import type { CanvasKit } from "canvaskit-wasm";
|
1
|
+
import type { CanvasKit, Image } from "canvaskit-wasm";
|
2
2
|
|
3
|
+
import { isNativeBufferWeb } from "../types";
|
3
4
|
import type {
|
4
5
|
SkData,
|
5
6
|
ImageInfo,
|
6
7
|
SkImage,
|
7
|
-
|
8
|
+
NativeBuffer,
|
8
9
|
ImageFactory,
|
9
10
|
} from "../types";
|
10
11
|
|
11
12
|
import { Host, getEnum } from "./Host";
|
12
13
|
import { JsiSkImage } from "./JsiSkImage";
|
13
14
|
import { JsiSkData } from "./JsiSkData";
|
15
|
+
import type { JsiSkSurface } from "./JsiSkSurface";
|
14
16
|
|
15
17
|
export class JsiSkImageFactory extends Host implements ImageFactory {
|
16
18
|
constructor(CanvasKit: CanvasKit) {
|
@@ -24,10 +26,30 @@ export class JsiSkImageFactory extends Host implements ImageFactory {
|
|
24
26
|
return Promise.resolve(null);
|
25
27
|
}
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
29
|
+
MakeImageFromNativeBuffer(
|
30
|
+
buffer: NativeBuffer,
|
31
|
+
surface?: JsiSkSurface,
|
32
|
+
image?: JsiSkImage
|
33
|
+
) {
|
34
|
+
if (!isNativeBufferWeb(buffer)) {
|
35
|
+
throw new Error("Invalid NativeBuffer");
|
36
|
+
}
|
37
|
+
if (!surface) {
|
38
|
+
// TODO: this is way to slow
|
39
|
+
const img = this.CanvasKit.MakeImageFromCanvasImageSource(buffer);
|
40
|
+
return new JsiSkImage(this.CanvasKit, img);
|
41
|
+
} else if (!image) {
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
43
|
+
const img = (surface as any).makeImageFromTextureSource(buffer) as Image;
|
44
|
+
return new JsiSkImage(this.CanvasKit, img);
|
45
|
+
} else {
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
47
|
+
const img = (surface as any).updateTextureFromSource(
|
48
|
+
image,
|
49
|
+
buffer
|
50
|
+
) as Image;
|
51
|
+
return new JsiSkImage(this.CanvasKit, img);
|
52
|
+
}
|
31
53
|
}
|
32
54
|
|
33
55
|
MakeImageFromEncoded(encoded: SkData) {
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import type { CanvasKit } from "canvaskit-wasm";
|
2
|
+
|
3
|
+
import {
|
4
|
+
type NativeBuffer,
|
5
|
+
type NativeBufferFactory,
|
6
|
+
type SkImage,
|
7
|
+
} from "../types";
|
8
|
+
|
9
|
+
import { Host } from "./Host";
|
10
|
+
|
11
|
+
export class JsiSkNativeBufferFactory
|
12
|
+
extends Host
|
13
|
+
implements NativeBufferFactory
|
14
|
+
{
|
15
|
+
constructor(CanvasKit: CanvasKit) {
|
16
|
+
super(CanvasKit);
|
17
|
+
}
|
18
|
+
|
19
|
+
MakeFromImage(image: SkImage): NativeBuffer {
|
20
|
+
const info = image.getImageInfo();
|
21
|
+
const uint8ClampedArray = new Uint8ClampedArray(image.readPixels()!);
|
22
|
+
const imageData = new ImageData(uint8ClampedArray, info.width, info.height);
|
23
|
+
const canvas = new OffscreenCanvas(info.width, info.height);
|
24
|
+
const ctx = canvas.getContext("2d");
|
25
|
+
if (!ctx) {
|
26
|
+
throw new Error("Failed to get 2d context from canvas");
|
27
|
+
}
|
28
|
+
ctx.putImageData(imageData, 0, 0);
|
29
|
+
return canvas;
|
30
|
+
}
|
31
|
+
|
32
|
+
Release(_platformBuffer: NativeBuffer) {
|
33
|
+
// it's a noop on Web
|
34
|
+
}
|
35
|
+
}
|
package/src/skia/web/JsiSkia.ts
CHANGED
@@ -41,7 +41,7 @@ import { JsiSkTypefaceFontProviderFactory } from "./JsiSkTypefaceFontProviderFac
|
|
41
41
|
import { JsiSkFontMgrFactory } from "./JsiSkFontMgrFactory";
|
42
42
|
import { JsiSkAnimatedImageFactory } from "./JsiSkAnimatedImageFactory";
|
43
43
|
import { JsiSkParagraphBuilderFactory } from "./JsiSkParagraphBuilderFactory";
|
44
|
-
import {
|
44
|
+
import { JsiSkNativeBufferFactory } from "./JsiSkNativeBufferFactory";
|
45
45
|
|
46
46
|
export const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({
|
47
47
|
Point: (x: number, y: number) =>
|
@@ -126,5 +126,5 @@ export const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({
|
|
126
126
|
TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),
|
127
127
|
FontMgr: new JsiSkFontMgrFactory(CanvasKit),
|
128
128
|
ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),
|
129
|
-
|
129
|
+
NativeBuffer: new JsiSkNativeBufferFactory(CanvasKit),
|
130
130
|
});
|
package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDrawViewManagerDelegate.java
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
3
|
-
*
|
4
|
-
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
5
|
-
* once the code is regenerated.
|
6
|
-
*
|
7
|
-
* @generated by codegen project: GeneratePropsJavaDelegate.js
|
8
|
-
*/
|
9
|
-
|
10
|
-
package com.facebook.react.viewmanagers;
|
11
|
-
|
12
|
-
import android.view.View;
|
13
|
-
import androidx.annotation.Nullable;
|
14
|
-
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
15
|
-
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
16
|
-
|
17
|
-
public class SkiaDrawViewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & SkiaDrawViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
|
18
|
-
public SkiaDrawViewManagerDelegate(U viewManager) {
|
19
|
-
super(viewManager);
|
20
|
-
}
|
21
|
-
@Override
|
22
|
-
public void setProperty(T view, String propName, @Nullable Object value) {
|
23
|
-
switch (propName) {
|
24
|
-
case "mode":
|
25
|
-
mViewManager.setMode(view, value == null ? null : (String) value);
|
26
|
-
break;
|
27
|
-
case "debug":
|
28
|
-
mViewManager.setDebug(view, value == null ? false : (boolean) value);
|
29
|
-
break;
|
30
|
-
default:
|
31
|
-
super.setProperty(view, propName, value);
|
32
|
-
}
|
33
|
-
}
|
34
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <memory>
|
4
|
-
#include <utility>
|
5
|
-
|
6
|
-
#include <jsi/jsi.h>
|
7
|
-
|
8
|
-
#include "JsiSkImage.h"
|
9
|
-
|
10
|
-
namespace RNSkia {
|
11
|
-
|
12
|
-
namespace jsi = facebook::jsi;
|
13
|
-
|
14
|
-
/**
|
15
|
-
Implementation of the ParagraphBuilderFactory for making ParagraphBuilder JSI
|
16
|
-
object
|
17
|
-
*/
|
18
|
-
class JsiPlatformBufferFactory : public JsiSkHostObject {
|
19
|
-
public:
|
20
|
-
JSI_HOST_FUNCTION(MakeFromImage) {
|
21
|
-
auto image = JsiSkImage::fromValue(runtime, arguments[0]);
|
22
|
-
image->makeNonTextureImage();
|
23
|
-
|
24
|
-
uint64_t pointer = getContext()->makePlatformBuffer(image);
|
25
|
-
jsi::HostFunctionType deleteFunc =
|
26
|
-
[=](jsi::Runtime &runtime, const jsi::Value &thisArg,
|
27
|
-
const jsi::Value *args, size_t count) -> jsi::Value {
|
28
|
-
getContext()->releasePlatformBuffer(pointer);
|
29
|
-
return jsi::Value::undefined();
|
30
|
-
};
|
31
|
-
return jsi::BigInt::fromUint64(runtime, pointer);
|
32
|
-
}
|
33
|
-
|
34
|
-
JSI_HOST_FUNCTION(Release) {
|
35
|
-
|
36
|
-
jsi::BigInt pointer = arguments[0].asBigInt(runtime);
|
37
|
-
const uintptr_t platformBufferPointer = pointer.asUint64(runtime);
|
38
|
-
|
39
|
-
getContext()->releasePlatformBuffer(platformBufferPointer);
|
40
|
-
return jsi::Value::undefined();
|
41
|
-
}
|
42
|
-
|
43
|
-
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiPlatformBufferFactory, Release),
|
44
|
-
JSI_EXPORT_FUNC(JsiPlatformBufferFactory, MakeFromImage))
|
45
|
-
|
46
|
-
explicit JsiPlatformBufferFactory(
|
47
|
-
std::shared_ptr<RNSkPlatformContext> context)
|
48
|
-
: JsiSkHostObject(std::move(context)) {}
|
49
|
-
};
|
50
|
-
|
51
|
-
} // namespace RNSkia
|
@@ -1,9 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Copyright 2018 Google Inc.
|
3
|
-
*
|
4
|
-
* Use of this source code is governed by a BSD-style license that can be
|
5
|
-
* found in the LICENSE file.
|
6
|
-
*/
|
7
|
-
|
8
|
-
// TODO(kjlubick) delete after Chrome (and Android?) are migrated.
|
9
|
-
#include "include/gpu/ganesh/vk/GrBackendDrawableInfo.h"
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { DependencyList } from "react";
|
2
|
-
import type { DerivedValue, FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
3
|
-
export declare const HAS_REANIMATED2: boolean;
|
4
|
-
export declare const HAS_REANIMATED3: boolean;
|
5
|
-
export declare function throwOnMissingReanimated(): void;
|
6
|
-
export declare const useSharedValue: <T>(init: T, oneWayReadsOnly?: boolean) => SharedValue<T>;
|
7
|
-
export declare const useDerivedValue: <T>(processor: () => T, dependencies?: DependencyList) => DerivedValue<T>;
|
8
|
-
export declare const useFrameCallback: (callback: (frameInfo: FrameInfo) => void, autostart?: boolean) => FrameCallback;
|
9
|
-
export declare const startMapper: (worklet: () => void, inputs?: unknown[], outputs?: unknown[]) => number;
|
10
|
-
export declare const stopMapper: (mapperID: number) => void;
|
11
|
-
export declare const runOnJS: any;
|
12
|
-
export declare const runOnUI: any;
|
13
|
-
export declare const makeMutable: <T>(val: T) => SharedValue<T>;
|
14
|
-
export declare const useAnimatedReaction: <T>(prepare: () => T, react: (v: T) => void, dependencies?: DependencyList) => void;
|
15
|
-
export declare const isSharedValue: <T>(value: unknown) => value is SharedValue<T>;
|
@@ -1,46 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.stopMapper = exports.startMapper = exports.runOnUI = exports.runOnJS = exports.makeMutable = exports.isSharedValue = exports.HAS_REANIMATED3 = exports.HAS_REANIMATED2 = void 0;
|
7
|
-
exports.throwOnMissingReanimated = throwOnMissingReanimated;
|
8
|
-
exports.useSharedValue = exports.useFrameCallback = exports.useDerivedValue = exports.useAnimatedReaction = void 0;
|
9
|
-
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6, _Reanimated7, _Reanimated8, _Reanimated9;
|
10
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
11
|
-
|
12
|
-
// This one is needed for the deprecated useSharedValue function
|
13
|
-
// We can remove it once we remove the deprecation
|
14
|
-
|
15
|
-
let Reanimated2;
|
16
|
-
let Reanimated3;
|
17
|
-
let reanimatedVersion;
|
18
|
-
try {
|
19
|
-
Reanimated2 = require("react-native-reanimated");
|
20
|
-
reanimatedVersion = require("react-native-reanimated/package.json").version;
|
21
|
-
if (reanimatedVersion && (reanimatedVersion >= "3.0.0" || reanimatedVersion.includes("3.0.0-"))) {
|
22
|
-
Reanimated3 = Reanimated2;
|
23
|
-
}
|
24
|
-
} catch (e) {}
|
25
|
-
const HAS_REANIMATED2 = exports.HAS_REANIMATED2 = !!Reanimated2;
|
26
|
-
const HAS_REANIMATED3 = exports.HAS_REANIMATED3 = !!Reanimated3;
|
27
|
-
function throwOnMissingReanimated() {
|
28
|
-
if (!HAS_REANIMATED2) {
|
29
|
-
throw new Error("Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \
|
30
|
-
react-native-skia's integration layer API.");
|
31
|
-
}
|
32
|
-
}
|
33
|
-
const useSharedValue = exports.useSharedValue = ((_Reanimated = Reanimated2) === null || _Reanimated === void 0 ? void 0 : _Reanimated.useSharedValue) || throwOnMissingReanimated;
|
34
|
-
const useDerivedValue = exports.useDerivedValue = ((_Reanimated2 = Reanimated2) === null || _Reanimated2 === void 0 ? void 0 : _Reanimated2.useDerivedValue) || throwOnMissingReanimated;
|
35
|
-
const useFrameCallback = exports.useFrameCallback = ((_Reanimated3 = Reanimated2) === null || _Reanimated3 === void 0 ? void 0 : _Reanimated3.useFrameCallback) || throwOnMissingReanimated;
|
36
|
-
const startMapper = exports.startMapper = ((_Reanimated4 = Reanimated2) === null || _Reanimated4 === void 0 ? void 0 : _Reanimated4.startMapper) || throwOnMissingReanimated;
|
37
|
-
const stopMapper = exports.stopMapper = ((_Reanimated5 = Reanimated2) === null || _Reanimated5 === void 0 ? void 0 : _Reanimated5.stopMapper) || throwOnMissingReanimated;
|
38
|
-
const runOnJS = exports.runOnJS = ((_Reanimated6 = Reanimated2) === null || _Reanimated6 === void 0 ? void 0 : _Reanimated6.runOnJS) || throwOnMissingReanimated;
|
39
|
-
const runOnUI = exports.runOnUI = ((_Reanimated7 = Reanimated2) === null || _Reanimated7 === void 0 ? void 0 : _Reanimated7.runOnUI) || throwOnMissingReanimated;
|
40
|
-
const makeMutable = exports.makeMutable = ((_Reanimated8 = Reanimated2) === null || _Reanimated8 === void 0 ? void 0 : _Reanimated8.makeMutable) || throwOnMissingReanimated;
|
41
|
-
const useAnimatedReaction = exports.useAnimatedReaction = ((_Reanimated9 = Reanimated2) === null || _Reanimated9 === void 0 ? void 0 : _Reanimated9.useAnimatedReaction) || throwOnMissingReanimated;
|
42
|
-
const isSharedValue = value => {
|
43
|
-
return !!value && (Reanimated3 ? Reanimated3.isSharedValue(value) : value.value !== undefined);
|
44
|
-
};
|
45
|
-
exports.isSharedValue = isSharedValue;
|
46
|
-
//# sourceMappingURL=moduleWrapper.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","exports","HAS_REANIMATED3","throwOnMissingReanimated","Error","useSharedValue","_Reanimated","useDerivedValue","_Reanimated2","useFrameCallback","_Reanimated3","startMapper","_Reanimated4","stopMapper","_Reanimated5","runOnJS","_Reanimated6","runOnUI","_Reanimated7","makeMutable","_Reanimated8","useAnimatedReaction","_Reanimated9","isSharedValue","value","undefined"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from \"react\";\nimport type {\n DerivedValue,\n FrameCallback,\n FrameInfo,\n SharedValue,\n} from \"react-native-reanimated\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion = require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nexport const useSharedValue: <T>(\n init: T,\n oneWayReadsOnly?: boolean\n) => SharedValue<T> = Reanimated2?.useSharedValue || throwOnMissingReanimated;\n\nexport const useDerivedValue: <T>(\n processor: () => T,\n dependencies?: DependencyList\n) => DerivedValue<T> = Reanimated2?.useDerivedValue || throwOnMissingReanimated;\n\nexport const useFrameCallback: (\n callback: (frameInfo: FrameInfo) => void,\n autostart?: boolean\n) => FrameCallback = Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper: (\n worklet: () => void,\n inputs?: unknown[],\n outputs?: unknown[]\n) => number = Reanimated2?.startMapper || throwOnMissingReanimated;\n\nexport const stopMapper: (mapperID: number) => void =\n Reanimated2?.stopMapper || throwOnMissingReanimated;\n\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\nexport const runOnUI = Reanimated2?.runOnUI || throwOnMissingReanimated;\nexport const makeMutable: <T>(val: T) => SharedValue<T> =\n Reanimated2?.makeMutable || throwOnMissingReanimated;\n\nexport const useAnimatedReaction: <T>(\n prepare: () => T,\n react: (v: T) => void,\n dependencies?: DependencyList\n) => void = Reanimated2?.useAnimatedReaction || throwOnMissingReanimated;\n\nexport const isSharedValue = <T>(value: unknown): value is SharedValue<T> => {\n return (\n !!value &&\n (Reanimated3\n ? Reanimated3.isSharedValue(value)\n : (value as any).value !== undefined)\n );\n};\n"],"mappings":";;;;;;;;;AAAA;;AASA;AACA;;AAEA,IAAIA,WAAgB;AAEpB,IAAIC,WAAgB;AACpB,IAAIC,iBAAyB;AAE7B,IAAI;EACFF,WAAW,GAAGG,OAAO,CAAC,yBAAyB,CAAC;EAChDD,iBAAiB,GAAGC,OAAO,CAAC,sCAAsC,CAAC,CAACC,OAAO;EAC3E,IACEF,iBAAiB,KAChBA,iBAAiB,IAAI,OAAO,IAAIA,iBAAiB,CAACG,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACtE;IACAJ,WAAW,GAAGD,WAAW;EAC3B;AACF,CAAC,CAAC,OAAOM,CAAC,EAAE,CAAC;AAEN,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,CAAC,CAACP,WAAW;AACrC,MAAMS,eAAe,GAAAD,OAAA,CAAAC,eAAA,GAAG,CAAC,CAACR,WAAW;AAErC,SAASS,wBAAwBA,CAAA,EAAG;EACzC,IAAI,CAACH,eAAe,EAAE;IACpB,MAAM,IAAII,KAAK,CACb;AACN,iDACI,CAAC;EACH;AACF;AAEO,MAAMC,cAGM,GAAAJ,OAAA,CAAAI,cAAA,GAAG,EAAAC,WAAA,GAAAb,WAAW,cAAAa,WAAA,uBAAXA,WAAA,CAAaD,cAAc,KAAIF,wBAAwB;AAEtE,MAAMI,eAGO,GAAAN,OAAA,CAAAM,eAAA,GAAG,EAAAC,YAAA,GAAAf,WAAW,cAAAe,YAAA,uBAAXA,YAAA,CAAaD,eAAe,KAAIJ,wBAAwB;AAExE,MAAMM,gBAGK,GAAAR,OAAA,CAAAQ,gBAAA,GAAG,EAAAC,YAAA,GAAAjB,WAAW,cAAAiB,YAAA,uBAAXA,YAAA,CAAaD,gBAAgB,KAAIN,wBAAwB;AAEvE,MAAMQ,WAIF,GAAAV,OAAA,CAAAU,WAAA,GAAG,EAAAC,YAAA,GAAAnB,WAAW,cAAAmB,YAAA,uBAAXA,YAAA,CAAaD,WAAW,KAAIR,wBAAwB;AAE3D,MAAMU,UAAsC,GAAAZ,OAAA,CAAAY,UAAA,GACjD,EAAAC,YAAA,GAAArB,WAAW,cAAAqB,YAAA,uBAAXA,YAAA,CAAaD,UAAU,KAAIV,wBAAwB;AAE9C,MAAMY,OAAO,GAAAd,OAAA,CAAAc,OAAA,GAAG,EAAAC,YAAA,GAAAvB,WAAW,cAAAuB,YAAA,uBAAXA,YAAA,CAAaD,OAAO,KAAIZ,wBAAwB;AAChE,MAAMc,OAAO,GAAAhB,OAAA,CAAAgB,OAAA,GAAG,EAAAC,YAAA,GAAAzB,WAAW,cAAAyB,YAAA,uBAAXA,YAAA,CAAaD,OAAO,KAAId,wBAAwB;AAChE,MAAMgB,WAA0C,GAAAlB,OAAA,CAAAkB,WAAA,GACrD,EAAAC,YAAA,GAAA3B,WAAW,cAAA2B,YAAA,uBAAXA,YAAA,CAAaD,WAAW,KAAIhB,wBAAwB;AAE/C,MAAMkB,mBAIJ,GAAApB,OAAA,CAAAoB,mBAAA,GAAG,EAAAC,YAAA,GAAA7B,WAAW,cAAA6B,YAAA,uBAAXA,YAAA,CAAaD,mBAAmB,KAAIlB,wBAAwB;AAEjE,MAAMoB,aAAa,GAAOC,KAAc,IAA8B;EAC3E,OACE,CAAC,CAACA,KAAK,KACN9B,WAAW,GACRA,WAAW,CAAC6B,aAAa,CAACC,KAAK,CAAC,GAC/BA,KAAK,CAASA,KAAK,KAAKC,SAAS,CAAC;AAE3C,CAAC;AAACxB,OAAA,CAAAsB,aAAA,GAAAA,aAAA"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import type { SkImage } from "../Image";
|
2
|
-
export type PlatformBuffer = bigint;
|
3
|
-
export interface PlatformBufferFactory {
|
4
|
-
/**
|
5
|
-
* Copy pixels to a platform buffer. (for testing purposes)
|
6
|
-
*/
|
7
|
-
MakeFromImage: (image: SkImage) => PlatformBuffer;
|
8
|
-
/**
|
9
|
-
* Release a platform buffer that was created with `MakeFromImage`.
|
10
|
-
*/
|
11
|
-
Release: (platformBuffer: PlatformBuffer) => void;
|
12
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["PlatformBufferFactory.ts"],"sourcesContent":["import type { SkImage } from \"../Image\";\n\nexport type PlatformBuffer = bigint;\n\nexport interface PlatformBufferFactory {\n /**\n * Copy pixels to a platform buffer. (for testing purposes)\n */\n MakeFromImage: (image: SkImage) => PlatformBuffer;\n /**\n * Release a platform buffer that was created with `MakeFromImage`.\n */\n Release: (platformBuffer: PlatformBuffer) => void;\n}\n"],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
export * from "./PlatformBufferFactory";
|
@@ -1,17 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
var _PlatformBufferFactory = require("./PlatformBufferFactory");
|
7
|
-
Object.keys(_PlatformBufferFactory).forEach(function (key) {
|
8
|
-
if (key === "default" || key === "__esModule") return;
|
9
|
-
if (key in exports && exports[key] === _PlatformBufferFactory[key]) return;
|
10
|
-
Object.defineProperty(exports, key, {
|
11
|
-
enumerable: true,
|
12
|
-
get: function () {
|
13
|
-
return _PlatformBufferFactory[key];
|
14
|
-
}
|
15
|
-
});
|
16
|
-
});
|
17
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["_PlatformBufferFactory","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./PlatformBufferFactory\";\n"],"mappings":";;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,sBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,sBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,sBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import type { CanvasKit } from "canvaskit-wasm";
|
2
|
-
import type { PlatformBuffer, PlatformBufferFactory, SkImage } from "../types";
|
3
|
-
import { Host } from "./Host";
|
4
|
-
export declare class JsiSkPlatformBufferFactory extends Host implements PlatformBufferFactory {
|
5
|
-
constructor(CanvasKit: CanvasKit);
|
6
|
-
MakeFromImage(_image: SkImage): PlatformBuffer;
|
7
|
-
Release(_platformBuffer: PlatformBuffer): void;
|
8
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.JsiSkPlatformBufferFactory = void 0;
|
7
|
-
var _Host = require("./Host");
|
8
|
-
class JsiSkPlatformBufferFactory extends _Host.Host {
|
9
|
-
constructor(CanvasKit) {
|
10
|
-
super(CanvasKit);
|
11
|
-
}
|
12
|
-
MakeFromImage(_image) {
|
13
|
-
throw new _Host.NotImplementedOnRNWeb();
|
14
|
-
}
|
15
|
-
Release(_platformBuffer) {
|
16
|
-
throw new _Host.NotImplementedOnRNWeb();
|
17
|
-
}
|
18
|
-
}
|
19
|
-
exports.JsiSkPlatformBufferFactory = JsiSkPlatformBufferFactory;
|
20
|
-
//# sourceMappingURL=JsiSkPlatformBufferFactory.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"names":["_Host","require","JsiSkPlatformBufferFactory","Host","constructor","CanvasKit","MakeFromImage","_image","NotImplementedOnRNWeb","Release","_platformBuffer","exports"],"sources":["JsiSkPlatformBufferFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { PlatformBuffer, PlatformBufferFactory, SkImage } from \"../types\";\n\nimport { Host, NotImplementedOnRNWeb } from \"./Host\";\n\nexport class JsiSkPlatformBufferFactory\n extends Host\n implements PlatformBufferFactory\n{\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeFromImage(_image: SkImage): PlatformBuffer {\n throw new NotImplementedOnRNWeb();\n }\n\n Release(_platformBuffer: PlatformBuffer) {\n throw new NotImplementedOnRNWeb();\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,KAAA,GAAAC,OAAA;AAEO,MAAMC,0BAA0B,SAC7BC,UAAI,CAEd;EACEC,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,aAAaA,CAACC,MAAe,EAAkB;IAC7C,MAAM,IAAIC,2BAAqB,CAAC,CAAC;EACnC;EAEAC,OAAOA,CAACC,eAA+B,EAAE;IACvC,MAAM,IAAIF,2BAAqB,CAAC,CAAC;EACnC;AACF;AAACG,OAAA,CAAAT,0BAAA,GAAAA,0BAAA"}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { DependencyList } from "react";
|
2
|
-
import type { DerivedValue, FrameCallback, FrameInfo, SharedValue } from "react-native-reanimated";
|
3
|
-
export declare const HAS_REANIMATED2: boolean;
|
4
|
-
export declare const HAS_REANIMATED3: boolean;
|
5
|
-
export declare function throwOnMissingReanimated(): void;
|
6
|
-
export declare const useSharedValue: <T>(init: T, oneWayReadsOnly?: boolean) => SharedValue<T>;
|
7
|
-
export declare const useDerivedValue: <T>(processor: () => T, dependencies?: DependencyList) => DerivedValue<T>;
|
8
|
-
export declare const useFrameCallback: (callback: (frameInfo: FrameInfo) => void, autostart?: boolean) => FrameCallback;
|
9
|
-
export declare const startMapper: (worklet: () => void, inputs?: unknown[], outputs?: unknown[]) => number;
|
10
|
-
export declare const stopMapper: (mapperID: number) => void;
|
11
|
-
export declare const runOnJS: any;
|
12
|
-
export declare const runOnUI: any;
|
13
|
-
export declare const makeMutable: <T>(val: T) => SharedValue<T>;
|
14
|
-
export declare const useAnimatedReaction: <T>(prepare: () => T, react: (v: T) => void, dependencies?: DependencyList) => void;
|
15
|
-
export declare const isSharedValue: <T>(value: unknown) => value is SharedValue<T>;
|
@@ -1,37 +0,0 @@
|
|
1
|
-
var _Reanimated, _Reanimated2, _Reanimated3, _Reanimated4, _Reanimated5, _Reanimated6, _Reanimated7, _Reanimated8, _Reanimated9;
|
2
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
3
|
-
|
4
|
-
// This one is needed for the deprecated useSharedValue function
|
5
|
-
// We can remove it once we remove the deprecation
|
6
|
-
|
7
|
-
let Reanimated2;
|
8
|
-
let Reanimated3;
|
9
|
-
let reanimatedVersion;
|
10
|
-
try {
|
11
|
-
Reanimated2 = require("react-native-reanimated");
|
12
|
-
reanimatedVersion = require("react-native-reanimated/package.json").version;
|
13
|
-
if (reanimatedVersion && (reanimatedVersion >= "3.0.0" || reanimatedVersion.includes("3.0.0-"))) {
|
14
|
-
Reanimated3 = Reanimated2;
|
15
|
-
}
|
16
|
-
} catch (e) {}
|
17
|
-
export const HAS_REANIMATED2 = !!Reanimated2;
|
18
|
-
export const HAS_REANIMATED3 = !!Reanimated3;
|
19
|
-
export function throwOnMissingReanimated() {
|
20
|
-
if (!HAS_REANIMATED2) {
|
21
|
-
throw new Error("Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \
|
22
|
-
react-native-skia's integration layer API.");
|
23
|
-
}
|
24
|
-
}
|
25
|
-
export const useSharedValue = ((_Reanimated = Reanimated2) === null || _Reanimated === void 0 ? void 0 : _Reanimated.useSharedValue) || throwOnMissingReanimated;
|
26
|
-
export const useDerivedValue = ((_Reanimated2 = Reanimated2) === null || _Reanimated2 === void 0 ? void 0 : _Reanimated2.useDerivedValue) || throwOnMissingReanimated;
|
27
|
-
export const useFrameCallback = ((_Reanimated3 = Reanimated2) === null || _Reanimated3 === void 0 ? void 0 : _Reanimated3.useFrameCallback) || throwOnMissingReanimated;
|
28
|
-
export const startMapper = ((_Reanimated4 = Reanimated2) === null || _Reanimated4 === void 0 ? void 0 : _Reanimated4.startMapper) || throwOnMissingReanimated;
|
29
|
-
export const stopMapper = ((_Reanimated5 = Reanimated2) === null || _Reanimated5 === void 0 ? void 0 : _Reanimated5.stopMapper) || throwOnMissingReanimated;
|
30
|
-
export const runOnJS = ((_Reanimated6 = Reanimated2) === null || _Reanimated6 === void 0 ? void 0 : _Reanimated6.runOnJS) || throwOnMissingReanimated;
|
31
|
-
export const runOnUI = ((_Reanimated7 = Reanimated2) === null || _Reanimated7 === void 0 ? void 0 : _Reanimated7.runOnUI) || throwOnMissingReanimated;
|
32
|
-
export const makeMutable = ((_Reanimated8 = Reanimated2) === null || _Reanimated8 === void 0 ? void 0 : _Reanimated8.makeMutable) || throwOnMissingReanimated;
|
33
|
-
export const useAnimatedReaction = ((_Reanimated9 = Reanimated2) === null || _Reanimated9 === void 0 ? void 0 : _Reanimated9.useAnimatedReaction) || throwOnMissingReanimated;
|
34
|
-
export const isSharedValue = value => {
|
35
|
-
return !!value && (Reanimated3 ? Reanimated3.isSharedValue(value) : value.value !== undefined);
|
36
|
-
};
|
37
|
-
//# sourceMappingURL=moduleWrapper.js.map
|