@shopify/react-native-skia 1.11.1 → 1.11.2

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 (265) 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/src/dom/nodes/index.ts +0 -1
  79. package/src/external/reanimated/renderHelpers.ts +1 -78
  80. package/src/index.ts +0 -1
  81. package/src/renderer/Canvas.tsx +11 -1
  82. package/src/sksg/Container.ts +11 -0
  83. package/src/sksg/Elements.tsx +136 -0
  84. package/src/sksg/Reconciler.ts +2 -0
  85. package/src/views/index.ts +0 -1
  86. package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
  87. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
  88. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
  89. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
  90. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
  91. package/cpp/rnskia/RNSkDomView.cpp +0 -121
  92. package/cpp/rnskia/RNSkDomView.h +0 -97
  93. package/cpp/rnskia/dom/JsiDomApi.h +0 -165
  94. package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
  95. package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
  96. package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
  97. package/cpp/rnskia/dom/base/Declaration.h +0 -86
  98. package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
  99. package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
  100. package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
  101. package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
  102. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
  103. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
  104. package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
  105. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
  106. package/cpp/rnskia/dom/base/NodeProp.h +0 -139
  107. package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
  108. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
  109. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
  110. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
  111. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
  112. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
  113. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
  114. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
  115. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
  116. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
  117. package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
  118. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
  119. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
  120. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
  121. package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
  122. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
  123. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
  124. package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
  125. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
  126. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
  127. package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
  128. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
  129. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
  130. package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
  131. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
  132. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
  133. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
  134. package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
  135. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
  136. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
  137. package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
  138. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
  139. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
  140. package/cpp/rnskia/dom/props/BezierProps.h +0 -65
  141. package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
  142. package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
  143. package/cpp/rnskia/dom/props/CircleProp.h +0 -49
  144. package/cpp/rnskia/dom/props/ClipProp.h +0 -57
  145. package/cpp/rnskia/dom/props/ColorProp.h +0 -96
  146. package/cpp/rnskia/dom/props/FontProp.h +0 -42
  147. package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
  148. package/cpp/rnskia/dom/props/LayerProp.h +0 -52
  149. package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
  150. package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
  151. package/cpp/rnskia/dom/props/PaintProps.h +0 -133
  152. package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
  153. package/cpp/rnskia/dom/props/PathProp.h +0 -59
  154. package/cpp/rnskia/dom/props/PictureProp.h +0 -40
  155. package/cpp/rnskia/dom/props/PointProp.h +0 -65
  156. package/cpp/rnskia/dom/props/PointsProp.h +0 -81
  157. package/cpp/rnskia/dom/props/RRectProp.h +0 -222
  158. package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
  159. package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
  160. package/cpp/rnskia/dom/props/RectProp.h +0 -164
  161. package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
  162. package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
  163. package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
  164. package/cpp/rnskia/dom/props/SvgProp.h +0 -45
  165. package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
  166. package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
  167. package/cpp/rnskia/dom/props/TransformProp.h +0 -147
  168. package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
  169. package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
  170. package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
  171. package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
  172. package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
  173. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
  174. package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
  175. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
  176. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
  177. package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
  178. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
  179. package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
  180. package/lib/commonjs/renderer/CanvasOld.js +0 -96
  181. package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
  182. package/lib/commonjs/renderer/Container.d.ts +0 -10
  183. package/lib/commonjs/renderer/Container.js +0 -26
  184. package/lib/commonjs/renderer/Container.js.map +0 -1
  185. package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
  186. package/lib/commonjs/renderer/HostComponents.js +0 -141
  187. package/lib/commonjs/renderer/HostComponents.js.map +0 -1
  188. package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
  189. package/lib/commonjs/renderer/HostConfig.js +0 -157
  190. package/lib/commonjs/renderer/HostConfig.js.map +0 -1
  191. package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
  192. package/lib/commonjs/renderer/Reconciler.js +0 -44
  193. package/lib/commonjs/renderer/Reconciler.js.map +0 -1
  194. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  195. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
  196. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
  197. package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
  198. package/lib/commonjs/views/SkiaDomView.js +0 -119
  199. package/lib/commonjs/views/SkiaDomView.js.map +0 -1
  200. package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  201. package/lib/commonjs/views/SkiaDomView.web.js +0 -2
  202. package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
  203. package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
  204. package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
  205. package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
  206. package/lib/module/renderer/CanvasOld.d.ts +0 -11
  207. package/lib/module/renderer/CanvasOld.js +0 -87
  208. package/lib/module/renderer/CanvasOld.js.map +0 -1
  209. package/lib/module/renderer/Container.d.ts +0 -10
  210. package/lib/module/renderer/Container.js +0 -19
  211. package/lib/module/renderer/Container.js.map +0 -1
  212. package/lib/module/renderer/HostComponents.d.ts +0 -129
  213. package/lib/module/renderer/HostComponents.js +0 -134
  214. package/lib/module/renderer/HostComponents.js.map +0 -1
  215. package/lib/module/renderer/HostConfig.d.ts +0 -18
  216. package/lib/module/renderer/HostConfig.js +0 -150
  217. package/lib/module/renderer/HostConfig.js.map +0 -1
  218. package/lib/module/renderer/Reconciler.d.ts +0 -9
  219. package/lib/module/renderer/Reconciler.js +0 -36
  220. package/lib/module/renderer/Reconciler.js.map +0 -1
  221. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  222. package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
  223. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
  224. package/lib/module/views/SkiaDomView.d.ts +0 -33
  225. package/lib/module/views/SkiaDomView.js +0 -111
  226. package/lib/module/views/SkiaDomView.js.map +0 -1
  227. package/lib/module/views/SkiaDomView.web.d.ts +0 -0
  228. package/lib/module/views/SkiaDomView.web.js +0 -2
  229. package/lib/module/views/SkiaDomView.web.js.map +0 -1
  230. package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
  231. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
  232. package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
  233. package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
  234. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
  235. package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
  236. package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
  237. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
  238. package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  239. package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
  240. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
  241. package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
  242. package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
  243. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
  244. package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
  245. package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
  246. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
  247. package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
  248. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
  249. package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
  250. package/lib/typescript/src/renderer/Container.d.ts +0 -10
  251. package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
  252. package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
  253. package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
  254. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  255. package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
  256. package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
  257. package/src/dom/nodes/JsiSkDOM.ts +0 -298
  258. package/src/renderer/CanvasOld.tsx +0 -126
  259. package/src/renderer/Container.tsx +0 -19
  260. package/src/renderer/HostComponents.ts +0 -399
  261. package/src/renderer/HostConfig.ts +0 -258
  262. package/src/renderer/Reconciler.tsx +0 -54
  263. package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
  264. package/src/views/SkiaDomView.tsx +0 -124
  265. 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.2",
12
12
  "description": "High-performance React Native Graphics using Skia",
13
13
  "main": "lib/module/index.js",
14
14
  "react-native": "src/index.ts",
@@ -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
- }