@shopify/react-native-skia 1.11.1 → 1.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/android/CMakeLists.txt +0 -8
  2. package/android/cpp/jni/JniLoad.cpp +0 -2
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -1
  4. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerDelegate.java +4 -2
  5. package/cpp/jsi/ViewProperty.h +5 -16
  6. package/cpp/rnskia/RNSkManager.cpp +1 -7
  7. package/lib/commonjs/dom/nodes/index.d.ts +0 -1
  8. package/lib/commonjs/dom/nodes/index.js +0 -11
  9. package/lib/commonjs/dom/nodes/index.js.map +1 -1
  10. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -6
  11. package/lib/commonjs/external/reanimated/renderHelpers.js +0 -73
  12. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  13. package/lib/commonjs/index.d.ts +0 -1
  14. package/lib/commonjs/index.js +0 -12
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/renderer/Canvas.d.ts +10 -1
  17. package/lib/commonjs/renderer/Canvas.js +3 -1
  18. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  19. package/lib/commonjs/sksg/Container.d.ts +2 -0
  20. package/lib/commonjs/sksg/Container.js +10 -0
  21. package/lib/commonjs/sksg/Container.js.map +1 -1
  22. package/lib/commonjs/sksg/Elements.d.ts +65 -0
  23. package/lib/commonjs/sksg/Elements.js +6 -0
  24. package/lib/commonjs/sksg/Elements.js.map +1 -0
  25. package/lib/commonjs/sksg/Reconciler.d.ts +1 -0
  26. package/lib/commonjs/sksg/Reconciler.js +2 -0
  27. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  28. package/lib/commonjs/views/index.d.ts +0 -1
  29. package/lib/commonjs/views/index.js +0 -11
  30. package/lib/commonjs/views/index.js.map +1 -1
  31. package/lib/module/dom/nodes/index.d.ts +0 -1
  32. package/lib/module/dom/nodes/index.js +0 -1
  33. package/lib/module/dom/nodes/index.js.map +1 -1
  34. package/lib/module/external/reanimated/renderHelpers.d.ts +0 -6
  35. package/lib/module/external/reanimated/renderHelpers.js +0 -68
  36. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  37. package/lib/module/index.d.ts +0 -1
  38. package/lib/module/index.js +0 -1
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/renderer/Canvas.d.ts +10 -1
  41. package/lib/module/renderer/Canvas.js +1 -0
  42. package/lib/module/renderer/Canvas.js.map +1 -1
  43. package/lib/module/sksg/Container.d.ts +2 -0
  44. package/lib/module/sksg/Container.js +10 -0
  45. package/lib/module/sksg/Container.js.map +1 -1
  46. package/lib/module/sksg/Elements.d.ts +65 -0
  47. package/lib/module/sksg/Elements.js +2 -0
  48. package/lib/module/sksg/Elements.js.map +1 -0
  49. package/lib/module/sksg/Reconciler.d.ts +1 -0
  50. package/lib/module/sksg/Reconciler.js +2 -0
  51. package/lib/module/sksg/Reconciler.js.map +1 -1
  52. package/lib/module/views/index.d.ts +0 -1
  53. package/lib/module/views/index.js +0 -1
  54. package/lib/module/views/index.js.map +1 -1
  55. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -3
  56. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +1 -0
  57. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -0
  58. package/lib/typescript/lib/commonjs/sksg/Elements.d.ts +1 -0
  59. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -0
  60. package/lib/typescript/lib/module/dom/nodes/index.d.ts +0 -1
  61. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -3
  62. package/lib/typescript/lib/module/index.d.ts +0 -1
  63. package/lib/typescript/lib/module/mock/index.d.ts +0 -1
  64. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -0
  65. package/lib/typescript/lib/module/sksg/Container.d.ts +2 -0
  66. package/lib/typescript/lib/module/sksg/Elements.d.ts +1 -0
  67. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -0
  68. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  69. package/lib/typescript/src/dom/nodes/index.d.ts +0 -1
  70. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -6
  71. package/lib/typescript/src/index.d.ts +0 -1
  72. package/lib/typescript/src/renderer/Canvas.d.ts +10 -1
  73. package/lib/typescript/src/sksg/Container.d.ts +2 -0
  74. package/lib/typescript/src/sksg/Elements.d.ts +65 -0
  75. package/lib/typescript/src/sksg/Reconciler.d.ts +1 -0
  76. package/lib/typescript/src/views/index.d.ts +0 -1
  77. package/package.json +1 -1
  78. package/react-native-skia.podspec +1 -1
  79. package/src/dom/nodes/index.ts +0 -1
  80. package/src/external/reanimated/renderHelpers.ts +1 -78
  81. package/src/index.ts +0 -1
  82. package/src/renderer/Canvas.tsx +11 -1
  83. package/src/sksg/Container.ts +11 -0
  84. package/src/sksg/Elements.tsx +136 -0
  85. package/src/sksg/Reconciler.ts +2 -0
  86. package/src/views/index.ts +0 -1
  87. package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
  88. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
  89. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
  90. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
  91. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
  92. package/cpp/rnskia/RNSkDomView.cpp +0 -121
  93. package/cpp/rnskia/RNSkDomView.h +0 -97
  94. package/cpp/rnskia/dom/JsiDomApi.h +0 -165
  95. package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
  96. package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
  97. package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
  98. package/cpp/rnskia/dom/base/Declaration.h +0 -86
  99. package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
  100. package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
  101. package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
  102. package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
  103. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
  104. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
  105. package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
  106. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
  107. package/cpp/rnskia/dom/base/NodeProp.h +0 -139
  108. package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
  109. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
  110. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
  111. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
  112. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
  113. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
  114. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
  115. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
  116. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
  117. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
  118. package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
  119. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
  120. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
  121. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
  122. package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
  123. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
  124. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
  125. package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
  126. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
  127. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
  128. package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
  129. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
  130. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
  131. package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
  132. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
  133. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
  134. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
  135. package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
  136. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
  137. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
  138. package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
  139. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
  140. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
  141. package/cpp/rnskia/dom/props/BezierProps.h +0 -65
  142. package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
  143. package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
  144. package/cpp/rnskia/dom/props/CircleProp.h +0 -49
  145. package/cpp/rnskia/dom/props/ClipProp.h +0 -57
  146. package/cpp/rnskia/dom/props/ColorProp.h +0 -96
  147. package/cpp/rnskia/dom/props/FontProp.h +0 -42
  148. package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
  149. package/cpp/rnskia/dom/props/LayerProp.h +0 -52
  150. package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
  151. package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
  152. package/cpp/rnskia/dom/props/PaintProps.h +0 -133
  153. package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
  154. package/cpp/rnskia/dom/props/PathProp.h +0 -59
  155. package/cpp/rnskia/dom/props/PictureProp.h +0 -40
  156. package/cpp/rnskia/dom/props/PointProp.h +0 -65
  157. package/cpp/rnskia/dom/props/PointsProp.h +0 -81
  158. package/cpp/rnskia/dom/props/RRectProp.h +0 -222
  159. package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
  160. package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
  161. package/cpp/rnskia/dom/props/RectProp.h +0 -164
  162. package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
  163. package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
  164. package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
  165. package/cpp/rnskia/dom/props/SvgProp.h +0 -45
  166. package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
  167. package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
  168. package/cpp/rnskia/dom/props/TransformProp.h +0 -147
  169. package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
  170. package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
  171. package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
  172. package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
  173. package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
  174. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
  175. package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
  176. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
  177. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
  178. package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
  179. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
  180. package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
  181. package/lib/commonjs/renderer/CanvasOld.js +0 -96
  182. package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
  183. package/lib/commonjs/renderer/Container.d.ts +0 -10
  184. package/lib/commonjs/renderer/Container.js +0 -26
  185. package/lib/commonjs/renderer/Container.js.map +0 -1
  186. package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
  187. package/lib/commonjs/renderer/HostComponents.js +0 -141
  188. package/lib/commonjs/renderer/HostComponents.js.map +0 -1
  189. package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
  190. package/lib/commonjs/renderer/HostConfig.js +0 -157
  191. package/lib/commonjs/renderer/HostConfig.js.map +0 -1
  192. package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
  193. package/lib/commonjs/renderer/Reconciler.js +0 -44
  194. package/lib/commonjs/renderer/Reconciler.js.map +0 -1
  195. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  196. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
  197. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
  198. package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
  199. package/lib/commonjs/views/SkiaDomView.js +0 -119
  200. package/lib/commonjs/views/SkiaDomView.js.map +0 -1
  201. package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  202. package/lib/commonjs/views/SkiaDomView.web.js +0 -2
  203. package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
  204. package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
  205. package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
  206. package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
  207. package/lib/module/renderer/CanvasOld.d.ts +0 -11
  208. package/lib/module/renderer/CanvasOld.js +0 -87
  209. package/lib/module/renderer/CanvasOld.js.map +0 -1
  210. package/lib/module/renderer/Container.d.ts +0 -10
  211. package/lib/module/renderer/Container.js +0 -19
  212. package/lib/module/renderer/Container.js.map +0 -1
  213. package/lib/module/renderer/HostComponents.d.ts +0 -129
  214. package/lib/module/renderer/HostComponents.js +0 -134
  215. package/lib/module/renderer/HostComponents.js.map +0 -1
  216. package/lib/module/renderer/HostConfig.d.ts +0 -18
  217. package/lib/module/renderer/HostConfig.js +0 -150
  218. package/lib/module/renderer/HostConfig.js.map +0 -1
  219. package/lib/module/renderer/Reconciler.d.ts +0 -9
  220. package/lib/module/renderer/Reconciler.js +0 -36
  221. package/lib/module/renderer/Reconciler.js.map +0 -1
  222. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  223. package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
  224. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
  225. package/lib/module/views/SkiaDomView.d.ts +0 -33
  226. package/lib/module/views/SkiaDomView.js +0 -111
  227. package/lib/module/views/SkiaDomView.js.map +0 -1
  228. package/lib/module/views/SkiaDomView.web.d.ts +0 -0
  229. package/lib/module/views/SkiaDomView.web.js +0 -2
  230. package/lib/module/views/SkiaDomView.web.js.map +0 -1
  231. package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
  232. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
  233. package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
  234. package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
  235. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
  236. package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
  237. package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
  238. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
  239. package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  240. package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
  241. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
  242. package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
  243. package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
  244. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
  245. package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
  246. package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
  247. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
  248. package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
  249. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
  250. package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
  251. package/lib/typescript/src/renderer/Container.d.ts +0 -10
  252. package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
  253. package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
  254. package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
  255. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  256. package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
  257. package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
  258. package/src/dom/nodes/JsiSkDOM.ts +0 -298
  259. package/src/renderer/CanvasOld.tsx +0 -126
  260. package/src/renderer/Container.tsx +0 -19
  261. package/src/renderer/HostComponents.ts +0 -399
  262. package/src/renderer/HostConfig.ts +0 -258
  263. package/src/renderer/Reconciler.tsx +0 -54
  264. package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
  265. package/src/views/SkiaDomView.tsx +0 -124
  266. package/src/views/SkiaDomView.web.tsx +0 -0
