@shopify/react-native-skia 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +38 -6
- package/android/build.gradle +1 -0
- package/android/cpp/jni/include/JniSkiaBaseView.h +0 -3
- package/android/cpp/jni/include/JniSkiaDomView.h +0 -6
- package/android/cpp/jni/include/JniSkiaPictureView.h +0 -5
- package/android/cpp/rnskia-android/RNSkAndroidView.h +0 -20
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +0 -72
- package/cpp/rnskia/RNSkDomView.cpp +0 -79
- package/cpp/rnskia/RNSkDomView.h +1 -39
- package/cpp/rnskia/RNSkPictureView.h +0 -1
- package/cpp/rnskia/RNSkView.h +0 -17
- package/ios/RNSkia-iOS/SkiaUIView.mm +0 -51
- package/lib/commonjs/mock/index.js +0 -1
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.d.ts +1 -2
- package/lib/commonjs/renderer/Canvas.js +0 -3
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.d.ts +2 -11
- package/lib/commonjs/views/SkiaBaseWebView.js +3 -31
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/SkiaDomView.js +0 -12
- package/lib/commonjs/views/SkiaDomView.js.map +1 -1
- package/lib/commonjs/views/SkiaDomView.web.d.ts +2 -2
- package/lib/commonjs/views/SkiaDomView.web.js +1 -6
- package/lib/commonjs/views/SkiaDomView.web.js.map +1 -1
- package/lib/commonjs/views/SkiaJSDomView.js +0 -12
- package/lib/commonjs/views/SkiaJSDomView.js.map +1 -1
- package/lib/commonjs/views/index.d.ts +0 -1
- package/lib/commonjs/views/index.js +0 -11
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/commonjs/views/types.d.ts +0 -26
- package/lib/commonjs/views/types.js +0 -8
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/mock/index.js +0 -1
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/Canvas.d.ts +1 -2
- package/lib/module/renderer/Canvas.js +0 -3
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.d.ts +2 -11
- package/lib/module/views/SkiaBaseWebView.js +3 -31
- package/lib/module/views/SkiaBaseWebView.js.map +1 -1
- package/lib/module/views/SkiaDomView.js +0 -12
- package/lib/module/views/SkiaDomView.js.map +1 -1
- package/lib/module/views/SkiaDomView.web.d.ts +2 -2
- package/lib/module/views/SkiaDomView.web.js +1 -6
- package/lib/module/views/SkiaDomView.web.js.map +1 -1
- package/lib/module/views/SkiaJSDomView.js +0 -12
- package/lib/module/views/SkiaJSDomView.js.map +1 -1
- package/lib/module/views/index.d.ts +0 -1
- package/lib/module/views/index.js +0 -1
- package/lib/module/views/index.js.map +1 -1
- package/lib/module/views/types.d.ts +0 -26
- package/lib/module/views/types.js +1 -7
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
- package/lib/typescript/lib/commonjs/views/SkiaBaseWebView.d.ts +0 -3
- package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +1 -1
- package/lib/typescript/lib/commonjs/views/types.d.ts +0 -1
- package/lib/typescript/lib/module/mock/index.d.ts +0 -1
- package/lib/typescript/lib/module/views/SkiaBaseWebView.d.ts +0 -3
- package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +1 -1
- package/lib/typescript/lib/module/views/index.d.ts +0 -1
- package/lib/typescript/lib/module/views/types.d.ts +1 -1
- package/lib/typescript/src/renderer/Canvas.d.ts +1 -2
- package/lib/typescript/src/views/SkiaBaseWebView.d.ts +2 -11
- package/lib/typescript/src/views/SkiaDomView.web.d.ts +2 -2
- package/lib/typescript/src/views/index.d.ts +0 -1
- package/lib/typescript/src/views/types.d.ts +0 -26
- package/package.json +1 -1
- package/src/mock/index.ts +0 -1
- package/src/renderer/Canvas.tsx +1 -5
- package/src/renderer/__tests__/setup.tsx +0 -2
- package/src/skia/web/JsiSkia.ts +1 -1
- package/src/views/SkiaBaseWebView.tsx +5 -42
- package/src/views/SkiaDomView.tsx +2 -14
- package/src/views/SkiaDomView.web.tsx +2 -9
- package/src/views/SkiaJSDomView.tsx +2 -14
- package/src/views/index.ts +0 -1
- package/src/views/types.ts +0 -32
- package/cpp/rnskia/RNSkInfoParameter.h +0 -92
- package/lib/commonjs/renderer/__tests__/TouchHandler.spec.d.ts +0 -1
- package/lib/commonjs/views/useTouchHandler.d.ts +0 -22
- package/lib/commonjs/views/useTouchHandler.js +0 -83
- package/lib/commonjs/views/useTouchHandler.js.map +0 -1
- package/lib/module/renderer/__tests__/TouchHandler.spec.d.ts +0 -1
- package/lib/module/views/useTouchHandler.d.ts +0 -22
- package/lib/module/views/useTouchHandler.js +0 -75
- package/lib/module/views/useTouchHandler.js.map +0 -1
- package/lib/typescript/lib/commonjs/views/useTouchHandler.d.ts +0 -12
- package/lib/typescript/lib/module/views/useTouchHandler.d.ts +0 -2
- package/lib/typescript/src/renderer/__tests__/TouchHandler.spec.d.ts +0 -1
- package/lib/typescript/src/views/useTouchHandler.d.ts +0 -22
- package/src/renderer/__tests__/TouchHandler.spec.tsx +0 -113
- package/src/views/useTouchHandler.ts +0 -107
|
@@ -28,7 +28,6 @@ export const Canvas = /*#__PURE__*/forwardRef(({
|
|
|
28
28
|
style,
|
|
29
29
|
debug,
|
|
30
30
|
mode,
|
|
31
|
-
onTouch,
|
|
32
31
|
onSize: _onSize,
|
|
33
32
|
onLayout: _onLayout,
|
|
34
33
|
...props
|
|
@@ -61,7 +60,6 @@ export const Canvas = /*#__PURE__*/forwardRef(({
|
|
|
61
60
|
ref: ref,
|
|
62
61
|
style: style,
|
|
63
62
|
root: root.dom,
|
|
64
|
-
onTouch: onTouch,
|
|
65
63
|
onLayout: onLayout,
|
|
66
64
|
mode: mode,
|
|
67
65
|
debug: debug
|
|
@@ -74,7 +72,6 @@ export const Canvas = /*#__PURE__*/forwardRef(({
|
|
|
74
72
|
ref: ref,
|
|
75
73
|
style: style,
|
|
76
74
|
root: root.dom,
|
|
77
|
-
onTouch: onTouch,
|
|
78
75
|
onLayout: onLayout,
|
|
79
76
|
mode: mode,
|
|
80
77
|
debug: debug
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useCallback","useMemo","forwardRef","useRef","SkiaDomView","Skia","SkiaJSDomView","SkiaRoot","NATIVE_DOM","useCanvasRef","useOnSizeEvent","resultValue","onLayout","event","width","height","nativeEvent","layout","value","Canvas","children","style","debug","mode","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","forwardRef","useRef","SkiaDomView","Skia","SkiaJSDomView","SkiaRoot","NATIVE_DOM","useCanvasRef","useOnSizeEvent","resultValue","onLayout","event","width","height","nativeEvent","layout","value","Canvas","children","style","debug","mode","onSize","_onSize","_onLayout","props","forwardedRef","innerRef","ref","useCombinedRefs","redraw","_innerRef$current","current","getNativeId","_innerRef$current$nat","_innerRef$current2","id","nativeId","root","render","unmount","createElement","_extends","dom","refs","targetRef","forEach"],"sources":["Canvas.tsx"],"sourcesContent":["import React, {\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useRef,\n} from \"react\";\nimport type {\n RefObject,\n ReactNode,\n MutableRefObject,\n ForwardedRef,\n FunctionComponent,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport { SkiaDomView } from \"../views\";\nimport { Skia } from \"../skia/Skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaJSDomView } from \"../views/SkiaJSDomView\";\n\nimport { SkiaRoot } from \"./Reconciler\";\nimport { NATIVE_DOM } from \"./HostComponents\";\n\nexport const useCanvasRef = () => useRef<SkiaDomView>(null);\n\nexport interface CanvasProps extends SkiaBaseViewProps {\n ref?: RefObject<SkiaDomView>;\n children: ReactNode;\n}\n\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport const Canvas = forwardRef<SkiaDomView, CanvasProps>(\n (\n {\n children,\n style,\n debug,\n mode,\n onSize: _onSize,\n onLayout: _onLayout,\n ...props\n },\n forwardedRef\n ) => {\n const onLayout = useOnSizeEvent(_onSize, _onLayout);\n const innerRef = useCanvasRef();\n const ref = useCombinedRefs(forwardedRef, innerRef);\n const redraw = useCallback(() => {\n innerRef.current?.redraw();\n }, [innerRef]);\n const getNativeId = useCallback(() => {\n const id = innerRef.current?.nativeId ?? -1;\n return id;\n }, [innerRef]);\n\n const root = useMemo(\n () => new SkiaRoot(Skia, NATIVE_DOM, redraw, getNativeId),\n [redraw, getNativeId]\n );\n\n // Render effect\n useEffect(() => {\n root.render(children);\n }, [children, root, redraw]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n if (NATIVE_DOM) {\n return (\n <SkiaDomView\n ref={ref}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n } else {\n return (\n <SkiaJSDomView\n Skia={Skia}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n }\n }\n) as FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;\n\n/**\n * Combines a list of refs into a single ref. This can be used to provide\n * both a forwarded ref and an internal ref keeping the same functionality\n * on both of the refs.\n * @param refs Array of refs to combine\n * @returns A single ref that can be used in a ref prop.\n */\nconst useCombinedRefs = <T,>(\n ...refs: Array<MutableRefObject<T> | ForwardedRef<T>>\n) => {\n const targetRef = React.useRef<T>(null);\n React.useEffect(() => {\n refs.forEach((ref) => {\n if (ref) {\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }\n });\n }, [refs]);\n return targetRef;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkAnimatedImageFactory","JsiSkParagraphBuilderFactory","JsiSkNativeBufferFactory","createVideo","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","RSXformFromRadians","scale","r","px","py","s","Math","sin","c","cos","ContourMeasureIter","path","forceClosed","resScale","fromValue","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","AnimatedImage","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr","ParagraphBuilder","NativeBuffer","Video","Context","_surface","_width","_height"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n SkContourMeasureIter,\n Skia,\n SkPath,\n SkRect,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n SkTypeface,\n} from \"../types\";\n\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkSurfaceFactory } from \"./JsiSkSurfaceFactory\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport { JsiSkContourMeasureIter } from \"./JsiSkContourMeasureIter\";\nimport { JsiSkPictureRecorder } from \"./JsiSkPictureRecorder\";\nimport { JsiSkPictureFactory } from \"./JsiSkPictureFactory\";\nimport { JsiSkPathFactory } from \"./JsiSkPathFactory\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkColorFilterFactory } from \"./JsiSkColorFilterFactory\";\nimport { JsiSkTypefaceFactory } from \"./JsiSkTypefaceFactory\";\nimport { JsiSkMaskFilterFactory } from \"./JsiSkMaskFilterFactory\";\nimport { JsiSkRuntimeEffectFactory } from \"./JsiSkRuntimeEffectFactory\";\nimport { JsiSkImageFilterFactory } from \"./JsiSkImageFilterFactory\";\nimport { JsiSkShaderFactory } from \"./JsiSkShaderFactory\";\nimport { JsiSkPathEffectFactory } from \"./JsiSkPathEffectFactory\";\nimport { JsiSkDataFactory } from \"./JsiSkDataFactory\";\nimport { JsiSkImageFactory } from \"./JsiSkImageFactory\";\nimport { JsiSkSVGFactory } from \"./JsiSkSVGFactory\";\nimport { JsiSkTextBlobFactory } from \"./JsiSkTextBlobFactory\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { MakeVertices } from \"./JsiSkVerticesFactory\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { JsiSkTypefaceFontProviderFactory } from \"./JsiSkTypefaceFontProviderFactory\";\nimport { JsiSkFontMgrFactory } from \"./JsiSkFontMgrFactory\";\nimport { JsiSkAnimatedImageFactory } from \"./JsiSkAnimatedImageFactory\";\nimport { JsiSkParagraphBuilderFactory } from \"./JsiSkParagraphBuilderFactory\";\nimport { JsiSkNativeBufferFactory } from \"./JsiSkNativeBufferFactory\";\nimport { createVideo } from \"./JsiVideo\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect): SkRuntimeShaderBuilder => {\n throw new Error(\"Not implemented on React Native Web\");\n },\n RRectXY: (rect: SkRect, rx: number, ry: number) =>\n new JsiSkRRect(CanvasKit, rect, rx, ry),\n RSXform: (scos: number, ssin: number, tx: number, ty: number) =>\n new JsiSkRSXform(CanvasKit, Float32Array.of(scos, ssin, tx, ty)),\n RSXformFromRadians: (\n scale: number,\n r: number,\n tx: number,\n ty: number,\n px: number,\n py: number\n ) => {\n const s = Math.sin(r) * scale;\n const c = Math.cos(r) * scale;\n return new JsiSkRSXform(\n CanvasKit,\n Float32Array.of(c, s, tx - c * px + s * py, ty - s * px - c * py)\n );\n },\n Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(\n JsiSkPath.fromValue(path),\n forceClosed,\n resScale\n )\n ),\n Paint: () => {\n const paint = new JsiSkPaint(CanvasKit, new CanvasKit.Paint());\n paint.setAntiAlias(true);\n return paint;\n },\n PictureRecorder: () =>\n new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),\n Picture: new JsiSkPictureFactory(CanvasKit),\n Path: new JsiSkPathFactory(CanvasKit),\n Matrix: (matrix?: readonly number[]) =>\n new JsiSkMatrix(\n CanvasKit,\n matrix\n ? Float32Array.of(...matrix)\n : Float32Array.of(...CanvasKit.Matrix.identity())\n ),\n ColorFilter: new JsiSkColorFilterFactory(CanvasKit),\n Font: (typeface?: SkTypeface, size?: number) =>\n new JsiSkFont(\n CanvasKit,\n new CanvasKit.Font(\n typeface === undefined ? null : JsiSkTypeface.fromValue(typeface),\n size\n )\n ),\n Typeface: new JsiSkTypefaceFactory(CanvasKit),\n MaskFilter: new JsiSkMaskFilterFactory(CanvasKit),\n RuntimeEffect: new JsiSkRuntimeEffectFactory(CanvasKit),\n ImageFilter: new JsiSkImageFilterFactory(CanvasKit),\n Shader: new JsiSkShaderFactory(CanvasKit),\n PathEffect: new JsiSkPathEffectFactory(CanvasKit),\n MakeVertices: MakeVertices.bind(null, CanvasKit),\n Data: new JsiSkDataFactory(CanvasKit),\n Image: new JsiSkImageFactory(CanvasKit),\n AnimatedImage: new JsiSkAnimatedImageFactory(CanvasKit),\n SVG: new JsiSkSVGFactory(CanvasKit),\n TextBlob: new JsiSkTextBlobFactory(CanvasKit),\n XYWHRect: (x: number, y: number, width: number, height: number) => {\n return new JsiSkRect(CanvasKit, CanvasKit.XYWHRect(x, y, width, height));\n },\n Surface: new JsiSkSurfaceFactory(CanvasKit),\n TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),\n FontMgr: new JsiSkFontMgrFactory(CanvasKit),\n ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),\n NativeBuffer: new JsiSkNativeBufferFactory(CanvasKit),\n Video: createVideo.bind(null, CanvasKit),\n Context: (_surface: bigint, _width: number, _height: number) => {\n throw new Error(\"Not implemented on React Native Web\");\n }\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkAnimatedImageFactory","JsiSkParagraphBuilderFactory","JsiSkNativeBufferFactory","createVideo","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","RSXformFromRadians","scale","r","px","py","s","Math","sin","c","cos","ContourMeasureIter","path","forceClosed","resScale","fromValue","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","AnimatedImage","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr","ParagraphBuilder","NativeBuffer","Video","Context","_surface","_width","_height"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n SkContourMeasureIter,\n Skia,\n SkPath,\n SkRect,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n SkTypeface,\n} from \"../types\";\n\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkSurfaceFactory } from \"./JsiSkSurfaceFactory\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport { JsiSkContourMeasureIter } from \"./JsiSkContourMeasureIter\";\nimport { JsiSkPictureRecorder } from \"./JsiSkPictureRecorder\";\nimport { JsiSkPictureFactory } from \"./JsiSkPictureFactory\";\nimport { JsiSkPathFactory } from \"./JsiSkPathFactory\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkColorFilterFactory } from \"./JsiSkColorFilterFactory\";\nimport { JsiSkTypefaceFactory } from \"./JsiSkTypefaceFactory\";\nimport { JsiSkMaskFilterFactory } from \"./JsiSkMaskFilterFactory\";\nimport { JsiSkRuntimeEffectFactory } from \"./JsiSkRuntimeEffectFactory\";\nimport { JsiSkImageFilterFactory } from \"./JsiSkImageFilterFactory\";\nimport { JsiSkShaderFactory } from \"./JsiSkShaderFactory\";\nimport { JsiSkPathEffectFactory } from \"./JsiSkPathEffectFactory\";\nimport { JsiSkDataFactory } from \"./JsiSkDataFactory\";\nimport { JsiSkImageFactory } from \"./JsiSkImageFactory\";\nimport { JsiSkSVGFactory } from \"./JsiSkSVGFactory\";\nimport { JsiSkTextBlobFactory } from \"./JsiSkTextBlobFactory\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { MakeVertices } from \"./JsiSkVerticesFactory\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { JsiSkTypefaceFontProviderFactory } from \"./JsiSkTypefaceFontProviderFactory\";\nimport { JsiSkFontMgrFactory } from \"./JsiSkFontMgrFactory\";\nimport { JsiSkAnimatedImageFactory } from \"./JsiSkAnimatedImageFactory\";\nimport { JsiSkParagraphBuilderFactory } from \"./JsiSkParagraphBuilderFactory\";\nimport { JsiSkNativeBufferFactory } from \"./JsiSkNativeBufferFactory\";\nimport { createVideo } from \"./JsiVideo\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect): SkRuntimeShaderBuilder => {\n throw new Error(\"Not implemented on React Native Web\");\n },\n RRectXY: (rect: SkRect, rx: number, ry: number) =>\n new JsiSkRRect(CanvasKit, rect, rx, ry),\n RSXform: (scos: number, ssin: number, tx: number, ty: number) =>\n new JsiSkRSXform(CanvasKit, Float32Array.of(scos, ssin, tx, ty)),\n RSXformFromRadians: (\n scale: number,\n r: number,\n tx: number,\n ty: number,\n px: number,\n py: number\n ) => {\n const s = Math.sin(r) * scale;\n const c = Math.cos(r) * scale;\n return new JsiSkRSXform(\n CanvasKit,\n Float32Array.of(c, s, tx - c * px + s * py, ty - s * px - c * py)\n );\n },\n Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(\n JsiSkPath.fromValue(path),\n forceClosed,\n resScale\n )\n ),\n Paint: () => {\n const paint = new JsiSkPaint(CanvasKit, new CanvasKit.Paint());\n paint.setAntiAlias(true);\n return paint;\n },\n PictureRecorder: () =>\n new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),\n Picture: new JsiSkPictureFactory(CanvasKit),\n Path: new JsiSkPathFactory(CanvasKit),\n Matrix: (matrix?: readonly number[]) =>\n new JsiSkMatrix(\n CanvasKit,\n matrix\n ? Float32Array.of(...matrix)\n : Float32Array.of(...CanvasKit.Matrix.identity())\n ),\n ColorFilter: new JsiSkColorFilterFactory(CanvasKit),\n Font: (typeface?: SkTypeface, size?: number) =>\n new JsiSkFont(\n CanvasKit,\n new CanvasKit.Font(\n typeface === undefined ? null : JsiSkTypeface.fromValue(typeface),\n size\n )\n ),\n Typeface: new JsiSkTypefaceFactory(CanvasKit),\n MaskFilter: new JsiSkMaskFilterFactory(CanvasKit),\n RuntimeEffect: new JsiSkRuntimeEffectFactory(CanvasKit),\n ImageFilter: new JsiSkImageFilterFactory(CanvasKit),\n Shader: new JsiSkShaderFactory(CanvasKit),\n PathEffect: new JsiSkPathEffectFactory(CanvasKit),\n MakeVertices: MakeVertices.bind(null, CanvasKit),\n Data: new JsiSkDataFactory(CanvasKit),\n Image: new JsiSkImageFactory(CanvasKit),\n AnimatedImage: new JsiSkAnimatedImageFactory(CanvasKit),\n SVG: new JsiSkSVGFactory(CanvasKit),\n TextBlob: new JsiSkTextBlobFactory(CanvasKit),\n XYWHRect: (x: number, y: number, width: number, height: number) => {\n return new JsiSkRect(CanvasKit, CanvasKit.XYWHRect(x, y, width, height));\n },\n Surface: new JsiSkSurfaceFactory(CanvasKit),\n TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),\n FontMgr: new JsiSkFontMgrFactory(CanvasKit),\n ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),\n NativeBuffer: new JsiSkNativeBufferFactory(CanvasKit),\n Video: createVideo.bind(null, CanvasKit),\n Context: (_surface: bigint, _width: number, _height: number) => {\n throw new Error(\"Not implemented on React Native Web\");\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { PointerEvent } from "react";
|
|
3
2
|
import type { SkRect, SkCanvas } from "../skia/types";
|
|
4
|
-
import type { DrawMode, SkiaBaseViewProps
|
|
5
|
-
import { TouchType } from "./types";
|
|
3
|
+
import type { DrawMode, SkiaBaseViewProps } from "./types";
|
|
6
4
|
export declare abstract class SkiaBaseWebView<TProps extends SkiaBaseViewProps> extends React.Component<TProps> {
|
|
7
5
|
constructor(props: TProps);
|
|
8
6
|
private _surface;
|
|
9
7
|
private _unsubscriptions;
|
|
10
|
-
private _touches;
|
|
11
8
|
private _canvas;
|
|
12
9
|
private _canvasRef;
|
|
13
10
|
private _mode;
|
|
@@ -33,7 +30,7 @@ export declare abstract class SkiaBaseWebView<TProps extends SkiaBaseViewProps>
|
|
|
33
30
|
/**
|
|
34
31
|
* Override to render
|
|
35
32
|
*/
|
|
36
|
-
protected abstract renderInCanvas(canvas: SkCanvas
|
|
33
|
+
protected abstract renderInCanvas(canvas: SkCanvas): void;
|
|
37
34
|
/**
|
|
38
35
|
* Sends a redraw request to the native SkiaView.
|
|
39
36
|
*/
|
|
@@ -49,12 +46,6 @@ export declare abstract class SkiaBaseWebView<TProps extends SkiaBaseViewProps>
|
|
|
49
46
|
* @param mode Drawing mode to use.
|
|
50
47
|
*/
|
|
51
48
|
setDrawMode(mode: DrawMode): void;
|
|
52
|
-
private handleTouchEvent;
|
|
53
|
-
createTouchHandler(touchType: TouchType): (evt: PointerEvent) => void;
|
|
54
|
-
private onStart;
|
|
55
|
-
private onActive;
|
|
56
|
-
private onCancel;
|
|
57
|
-
private onEnd;
|
|
58
49
|
private onLayout;
|
|
59
50
|
render(): React.JSX.Element;
|
|
60
51
|
}
|
|
@@ -6,7 +6,6 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { JsiSkSurface } from "../skia/web/JsiSkSurface";
|
|
8
8
|
import { Platform } from "../Platform";
|
|
9
|
-
import { TouchType } from "./types";
|
|
10
9
|
const pd = Platform.PixelRatio;
|
|
11
10
|
export class SkiaBaseWebView extends React.Component {
|
|
12
11
|
constructor(props) {
|
|
@@ -14,7 +13,6 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
14
13
|
super(props);
|
|
15
14
|
_defineProperty(this, "_surface", null);
|
|
16
15
|
_defineProperty(this, "_unsubscriptions", []);
|
|
17
|
-
_defineProperty(this, "_touches", []);
|
|
18
16
|
_defineProperty(this, "_canvas", null);
|
|
19
17
|
_defineProperty(this, "_canvasRef", /*#__PURE__*/React.createRef());
|
|
20
18
|
_defineProperty(this, "_mode", void 0);
|
|
@@ -22,10 +20,6 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
22
20
|
_defineProperty(this, "requestId", 0);
|
|
23
21
|
_defineProperty(this, "width", 0);
|
|
24
22
|
_defineProperty(this, "height", 0);
|
|
25
|
-
_defineProperty(this, "onStart", this.createTouchHandler(TouchType.Start));
|
|
26
|
-
_defineProperty(this, "onActive", this.createTouchHandler(TouchType.Active));
|
|
27
|
-
_defineProperty(this, "onCancel", this.createTouchHandler(TouchType.Cancelled));
|
|
28
|
-
_defineProperty(this, "onEnd", this.createTouchHandler(TouchType.End));
|
|
29
23
|
_defineProperty(this, "onLayout", this.onLayoutEvent.bind(this));
|
|
30
24
|
this._mode = (_props$mode = props.mode) !== null && _props$mode !== void 0 ? _props$mode : "default";
|
|
31
25
|
}
|
|
@@ -91,7 +85,7 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
91
85
|
makeImageSnapshot(rect) {
|
|
92
86
|
var _this$_surface, _this$_surface2;
|
|
93
87
|
this._canvas.clear(CanvasKit.TRANSPARENT);
|
|
94
|
-
this.renderInCanvas(this._canvas
|
|
88
|
+
this.renderInCanvas(this._canvas);
|
|
95
89
|
(_this$_surface = this._surface) === null || _this$_surface === void 0 || _this$_surface.ref.flush();
|
|
96
90
|
return (_this$_surface2 = this._surface) === null || _this$_surface2 === void 0 ? void 0 : _this$_surface2.makeImageSnapshot(rect);
|
|
97
91
|
}
|
|
@@ -108,13 +102,11 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
108
102
|
this._redrawRequests = 0;
|
|
109
103
|
if (this._canvas) {
|
|
110
104
|
var _this$_surface3;
|
|
111
|
-
const touches = [...this._touches];
|
|
112
|
-
this._touches = [];
|
|
113
105
|
const canvas = this._canvas;
|
|
114
106
|
canvas.clear(Float32Array.of(0, 0, 0, 0));
|
|
115
107
|
canvas.save();
|
|
116
108
|
canvas.scale(pd, pd);
|
|
117
|
-
this.renderInCanvas(canvas
|
|
109
|
+
this.renderInCanvas(canvas);
|
|
118
110
|
canvas.restore();
|
|
119
111
|
(_this$_surface3 = this._surface) === null || _this$_surface3 === void 0 || _this$_surface3.ref.flush();
|
|
120
112
|
}
|
|
@@ -138,20 +130,6 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
138
130
|
this._mode = mode;
|
|
139
131
|
this.tick();
|
|
140
132
|
}
|
|
141
|
-
handleTouchEvent(evt, touchType) {
|
|
142
|
-
this._touches.push({
|
|
143
|
-
id: evt.pointerId,
|
|
144
|
-
x: evt.clientX - evt.currentTarget.getClientRects()[0].left,
|
|
145
|
-
y: evt.clientY - evt.currentTarget.getClientRects()[0].top,
|
|
146
|
-
force: evt.pressure,
|
|
147
|
-
type: touchType,
|
|
148
|
-
timestamp: Date.now()
|
|
149
|
-
});
|
|
150
|
-
this.redraw();
|
|
151
|
-
}
|
|
152
|
-
createTouchHandler(touchType) {
|
|
153
|
-
return evt => this.handleTouchEvent(evt, touchType);
|
|
154
|
-
}
|
|
155
133
|
render() {
|
|
156
134
|
const {
|
|
157
135
|
mode,
|
|
@@ -165,13 +143,7 @@ export class SkiaBaseWebView extends React.Component {
|
|
|
165
143
|
style: {
|
|
166
144
|
display: "flex",
|
|
167
145
|
flex: 1
|
|
168
|
-
}
|
|
169
|
-
onPointerDown: this.onStart,
|
|
170
|
-
onPointerMove: this.onActive,
|
|
171
|
-
onPointerUp: this.onEnd,
|
|
172
|
-
onPointerCancel: this.onCancel,
|
|
173
|
-
onPointerLeave: this.onEnd,
|
|
174
|
-
onPointerOut: this.onEnd
|
|
146
|
+
}
|
|
175
147
|
}));
|
|
176
148
|
}
|
|
177
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","JsiSkSurface","Platform","TouchType","pd","PixelRatio","SkiaBaseWebView","Component","constructor","props","_props$mode","_defineProperty","createRef","createTouchHandler","Start","Active","Cancelled","End","onLayoutEvent","bind","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","evt","CanvasKit","global","canvas","_canvasRef","current","width","clientWidth","height","clientHeight","surface","MakeWebGLCanvasSurface","Error","_surface","_canvas","getCanvas","redraw","onLayout","getSize","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","requestId","_this$_canvasRef$curr","getContext","getExtension","loseContext","makeImageSnapshot","rect","_this$_surface","_this$_surface2","clear","TRANSPARENT","renderInCanvas","ref","flush","_redrawRequests","_this$_surface3","touches","_touches","Float32Array","of","save","scale","restore","requestAnimationFrame","setDrawMode","handleTouchEvent","touchType","push","id","pointerId","x","clientX","currentTarget","getClientRects","left","y","clientY","top","force","pressure","type","timestamp","Date","now","render","debug","viewProps","createElement","View","_extends","style","display","flex","onPointerDown","onStart","onPointerMove","onActive","onPointerUp","onEnd","onPointerCancel","onCancel","onPointerLeave","onPointerOut"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { PointerEvent } from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\n\nimport type { DrawMode, SkiaBaseViewProps, TouchInfo } from \"./types\";\nimport { TouchType } from \"./types\";\n\nconst pd = Platform.PixelRatio;\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _touches: Array<TouchInfo> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayoutEvent(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n // Reset canvas / surface on layout change\n const canvas = this._canvasRef.current;\n if (canvas) {\n this.width = canvas.clientWidth;\n this.height = canvas.clientHeight;\n canvas.width = this.width * pd;\n canvas.height = this.height * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n // Call onLayout callback if it exists\n if (this.props.onLayout) {\n this.props.onLayout(evt);\n }\n }\n\n protected getSize() {\n return { width: this.width, height: this.height };\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n // eslint-disable-next-line max-len\n // https://stackoverflow.com/questions/23598471/how-do-i-clean-up-and-unload-a-webgl-canvas-context-from-gpu-after-use\n // https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context\n // We delete the context, only if the context has been intialized\n if (this._surface) {\n this._canvasRef.current\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n this._canvas!.clear(CanvasKit.TRANSPARENT);\n this.renderInCanvas(this._canvas!, []);\n this._surface?.ref.flush();\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(\n canvas: SkCanvas,\n touches: TouchInfo[]\n ): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const touches = [...this._touches];\n this._touches = [];\n const canvas = this._canvas!;\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n this.renderInCanvas(canvas, touches);\n canvas.restore();\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.tick();\n }\n\n private handleTouchEvent(evt: PointerEvent, touchType: TouchType) {\n this._touches.push({\n id: evt.pointerId,\n x: evt.clientX - evt.currentTarget.getClientRects()[0].left,\n y: evt.clientY - evt.currentTarget.getClientRects()[0].top,\n force: evt.pressure,\n type: touchType,\n timestamp: Date.now(),\n });\n this.redraw();\n }\n\n createTouchHandler(touchType: TouchType) {\n return (evt: PointerEvent) => this.handleTouchEvent(evt, touchType);\n }\n\n private onStart = this.createTouchHandler(TouchType.Start);\n private onActive = this.createTouchHandler(TouchType.Active);\n private onCancel = this.createTouchHandler(TouchType.Cancelled);\n private onEnd = this.createTouchHandler(TouchType.End);\n private onLayout = this.onLayoutEvent.bind(this);\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <Platform.View {...viewProps} onLayout={this.onLayout}>\n <canvas\n ref={this._canvasRef}\n style={{ display: \"flex\", flex: 1 }}\n onPointerDown={this.onStart}\n onPointerMove={this.onActive}\n onPointerUp={this.onEnd}\n onPointerCancel={this.onCancel}\n onPointerLeave={this.onEnd}\n onPointerOut={this.onEnd}\n />\n </Platform.View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","JsiSkSurface","Platform","pd","PixelRatio","SkiaBaseWebView","Component","constructor","props","_props$mode","_defineProperty","createRef","onLayoutEvent","bind","_mode","mode","unsubscribeAll","_unsubscriptions","forEach","u","evt","CanvasKit","global","canvas","_canvasRef","current","width","clientWidth","height","clientHeight","surface","MakeWebGLCanvasSurface","Error","_surface","_canvas","getCanvas","redraw","onLayout","getSize","componentDidMount","tick","componentDidUpdate","componentWillUnmount","cancelAnimationFrame","requestId","_this$_canvasRef$curr","getContext","getExtension","loseContext","makeImageSnapshot","rect","_this$_surface","_this$_surface2","clear","TRANSPARENT","renderInCanvas","ref","flush","_redrawRequests","_this$_surface3","Float32Array","of","save","scale","restore","requestAnimationFrame","setDrawMode","render","debug","viewProps","createElement","View","_extends","style","display","flex"],"sources":["SkiaBaseWebView.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkCanvas } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\n\nimport type { DrawMode, SkiaBaseViewProps } from \"./types\";\n\nconst pd = Platform.PixelRatio;\n\nexport abstract class SkiaBaseWebView<\n TProps extends SkiaBaseViewProps\n> extends React.Component<TProps> {\n constructor(props: TProps) {\n super(props);\n this._mode = props.mode ?? \"default\";\n }\n\n private _surface: JsiSkSurface | null = null;\n private _unsubscriptions: Array<() => void> = [];\n private _canvas: SkCanvas | null = null;\n private _canvasRef = React.createRef<HTMLCanvasElement>();\n private _mode: DrawMode;\n private _redrawRequests = 0;\n private requestId = 0;\n\n protected width = 0;\n protected height = 0;\n\n private unsubscribeAll() {\n this._unsubscriptions.forEach((u) => u());\n this._unsubscriptions = [];\n }\n\n private onLayoutEvent(evt: LayoutChangeEvent) {\n const { CanvasKit } = global;\n // Reset canvas / surface on layout change\n const canvas = this._canvasRef.current;\n if (canvas) {\n this.width = canvas.clientWidth;\n this.height = canvas.clientHeight;\n canvas.width = this.width * pd;\n canvas.height = this.height * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this._surface = new JsiSkSurface(CanvasKit, surface);\n this._canvas = this._surface.getCanvas();\n this.redraw();\n }\n // Call onLayout callback if it exists\n if (this.props.onLayout) {\n this.props.onLayout(evt);\n }\n }\n\n protected getSize() {\n return { width: this.width, height: this.height };\n }\n\n componentDidMount() {\n // Start render loop\n this.tick();\n }\n\n componentDidUpdate() {\n this.redraw();\n }\n\n componentWillUnmount() {\n this.unsubscribeAll();\n cancelAnimationFrame(this.requestId);\n // eslint-disable-next-line max-len\n // https://stackoverflow.com/questions/23598471/how-do-i-clean-up-and-unload-a-webgl-canvas-context-from-gpu-after-use\n // https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_lose_context\n // We delete the context, only if the context has been intialized\n if (this._surface) {\n this._canvasRef.current\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n this._canvas!.clear(CanvasKit.TRANSPARENT);\n this.renderInCanvas(this._canvas!);\n this._surface?.ref.flush();\n return this._surface?.makeImageSnapshot(rect);\n }\n\n /**\n * Override to render\n */\n protected abstract renderInCanvas(canvas: SkCanvas): void;\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n private tick() {\n if (this._mode === \"continuous\" || this._redrawRequests > 0) {\n this._redrawRequests = 0;\n if (this._canvas) {\n const canvas = this._canvas!;\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n this.renderInCanvas(canvas);\n canvas.restore();\n this._surface?.ref.flush();\n }\n }\n this.requestId = requestAnimationFrame(this.tick.bind(this));\n }\n\n public redraw() {\n this._redrawRequests++;\n }\n\n /**\n * Updates the drawing mode for the skia view. This is the same\n * as declaratively setting the mode property on the SkiaView.\n * There are two drawing modes, \"continuous\" and \"default\",\n * where the continuous mode will continuously redraw the view and\n * the default mode will only redraw when any of the regular react\n * properties are changed like size and margins.\n * @param mode Drawing mode to use.\n */\n public setDrawMode(mode: DrawMode) {\n this._mode = mode;\n this.tick();\n }\n\n private onLayout = this.onLayoutEvent.bind(this);\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <Platform.View {...viewProps} onLayout={this.onLayout}>\n <canvas ref={this._canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,19 +17,12 @@ export class SkiaDomView extends React.Component {
|
|
|
17
17
|
this._nativeId = SkiaViewNativeId.current++;
|
|
18
18
|
const {
|
|
19
19
|
root,
|
|
20
|
-
onTouch,
|
|
21
20
|
onSize
|
|
22
21
|
} = props;
|
|
23
22
|
if (root) {
|
|
24
23
|
assertSkiaViewApi();
|
|
25
24
|
SkiaViewApi.setJsiProperty(this._nativeId, "root", root);
|
|
26
25
|
}
|
|
27
|
-
if (onTouch) {
|
|
28
|
-
assertSkiaViewApi();
|
|
29
|
-
console.warn(`The onTouch property is deprecated and will be removed in the next Skia release.
|
|
30
|
-
See: https://shopify.github.io/react-native-skia/docs/animations/gestures`);
|
|
31
|
-
SkiaViewApi.setJsiProperty(this._nativeId, "onTouch", onTouch);
|
|
32
|
-
}
|
|
33
26
|
if (onSize) {
|
|
34
27
|
assertSkiaViewApi();
|
|
35
28
|
SkiaViewApi.setJsiProperty(this._nativeId, "onSize", onSize);
|
|
@@ -41,17 +34,12 @@ See: https://shopify.github.io/react-native-skia/docs/animations/gestures`);
|
|
|
41
34
|
componentDidUpdate(prevProps) {
|
|
42
35
|
const {
|
|
43
36
|
root,
|
|
44
|
-
onTouch,
|
|
45
37
|
onSize
|
|
46
38
|
} = this.props;
|
|
47
39
|
if (root !== prevProps.root) {
|
|
48
40
|
assertSkiaViewApi();
|
|
49
41
|
SkiaViewApi.setJsiProperty(this._nativeId, "root", root);
|
|
50
42
|
}
|
|
51
|
-
if (onTouch !== prevProps.onTouch) {
|
|
52
|
-
assertSkiaViewApi();
|
|
53
|
-
SkiaViewApi.setJsiProperty(this._nativeId, "onTouch", onTouch);
|
|
54
|
-
}
|
|
55
43
|
if (onSize !== prevProps.onSize) {
|
|
56
44
|
assertSkiaViewApi();
|
|
57
45
|
SkiaViewApi.setJsiProperty(this._nativeId, "onSize", onSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","SkiaDomViewNativeComponent","SkiaViewApi","SkiaViewNativeId","NativeSkiaDomView","OS","SkiaDomView","Component","constructor","props","_defineProperty","_nativeId","current","root","
|
|
1
|
+
{"version":3,"names":["React","Platform","SkiaDomViewNativeComponent","SkiaViewApi","SkiaViewNativeId","NativeSkiaDomView","OS","SkiaDomView","Component","constructor","props","_defineProperty","_nativeId","current","root","onSize","assertSkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","makeImageSnapshot","rect","makeImageSnapshotAsync","redraw","requestRedraw","render","mode","debug","viewProps","createElement","_extends","collapsable","nativeID","Error"],"sources":["SkiaDomView.tsx"],"sourcesContent":["import React from \"react\";\nimport type { HostComponent } from \"react-native\";\n\nimport type { SkRect } from \"../skia/types\";\nimport { Platform } from \"../Platform\";\nimport SkiaDomViewNativeComponent from \"../specs/SkiaDomViewNativeComponent\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { SkiaDomViewProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst NativeSkiaDomView: HostComponent<SkiaDomViewProps> =\n Platform.OS !== \"web\"\n ? SkiaDomViewNativeComponent\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (null as any);\n\nexport class SkiaDomView extends React.Component<SkiaDomViewProps> {\n constructor(props: SkiaDomViewProps) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { root, onSize } = props;\n if (root) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"root\", root);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaDomViewProps) {\n const { root, onSize } = this.props;\n if (root !== prevProps.root) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"root\", root);\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshotAsync(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshotAsync(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <NativeSkiaDomView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SkCanvas } from "../skia/types";
|
|
2
2
|
import { SkiaBaseWebView } from "./SkiaBaseWebView";
|
|
3
|
-
import type { SkiaDomViewProps
|
|
3
|
+
import type { SkiaDomViewProps } from "./types";
|
|
4
4
|
export declare class SkiaDomView extends SkiaBaseWebView<SkiaDomViewProps> {
|
|
5
5
|
constructor(props: SkiaDomViewProps);
|
|
6
|
-
protected renderInCanvas(canvas: SkCanvas
|
|
6
|
+
protected renderInCanvas(canvas: SkCanvas): void;
|
|
7
7
|
}
|
|
@@ -5,12 +5,7 @@ export class SkiaDomView extends SkiaBaseWebView {
|
|
|
5
5
|
constructor(props) {
|
|
6
6
|
super(props);
|
|
7
7
|
}
|
|
8
|
-
renderInCanvas(canvas
|
|
9
|
-
if (this.props.onTouch) {
|
|
10
|
-
console.warn(`The onTouch property is deprecated and will be removed in the next Skia release.
|
|
11
|
-
See: https://shopify.github.io/react-native-skia/docs/animations/gestures`);
|
|
12
|
-
this.props.onTouch([touches]);
|
|
13
|
-
}
|
|
8
|
+
renderInCanvas(canvas) {
|
|
14
9
|
if (this.props.onSize) {
|
|
15
10
|
const {
|
|
16
11
|
width,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Skia","JsiDrawingContext","SkiaBaseWebView","SkiaDomView","constructor","props","renderInCanvas","canvas","
|
|
1
|
+
{"version":3,"names":["Skia","JsiDrawingContext","SkiaBaseWebView","SkiaDomView","constructor","props","renderInCanvas","canvas","onSize","width","height","getSize","value","root","ctx","render"],"sources":["SkiaDomView.web.tsx"],"sourcesContent":["import { Skia } from \"../skia\";\nimport type { SkCanvas } from \"../skia/types\";\nimport { JsiDrawingContext } from \"../dom/types/DrawingContext\";\n\nimport { SkiaBaseWebView } from \"./SkiaBaseWebView\";\nimport type { SkiaDomViewProps } from \"./types\";\n\nexport class SkiaDomView extends SkiaBaseWebView<SkiaDomViewProps> {\n constructor(props: SkiaDomViewProps) {\n super(props);\n }\n\n protected renderInCanvas(canvas: SkCanvas): void {\n if (this.props.onSize) {\n const { width, height } = this.getSize();\n this.props.onSize.value = { width, height };\n }\n if (this.props.root) {\n const ctx = new JsiDrawingContext(Skia, canvas);\n this.props.root.render(ctx);\n }\n }\n}\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,SAAS;AAE9B,SAASC,iBAAiB,QAAQ,6BAA6B;AAE/D,SAASC,eAAe,QAAQ,mBAAmB;AAGnD,OAAO,MAAMC,WAAW,SAASD,eAAe,CAAmB;EACjEE,WAAWA,CAACC,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,CAAC;EACd;EAEUC,cAAcA,CAACC,MAAgB,EAAQ;IAC/C,IAAI,IAAI,CAACF,KAAK,CAACG,MAAM,EAAE;MACrB,MAAM;QAAEC,KAAK;QAAEC;MAAO,CAAC,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;MACxC,IAAI,CAACN,KAAK,CAACG,MAAM,CAACI,KAAK,GAAG;QAAEH,KAAK;QAAEC;MAAO,CAAC;IAC7C;IACA,IAAI,IAAI,CAACL,KAAK,CAACQ,IAAI,EAAE;MACnB,MAAMC,GAAG,GAAG,IAAIb,iBAAiB,CAACD,IAAI,EAAEO,MAAM,CAAC;MAC/C,IAAI,CAACF,KAAK,CAACQ,IAAI,CAACE,MAAM,CAACD,GAAG,CAAC;IAC7B;EACF;AACF","ignoreList":[]}
|
|
@@ -18,19 +18,12 @@ export class SkiaJSDomView extends React.Component {
|
|
|
18
18
|
this._nativeId = SkiaViewNativeId.current++;
|
|
19
19
|
const {
|
|
20
20
|
root,
|
|
21
|
-
onTouch,
|
|
22
21
|
onSize
|
|
23
22
|
} = props;
|
|
24
23
|
if (root) {
|
|
25
24
|
assertSkiaViewApi();
|
|
26
25
|
SkiaViewApi.setJsiProperty(this._nativeId, "root", root);
|
|
27
26
|
}
|
|
28
|
-
if (onTouch) {
|
|
29
|
-
assertSkiaViewApi();
|
|
30
|
-
console.warn(`The onTouch property is deprecated and will be removed in the next Skia release.
|
|
31
|
-
See: https://shopify.github.io/react-native-skia/docs/animations/gestures`);
|
|
32
|
-
SkiaViewApi.setJsiProperty(this._nativeId, "onTouch", onTouch);
|
|
33
|
-
}
|
|
34
27
|
if (onSize) {
|
|
35
28
|
assertSkiaViewApi();
|
|
36
29
|
SkiaViewApi.setJsiProperty(this._nativeId, "onSize", onSize);
|
|
@@ -42,17 +35,12 @@ See: https://shopify.github.io/react-native-skia/docs/animations/gestures`);
|
|
|
42
35
|
componentDidUpdate(prevProps) {
|
|
43
36
|
const {
|
|
44
37
|
root,
|
|
45
|
-
onTouch,
|
|
46
38
|
onSize
|
|
47
39
|
} = this.props;
|
|
48
40
|
if (root !== prevProps.root && root !== undefined) {
|
|
49
41
|
assertSkiaViewApi();
|
|
50
42
|
this.draw();
|
|
51
43
|
}
|
|
52
|
-
if (onTouch !== prevProps.onTouch) {
|
|
53
|
-
assertSkiaViewApi();
|
|
54
|
-
SkiaViewApi.setJsiProperty(this._nativeId, "onTouch", onTouch);
|
|
55
|
-
}
|
|
56
44
|
if (onSize !== prevProps.onSize) {
|
|
57
45
|
assertSkiaViewApi();
|
|
58
46
|
SkiaViewApi.setJsiProperty(this._nativeId, "onSize", onSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","SkiaPictureViewNativeComponent","JsiDrawingContext","SkiaViewApi","SkiaViewNativeId","NativeSkiaPictureView","OS","SkiaJSDomView","Component","constructor","props","_defineProperty","_nativeId","current","root","
|
|
1
|
+
{"version":3,"names":["React","Platform","SkiaPictureViewNativeComponent","JsiDrawingContext","SkiaViewApi","SkiaViewNativeId","NativeSkiaPictureView","OS","SkiaJSDomView","Component","constructor","props","_defineProperty","_nativeId","current","root","onSize","assertSkiaViewApi","setJsiProperty","nativeId","componentDidUpdate","prevProps","undefined","draw","makeImageSnapshot","rect","redraw","Skia","rec","PictureRecorder","canvas","beginRecording","ctx","render","picture","finishRecordingAsPicture","componentWillUnmount","mode","debug","viewProps","createElement","_extends","collapsable","nativeID","requestRedraw","Error"],"sources":["SkiaJSDomView.tsx"],"sourcesContent":["import React from \"react\";\nimport type { HostComponent } from \"react-native\";\n\nimport type { Skia, SkRect } from \"../skia/types\";\nimport { Platform } from \"../Platform\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport { JsiDrawingContext } from \"../dom/types\";\n\nimport { SkiaViewApi } from \"./api\";\nimport type { SkiaPictureViewProps, SkiaDomViewProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst NativeSkiaPictureView: HostComponent<SkiaPictureViewProps> =\n Platform.OS !== \"web\"\n ? SkiaPictureViewNativeComponent\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (null as any);\n\nexport class SkiaJSDomView extends React.Component<\n SkiaDomViewProps & { Skia: Skia }\n> {\n constructor(props: SkiaDomViewProps & { Skia: Skia }) {\n super(props);\n this._nativeId = SkiaViewNativeId.current++;\n const { root, onSize } = props;\n if (root) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"root\", root);\n }\n if (onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n private _nativeId: number;\n\n public get nativeId() {\n return this._nativeId;\n }\n\n componentDidUpdate(prevProps: SkiaDomViewProps & { Skia: Skia }) {\n const { root, onSize } = this.props;\n if (root !== prevProps.root && root !== undefined) {\n assertSkiaViewApi();\n this.draw();\n }\n if (onSize !== prevProps.onSize) {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"onSize\", onSize);\n }\n }\n\n /**\n * Creates a snapshot from the canvas in the surface\n * @param rect Rect to use as bounds. Optional.\n * @returns An Image object.\n */\n public makeImageSnapshot(rect?: SkRect) {\n assertSkiaViewApi();\n return SkiaViewApi.makeImageSnapshot(this._nativeId, rect);\n }\n\n /**\n * Sends a redraw request to the native SkiaView.\n */\n public redraw() {\n assertSkiaViewApi();\n this.draw();\n //SkiaViewApi.requestRedraw(this._nativeId);\n }\n\n private draw() {\n const { root, Skia } = this.props;\n if (root !== undefined) {\n assertSkiaViewApi();\n const rec = Skia.PictureRecorder();\n const canvas = rec.beginRecording();\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.render(ctx);\n const picture = rec.finishRecordingAsPicture();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", picture);\n }\n }\n\n /**\n * Clear up the dom node when unmounting to release resources.\n */\n componentWillUnmount(): void {\n assertSkiaViewApi();\n SkiaViewApi.setJsiProperty(this._nativeId, \"picture\", null);\n }\n\n render() {\n const { mode, debug = false, ...viewProps } = this.props;\n return (\n <NativeSkiaPictureView\n collapsable={false}\n nativeID={`${this._nativeId}`}\n mode={mode}\n debug={debug}\n {...viewProps}\n />\n );\n }\n}\n\nconst assertSkiaViewApi = () => {\n if (\n SkiaViewApi === null ||\n SkiaViewApi.setJsiProperty === null ||\n SkiaViewApi.requestRedraw === null ||\n SkiaViewApi.makeImageSnapshot === null\n ) {\n throw Error(\"Skia View Api was not found.\");\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./SkiaPictureView\";\nexport * from \"./SkiaDomView\";\nexport * from \"./types\";\
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./SkiaPictureView\";\nexport * from \"./SkiaDomView\";\nexport * from \"./types\";\n"],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,eAAe;AAC7B,cAAc,SAAS","ignoreList":[]}
|
|
@@ -7,36 +7,11 @@ export type NativeSkiaViewProps = ViewProps & {
|
|
|
7
7
|
mode?: DrawMode;
|
|
8
8
|
debug?: boolean;
|
|
9
9
|
};
|
|
10
|
-
export declare enum TouchType {
|
|
11
|
-
Start = 0,
|
|
12
|
-
Active = 1,
|
|
13
|
-
End = 2,
|
|
14
|
-
Cancelled = 3
|
|
15
|
-
}
|
|
16
|
-
export interface TouchInfo {
|
|
17
|
-
x: number;
|
|
18
|
-
y: number;
|
|
19
|
-
force: number;
|
|
20
|
-
type: TouchType;
|
|
21
|
-
id: number;
|
|
22
|
-
timestamp: number;
|
|
23
|
-
}
|
|
24
10
|
export interface DrawingInfo {
|
|
25
11
|
width: number;
|
|
26
12
|
height: number;
|
|
27
13
|
timestamp: number;
|
|
28
|
-
touches: Array<Array<TouchInfo>>;
|
|
29
14
|
}
|
|
30
|
-
export type ExtendedTouchInfo = TouchInfo & {
|
|
31
|
-
velocityX: number;
|
|
32
|
-
velocityY: number;
|
|
33
|
-
};
|
|
34
|
-
export type TouchHandlers = {
|
|
35
|
-
onStart?: (touchInfo: TouchInfo) => void;
|
|
36
|
-
onActive?: (touchInfo: ExtendedTouchInfo) => void;
|
|
37
|
-
onEnd?: (touchInfo: ExtendedTouchInfo) => void;
|
|
38
|
-
};
|
|
39
|
-
export type TouchHandler = (touchInfo: Array<Array<TouchInfo>>) => void;
|
|
40
15
|
export interface ISkiaViewApi {
|
|
41
16
|
setJsiProperty: <T>(nativeId: number, name: string, value: T) => void;
|
|
42
17
|
requestRedraw: (nativeId: number) => void;
|
|
@@ -68,5 +43,4 @@ export interface SkiaPictureViewProps extends SkiaBaseViewProps {
|
|
|
68
43
|
}
|
|
69
44
|
export interface SkiaDomViewProps extends SkiaBaseViewProps {
|
|
70
45
|
root?: RenderNode<GroupProps>;
|
|
71
|
-
onTouch?: TouchHandler;
|
|
72
46
|
}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
TouchType[TouchType["Start"] = 0] = "Start";
|
|
3
|
-
TouchType[TouchType["Active"] = 1] = "Active";
|
|
4
|
-
TouchType[TouchType["End"] = 2] = "End";
|
|
5
|
-
TouchType[TouchType["Cancelled"] = 3] = "Cancelled";
|
|
6
|
-
return TouchType;
|
|
7
|
-
}({});
|
|
1
|
+
export {};
|
|
8
2
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { ViewProps } from \"react-native\";\n\nimport type { GroupProps, RenderNode } from \"../dom/types\";\nimport type { SkImage, SkPicture, SkRect, SkSize } from \"../skia/types\";\nimport type { SharedValueType } from \"../renderer/processors/Animations/Animations\";\n\nexport type DrawMode = \"continuous\" | \"default\";\n\nexport type NativeSkiaViewProps = ViewProps & {\n mode?: DrawMode;\n debug?: boolean;\n};\n\nexport interface DrawingInfo {\n width: number;\n height: number;\n timestamp: number;\n}\n\nexport interface ISkiaViewApi {\n setJsiProperty: <T>(nativeId: number, name: string, value: T) => void;\n requestRedraw: (nativeId: number) => void;\n makeImageSnapshot: (nativeId: number, rect?: SkRect) => SkImage;\n makeImageSnapshotAsync: (nativeId: number, rect?: SkRect) => Promise<SkImage>;\n}\n\nexport interface SkiaBaseViewProps extends ViewProps {\n /**\n * Sets the drawing mode for the skia view. There are two drawing\n * modes, \"continuous\" and \"default\", where the continuous mode will\n * continuously redraw the view, and the default mode will only\n * redraw when any of the regular react properties are changed like\n * sizes and margins.\n */\n mode?: DrawMode;\n /**\n * When set to true the view will display information about the\n * average time it takes to render.\n */\n debug?: boolean;\n /**\n * Pass an animated value to the onSize property to get updates when\n * the Skia view is resized.\n */\n onSize?: SharedValueType<SkSize>;\n}\n\nexport interface SkiaPictureViewProps extends SkiaBaseViewProps {\n picture?: SkPicture;\n}\n\nexport interface SkiaDomViewProps extends SkiaBaseViewProps {\n root?: RenderNode<GroupProps>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -32,7 +32,6 @@ export class SkiaBaseWebView extends SkiaBaseWebView_base {
|
|
|
32
32
|
*/
|
|
33
33
|
tick(): void;
|
|
34
34
|
_redrawRequests: number | undefined;
|
|
35
|
-
_touches: any[] | undefined;
|
|
36
35
|
requestId: number | undefined;
|
|
37
36
|
redraw(): void;
|
|
38
37
|
/**
|
|
@@ -45,8 +44,6 @@ export class SkiaBaseWebView extends SkiaBaseWebView_base {
|
|
|
45
44
|
* @param mode Drawing mode to use.
|
|
46
45
|
*/
|
|
47
46
|
setDrawMode(mode: any): void;
|
|
48
|
-
handleTouchEvent(evt: any, touchType: any): void;
|
|
49
|
-
createTouchHandler(touchType: any): (evt: any) => void;
|
|
50
47
|
render(): any;
|
|
51
48
|
}
|
|
52
49
|
import _JsiSkSurface = require("../skia/web/JsiSkSurface");
|