@@ -1,6 +1,5 @@
1
1
  export { JsiSkImage } from "./skia/web/JsiSkImage";
2
2
  export * from "./renderer";
3
- export * from "./renderer/CanvasOld";
4
3
  export * from "./renderer/Canvas";
5
4
  export * from "./renderer/Offscreen";
6
5
  export * from "./views";
@@ -58,7 +58,6 @@ export function Mock(CanvasKit: any): {
58
58
  useSVG: () => null;
59
59
  useVideo: () => null;
60
60
  NodeType: {};
61
- JsiSkDOM: typeof import("../dom/nodes").JsiSkDOM;
62
61
  enumKey: (k: any) => any;
63
62
  processPath: (Skia: any, rawPath: any) => any;
64
63
  isPathDef: (def: any) => boolean;
@@ -1 +1,2 @@
1
+ export function useCanvasRef(): import("react").MutableRefObject<null>;
1
2
  export const Canvas: import("react").ForwardRefExoticComponent<import("react").RefAttributes<any>>;
@@ -2,6 +2,8 @@ export class Container {
2
2
  constructor(Skia: any, nativeId: any);
3
3
  Skia: any;
4
4
  nativeId: any;
5
+ unmount(): void;
6
+ unmounted: boolean | undefined;
5
7
  drawOnCanvas(canvas: any): void;
6
8
  }
7
9
  export function createContainer(Skia: any, nativeId: any): StaticContainer | ReanimatedContainer | NativeReanimatedContainer;
@@ -0,0 +1 @@
1
+ export {};
@@ -10,6 +10,8 @@ export class SkiaSGRoot {
10
10
  } | undefined;
11
11
  Skia: any;
12
12
  nativeId: any;
13
+ unmount(): void;
14
+ unmounted: boolean | undefined;
13
15
  drawOnCanvas(canvas: any): void;
14
16
  } | {
15
17
  redraw(): void;
@@ -20,12 +22,16 @@ export class SkiaSGRoot {
20
22
  mapperId: any;
21
23
  Skia: any;
22
24
  nativeId: any;
25
+ unmount(): void;
26
+ unmounted: boolean | undefined;
23
27
  drawOnCanvas(canvas: any): void;
24
28
  } | {
25
29
  redraw(): void;
26
30
  mapperId: any;
27
31
  Skia: any;
28
32
  nativeId: any;
33
+ unmount(): void;
34
+ unmounted: boolean | undefined;
29
35
  drawOnCanvas(canvas: any): void;
30
36
  };
31
37
  root: any;
@@ -1,3 +1,2 @@
1
1
  export * from "./SkiaPictureView";
2
- export * from "./SkiaDomView";
3
2
  export * from "./types";
@@ -1,3 +1,2 @@
1
1
  export * from "../types";
2
- export * from "./JsiSkDOM";
3
2
  export * from "./datatypes";
@@ -1,7 +1 @@
1
- import type { Container } from "../../renderer/Container";
2
- import type { AnimatedProps } from "../../renderer/processors";
3
- import type { Node } from "../../dom/types";
4
1
  export declare let HAS_REANIMATED_3: boolean;
5
- export declare const unbindReanimatedNode: (node: Node<unknown>) => void;
6
- export declare function extractReanimatedProps(props: AnimatedProps<any>): AnimatedProps<any, never>[];
7
- export declare function bindReanimatedProps(container: Container, node: Node<any>, reanimatedProps: AnimatedProps<any>): void;
@@ -1,7 +1,6 @@
1
1
  import "./skia/NativeSetup";
2
2
  export { JsiSkImage } from "./skia/web/JsiSkImage";
3
3
  export * from "./renderer";
4
- export * from "./renderer/CanvasOld";
5
4
  export * from "./renderer/Canvas";
6
5
  export * from "./renderer/Offscreen";
7
6
  export * from "./views";
@@ -1,6 +1,14 @@
1
+ import type { FC } from "react";
1
2
  import type { ViewProps } from "react-native";
2
3
  import type { SharedValue } from "react-native-reanimated";
3
- import type { SkSize } from "../skia/types";
4
+ import type { SkImage, SkRect, SkSize } from "../skia/types";
5
+ interface CanvasRef extends FC<CanvasProps> {
6
+ makeImageSnapshot(rect?: SkRect): SkImage;
7
+ makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;
8
+ redraw(): void;
9
+ getNativeId(): number;
10
+ }
11
+ export declare const useCanvasRef: () => import("react").RefObject<CanvasRef>;
4
12
  export interface CanvasProps extends ViewProps {
5
13
  debug?: boolean;
6
14
  opaque?: boolean;
@@ -8,3 +16,4 @@ export interface CanvasProps extends ViewProps {
8
16
  mode?: "continuous" | "default";
9
17
  }
10
18
  export declare const Canvas: import("react").ForwardRefExoticComponent<CanvasProps & import("react").RefAttributes<unknown>>;
19
+ export {};
@@ -6,7 +6,9 @@ export declare abstract class Container {
6
6
  protected nativeId: number;
7
7
  root: Node[];
8
8
  protected recording: Recording | null;
9
+ protected unmounted: boolean;
9
10
  constructor(Skia: Skia, nativeId: number);
11
+ unmount(): void;
10
12
  drawOnCanvas(canvas: SkCanvas): void;
11
13
  abstract redraw(): void;
12
14
  }
@@ -0,0 +1,65 @@
1
+ import type { FractalNoiseProps, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps, ChildrenProps, MorphologyImageFilterProps, BlendProps } from "../dom/types";
2
+ import type { SkiaProps } from "../renderer";
3
+ declare global {
4
+ namespace JSX {
5
+ interface IntrinsicElements {
6
+ skGroup: SkiaProps<GroupProps>;
7
+ skLayer: SkiaProps<ChildrenProps>;
8
+ skPaint: SkiaProps<PaintProps>;
9
+ skFill: SkiaProps<DrawingNodeProps>;
10
+ skImage: SkiaProps<ImageProps>;
11
+ skCircle: SkiaProps<CircleProps>;
12
+ skPath: SkiaProps<PathProps>;
13
+ skLine: SkiaProps<LineProps>;
14
+ skOval: SkiaProps<OvalProps>;
15
+ skPatch: SkiaProps<PatchProps>;
16
+ skPoints: SkiaProps<PointsProps>;
17
+ skRect: SkiaProps<RectProps>;
18
+ skRRect: SkiaProps<RoundedRectProps>;
19
+ skAtlas: SkiaProps<AtlasProps>;
20
+ skVertices: SkiaProps<VerticesProps>;
21
+ skText: SkiaProps<TextProps>;
22
+ skTextPath: SkiaProps<TextPathProps>;
23
+ skTextBlob: SkiaProps<TextBlobProps>;
24
+ skGlyphs: SkiaProps<GlyphsProps>;
25
+ skDiffRect: SkiaProps<DiffRectProps>;
26
+ skPicture: SkiaProps<PictureProps>;
27
+ skImageSVG: SkiaProps<ImageSVGProps>;
28
+ skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
29
+ skBlendImageFilter: SkiaProps<BlendImageFilterProps>;
30
+ skBlurImageFilter: SkiaProps<BlurImageFilterProps>;
31
+ skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;
32
+ skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;
33
+ skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;
34
+ skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;
35
+ skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;
36
+ skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;
37
+ skBlendColorFilter: SkiaProps<BlendColorFilterProps>;
38
+ skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;
39
+ skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;
40
+ skLumaColorFilter: SkiaProps<ChildrenProps>;
41
+ skLerpColorFilter: SkiaProps<LerpColorFilterProps>;
42
+ skShader: SkiaProps<ShaderProps>;
43
+ skImageShader: SkiaProps<ImageShaderProps>;
44
+ skColorShader: SkiaProps<ColorProps>;
45
+ skTurbulence: SkiaProps<TurbulenceProps>;
46
+ skFractalNoise: SkiaProps<FractalNoiseProps>;
47
+ skLinearGradient: SkiaProps<LinearGradientProps>;
48
+ skRadialGradient: SkiaProps<RadialGradientProps>;
49
+ skSweepGradient: SkiaProps<SweepGradientProps>;
50
+ skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;
51
+ skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;
52
+ skDashPathEffect: SkiaProps<DashPathEffectProps>;
53
+ skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;
54
+ skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;
55
+ skCornerPathEffect: SkiaProps<CornerPathEffectProps>;
56
+ skSumPathEffect: ChildrenProps;
57
+ skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;
58
+ skBlend: SkiaProps<BlendProps>;
59
+ skBackdropFilter: SkiaProps<ChildrenProps>;
60
+ skBox: SkiaProps<BoxProps>;
61
+ skBoxShadow: SkiaProps<BoxShadowProps>;
62
+ skParagraph: SkiaProps<ParagraphProps>;
63
+ }
64
+ }
65
+ }
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { SkCanvas, Skia } from "../skia/types";
3
3
  import { NodeType } from "../dom/types";
4
+ import "./Elements";
4
5
  export declare class SkiaSGRoot {
5
6
  Skia: Skia;
6
7
  private root;
@@ -1,3 +1,2 @@
1
1
  export * from "./SkiaPictureView";
2
- export * from "./SkiaDomView";
3
2
  export * from "./types";
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "setup-skia-web": "./scripts/setup-canvaskit.js"
9
9
  },
10
10
  "title": "React Native Skia",
11
- "version": "1.11.1",
11
+ "version": "1.11.3",
12
12
  "description": "High-performance React Native Graphics using Skia",
13
13
  "main": "lib/module/index.js",
14
14
  "react-native": "src/index.ts",
@@ -52,7 +52,7 @@ Pod::Spec.new do |s|
52
52
  "HEADER_SEARCH_PATHS" => '"$(PODS_TARGET_SRCROOT)/cpp/"/**'
53
53
  }
54
54
 
55
- s.frameworks = 'MetalKit'
55
+ s.frameworks = ['MetalKit', 'AVFoundation', 'AVKit', 'CoreMedia']
56
56
 
57
57
  s.vendored_frameworks = use_graphite ?
58
58
  base_frameworks + graphite_frameworks :
@@ -1,3 +1,2 @@
1
1
  export * from "../types";
2
- export * from "./JsiSkDOM";
3
2
  export * from "./datatypes";
@@ -1,12 +1,5 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import type { Container } from "../../renderer/Container";
4
- import type { AnimatedProps } from "../../renderer/processors";
5
- import type { Node } from "../../dom/types";
6
-
7
- import Rea from "./ReanimatedProxy";
8
-
9
1
  export let HAS_REANIMATED_3 = false;
2
+
10
3
  try {
11
4
  // This logic is convoluted but necessary
12
5
  // In most systems, `require("react-native-reanimated")` throws an error, all is well.
@@ -24,73 +17,3 @@ try {
24
17
  } catch (e) {
25
18
  // do nothing
26
19
  }
27
-
28
- const _bindings = new WeakMap<Node<unknown>, unknown>();
29
-
30
- export const unbindReanimatedNode = (node: Node<unknown>) => {
31
- if (!HAS_REANIMATED_3) {
32
- return;
33
- }
34
- const previousMapperId = _bindings.get(node);
35
- if (previousMapperId !== undefined) {
36
- Rea.stopMapper(previousMapperId as number);
37
- }
38
- };
39
-
40
- export function extractReanimatedProps(props: AnimatedProps<any>) {
41
- if (!HAS_REANIMATED_3) {
42
- return [props, {}];
43
- }
44
- const reanimatedProps = {} as AnimatedProps<any>;
45
- const otherProps = {} as AnimatedProps<any>;
46
- for (const propName in props) {
47
- if (propName === "children") {
48
- continue;
49
- }
50
- const propValue = props[propName];
51
- if (Rea.isSharedValue(propValue)) {
52
- reanimatedProps[propName] = propValue;
53
- otherProps[propName] = propValue.value;
54
- } else {
55
- otherProps[propName] = propValue;
56
- }
57
- }
58
- return [otherProps, reanimatedProps];
59
- }
60
-
61
- export function bindReanimatedProps(
62
- container: Container,
63
- node: Node<any>,
64
- reanimatedProps: AnimatedProps<any>
65
- ) {
66
- if (!HAS_REANIMATED_3) {
67
- return;
68
- }
69
- const sharedValues = Object.values(reanimatedProps);
70
- const previousMapperId = _bindings.get(node);
71
- if (previousMapperId !== undefined) {
72
- Rea.stopMapper(previousMapperId as number);
73
- }
74
- if (sharedValues.length > 0) {
75
- const viewId = container.getNativeId();
76
- const { SkiaViewApi } = global;
77
- const mapperId = Rea.startMapper(() => {
78
- "worklet";
79
- if (node) {
80
- for (const propName in reanimatedProps) {
81
- node.setProp(propName, reanimatedProps[propName].value);
82
- }
83
- }
84
- // On React Native we use the SkiaViewApi to redraw because it can
85
- // run on the worklet thread (container.redraw can't)
86
- // if SkiaViewApi is undefined, we are on web and container.redraw()
87
- // can safely be invoked
88
- if (SkiaViewApi) {
89
- SkiaViewApi.requestRedraw(viewId);
90
- } else {
91
- container.redraw();
92
- }
93
- }, sharedValues);
94
- _bindings.set(node, mapperId);
95
- }
96
- }
package/src/index.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import "./skia/NativeSetup";
2
2
  export { JsiSkImage } from "./skia/web/JsiSkImage";
3
3
  export * from "./renderer";
4
- export * from "./renderer/CanvasOld";
5
4
  export * from "./renderer/Canvas";
6
5
  export * from "./renderer/Offscreen";
7
6
  export * from "./views";
@@ -1,3 +1,4 @@
1
+ import type { FC } from "react";
1
2
  import {
2
3
  forwardRef,
3
4
  useCallback,
@@ -11,11 +12,20 @@ import type { SharedValue } from "react-native-reanimated";
11
12
 
12
13
  import { SkiaViewNativeId } from "../views/SkiaViewNativeId";
13
14
  import SkiaPictureViewNativeComponent from "../specs/SkiaPictureViewNativeComponent";
14
- import type { SkRect, SkSize } from "../skia/types";
15
+ import type { SkImage, SkRect, SkSize } from "../skia/types";
15
16
  import { SkiaSGRoot } from "../sksg/Reconciler";
16
17
  import { Skia } from "../skia";
17
18
  import type { SkiaBaseViewProps } from "../views";
18
19
 
20
+ interface CanvasRef extends FC<CanvasProps> {
21
+ makeImageSnapshot(rect?: SkRect): SkImage;
22
+ makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;
23
+ redraw(): void;
24
+ getNativeId(): number;
25
+ }
26
+
27
+ export const useCanvasRef = () => useRef<CanvasRef>(null);
28
+
19
29
  const NativeSkiaPictureView = SkiaPictureViewNativeComponent;
20
30
 
21
31
  // TODO: no need to go through the JS thread for this
@@ -52,9 +52,14 @@ const nativeDrawOnscreen = (
52
52
  export abstract class Container {
53
53
  public root: Node[] = [];
54
54
  protected recording: Recording | null = null;
55
+ protected unmounted = false;
55
56
 
56
57
  constructor(protected Skia: Skia, protected nativeId: number) {}
57
58
 
59
+ unmount() {
60
+ this.unmounted = true;
61
+ }
62
+
58
63
  drawOnCanvas(canvas: SkCanvas) {
59
64
  if (!this.recording) {
60
65
  throw new Error("No recording to draw");
@@ -101,6 +106,9 @@ class ReanimatedContainer extends Container {
101
106
  if (this.mapperId !== null) {
102
107
  Rea.stopMapper(this.mapperId);
103
108
  }
109
+ if (this.unmounted) {
110
+ return;
111
+ }
104
112
  const recorder = new Recorder();
105
113
  visit(recorder, this.root);
106
114
  const record = recorder.getRecording();
@@ -134,6 +142,9 @@ class NativeReanimatedContainer extends Container {
134
142
  if (this.mapperId !== null) {
135
143
  Rea.stopMapper(this.mapperId);
136
144
  }
145
+ if (this.unmounted) {
146
+ return;
147
+ }
137
148
  const { nativeId, Skia } = this;
138
149
  const recorder = new ReanimatedRecorder(Skia);
139
150
  visit(recorder, this.root);
@@ -0,0 +1,136 @@
1
+ import type {
2
+ FractalNoiseProps,
3
+ CircleProps,
4
+ DrawingNodeProps,
5
+ ImageProps,
6
+ PaintProps,
7
+ PathProps,
8
+ LineProps,
9
+ OvalProps,
10
+ DiffRectProps,
11
+ PointsProps,
12
+ RectProps,
13
+ RoundedRectProps,
14
+ TextProps,
15
+ VerticesProps,
16
+ BlurMaskFilterProps,
17
+ BlendImageFilterProps,
18
+ BlurImageFilterProps,
19
+ DisplacementMapImageFilterProps,
20
+ DropShadowImageFilterProps,
21
+ OffsetImageFilterProps,
22
+ RuntimeShaderImageFilterProps,
23
+ MatrixColorFilterProps,
24
+ ShaderProps,
25
+ ImageShaderProps,
26
+ LinearGradientProps,
27
+ GroupProps,
28
+ PatchProps,
29
+ BlendColorFilterProps,
30
+ DashPathEffectProps,
31
+ DiscretePathEffectProps,
32
+ CornerPathEffectProps,
33
+ Line2DPathEffectProps,
34
+ Path1DPathEffectProps,
35
+ Path2DPathEffectProps,
36
+ TextPathProps,
37
+ TextBlobProps,
38
+ GlyphsProps,
39
+ TwoPointConicalGradientProps,
40
+ TurbulenceProps,
41
+ SweepGradientProps,
42
+ RadialGradientProps,
43
+ ColorProps,
44
+ PictureProps,
45
+ ImageSVGProps,
46
+ LerpColorFilterProps,
47
+ BoxProps,
48
+ BoxShadowProps,
49
+ ParagraphProps,
50
+ AtlasProps,
51
+ ChildrenProps,
52
+ MorphologyImageFilterProps,
53
+ BlendProps,
54
+ } from "../dom/types";
55
+ import type { SkiaProps } from "../renderer";
56
+
57
+ declare global {
58
+ // eslint-disable-next-line @typescript-eslint/no-namespace
59
+ namespace JSX {
60
+ interface IntrinsicElements {
61
+ skGroup: SkiaProps<GroupProps>;
62
+ skLayer: SkiaProps<ChildrenProps>;
63
+ skPaint: SkiaProps<PaintProps>;
64
+
65
+ // Drawings
66
+ skFill: SkiaProps<DrawingNodeProps>;
67
+ skImage: SkiaProps<ImageProps>;
68
+ skCircle: SkiaProps<CircleProps>;
69
+ skPath: SkiaProps<PathProps>;
70
+ skLine: SkiaProps<LineProps>;
71
+ skOval: SkiaProps<OvalProps>;
72
+ skPatch: SkiaProps<PatchProps>;
73
+ skPoints: SkiaProps<PointsProps>;
74
+ skRect: SkiaProps<RectProps>;
75
+ skRRect: SkiaProps<RoundedRectProps>;
76
+ skAtlas: SkiaProps<AtlasProps>;
77
+ skVertices: SkiaProps<VerticesProps>;
78
+ skText: SkiaProps<TextProps>;
79
+ skTextPath: SkiaProps<TextPathProps>;
80
+ skTextBlob: SkiaProps<TextBlobProps>;
81
+ skGlyphs: SkiaProps<GlyphsProps>;
82
+ skDiffRect: SkiaProps<DiffRectProps>;
83
+ skPicture: SkiaProps<PictureProps>;
84
+ skImageSVG: SkiaProps<ImageSVGProps>;
85
+
86
+ // BlurMaskFilters
87
+ skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
88
+
89
+ // ImageFilters
90
+ skBlendImageFilter: SkiaProps<BlendImageFilterProps>;
91
+ skBlurImageFilter: SkiaProps<BlurImageFilterProps>;
92
+ skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;
93
+ skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;
94
+ skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;
95
+ skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;
96
+ skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;
97
+
98
+ // ColorFilters
99
+ skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;
100
+ skBlendColorFilter: SkiaProps<BlendColorFilterProps>;
101
+ skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;
102
+ skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;
103
+ skLumaColorFilter: SkiaProps<ChildrenProps>;
104
+ skLerpColorFilter: SkiaProps<LerpColorFilterProps>;
105
+
106
+ // Shaders
107
+ skShader: SkiaProps<ShaderProps>;
108
+ skImageShader: SkiaProps<ImageShaderProps>;
109
+ skColorShader: SkiaProps<ColorProps>;
110
+ skTurbulence: SkiaProps<TurbulenceProps>;
111
+ skFractalNoise: SkiaProps<FractalNoiseProps>;
112
+ skLinearGradient: SkiaProps<LinearGradientProps>;
113
+ skRadialGradient: SkiaProps<RadialGradientProps>;
114
+ skSweepGradient: SkiaProps<SweepGradientProps>;
115
+ skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;
116
+
117
+ // Path Effects
118
+ skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;
119
+ skDashPathEffect: SkiaProps<DashPathEffectProps>;
120
+ skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;
121
+ skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;
122
+ skCornerPathEffect: SkiaProps<CornerPathEffectProps>;
123
+ skSumPathEffect: ChildrenProps;
124
+ skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;
125
+
126
+ // Mixed declarations/drawings
127
+ skBlend: SkiaProps<BlendProps>;
128
+ skBackdropFilter: SkiaProps<ChildrenProps>;
129
+ skBox: SkiaProps<BoxProps>;
130
+ skBoxShadow: SkiaProps<BoxShadowProps>;
131
+
132
+ // Paragraph
133
+ skParagraph: SkiaProps<ParagraphProps>;
134
+ }
135
+ }
136
+ }
@@ -8,6 +8,7 @@ import { NodeType } from "../dom/types";
8
8
  import { debug, sksgHostConfig } from "./HostConfig";
9
9
  import type { Container } from "./Container";
10
10
  import { createContainer } from "./Container";
11
+ import "./Elements";
11
12
 
12
13
  const skiaReconciler = ReactReconciler(sksgHostConfig);
13
14
 
@@ -59,6 +60,7 @@ export class SkiaSGRoot {
59
60
  }
60
61
 
61
62
  unmount() {
63
+ this.container.unmount();
62
64
  skiaReconciler.updateContainer(null, this.root, null, () => {
63
65
  debug("unmountContainer");
64
66
  });
@@ -1,3 +1,2 @@
1
1
  export * from "./SkiaPictureView";
2
- export * from "./SkiaDomView";
3
2
  export * from "./types";
@@ -1,82 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #include <fbjni/fbjni.h>
7
- #include <jni.h>
8
- #include <jsi/jsi.h>
9
-
10
- #include "JniSkiaBaseView.h"
11
- #include "JniSkiaManager.h"
12
- #include "RNSkAndroidView.h"
13
- #include "RNSkDomView.h"
14
-
15
- #include <android/native_window.h>
16
- #include <android/native_window_jni.h>
17
- #include <fbjni/detail/Hybrid.h>
18
-
19
- namespace RNSkia {
20
-
21
- namespace jsi = facebook::jsi;
22
- namespace jni = facebook::jni;
23
-
24
- class JniSkiaDomView : public jni::HybridClass<JniSkiaDomView>,
25
- public JniSkiaBaseView {
26
- public:
27
- static auto constexpr kJavaDescriptor =
28
- "Lcom/shopify/reactnative/skia/SkiaDomView;";
29
-
30
- static jni::local_ref<jhybriddata>
31
- initHybrid(jni::alias_ref<jhybridobject> jThis,
32
- jni::alias_ref<JniSkiaManager::javaobject> skiaManager) {
33
- return makeCxxInstance(jThis, skiaManager);
34
- }
35
-
36
- static void registerNatives() {
37
- registerHybrid(
38
- {makeNativeMethod("initHybrid", JniSkiaDomView::initHybrid),
39
- makeNativeMethod("surfaceAvailable", JniSkiaDomView::surfaceAvailable),
40
- makeNativeMethod("surfaceDestroyed", JniSkiaDomView::surfaceDestroyed),
41
- makeNativeMethod("surfaceSizeChanged",
42
- JniSkiaDomView::surfaceSizeChanged),
43
- makeNativeMethod("setDebugMode", JniSkiaDomView::setDebugMode),
44
- makeNativeMethod("registerView", JniSkiaDomView::registerView),
45
- makeNativeMethod("unregisterView", JniSkiaDomView::unregisterView)});
46
- }
47
-
48
- protected:
49
- void surfaceAvailable(jobject surface, int width, int height,
50
- bool opaque) override {
51
- JniSkiaBaseView::surfaceAvailable(surface, width, height, opaque);
52
- }
53
-
54
- void surfaceSizeChanged(jobject surface, int width, int height,
55
- bool opaque) override {
56
- JniSkiaBaseView::surfaceSizeChanged(surface, width, height, opaque);
57
- }
58
-
59
- void surfaceDestroyed() override { JniSkiaBaseView::surfaceDestroyed(); }
60
-
61
- void setDebugMode(bool show) override { JniSkiaBaseView::setDebugMode(show); }
62
-
63
- void registerView(int nativeId) override {
64
- JniSkiaBaseView::registerView(nativeId);
65
- }
66
-
67
- void unregisterView() override { JniSkiaBaseView::unregisterView(); }
68
-
69
- private:
70
- friend HybridBase;
71
-
72
- explicit JniSkiaDomView(
73
- jni::alias_ref<jhybridobject> jThis,
74
- jni::alias_ref<JniSkiaManager::javaobject> skiaManager)
75
- : JniSkiaBaseView(skiaManager,
76
- std::make_shared<RNSkAndroidView<RNSkia::RNSkDomView>>(
77
- skiaManager->cthis()->getPlatformContext())) {}
78
-
79
- jni::global_ref<javaobject> javaPart_;
80
- };
81
-
82
- } // namespace RNSkia
@@ -1,41 +0,0 @@
1
- package com.shopify.reactnative.skia;
2
-
3
- import android.content.Context;
4
-
5
- import com.facebook.jni.HybridData;
6
- import com.facebook.jni.annotations.DoNotStrip;
7
- import com.facebook.react.bridge.ReactContext;
8
- import com.facebook.react.uimanager.ThemedReactContext;
9
-
10
- public class SkiaDomView extends SkiaBaseView {
11
- @DoNotStrip
12
- private HybridData mHybridData;
13
-
14
- public SkiaDomView(ThemedReactContext context) {
15
- super(context);
16
- RNSkiaModule skiaModule = context.getReactApplicationContext().getNativeModule(RNSkiaModule.class);
17
- mHybridData = initHybrid(skiaModule.getSkiaManager());
18
- }
19
-
20
- @Override
21
- protected void finalize() throws Throwable {
22
- super.finalize();
23
- mHybridData.resetNative();
24
- }
25
-
26
- private native HybridData initHybrid(SkiaManager skiaManager);
27
-
28
- protected native void surfaceAvailable(Object surface, int width, int height, boolean opaque);
29
-
30
- protected native void surfaceSizeChanged(Object surface, int width, int height, boolean opaque);
31
-
32
- protected native void surfaceDestroyed();
33
-
34
- protected native void setBgColor(int color);
35
-
36
- protected native void setDebugMode(boolean show);
37
-
38
- protected native void registerView(int nativeId);
39
-
40
- protected native void unregisterView();
41
- }