@shopify/react-native-skia 1.11.0 → 1.11.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (272) 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/api/recorder/Convertor.h +2 -1
  6. package/cpp/api/recorder/DataTypes.h +70 -72
  7. package/cpp/api/recorder/Drawings.h +25 -24
  8. package/cpp/api/recorder/RNRecorder.h +12 -10
  9. package/cpp/api/recorder/Shaders.h +5 -5
  10. package/cpp/jsi/ViewProperty.h +5 -16
  11. package/cpp/rnskia/RNSkManager.cpp +1 -7
  12. package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +8 -4
  13. package/lib/commonjs/dom/nodes/index.d.ts +0 -1
  14. package/lib/commonjs/dom/nodes/index.js +0 -11
  15. package/lib/commonjs/dom/nodes/index.js.map +1 -1
  16. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -6
  17. package/lib/commonjs/external/reanimated/renderHelpers.js +0 -73
  18. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  19. package/lib/commonjs/index.d.ts +0 -1
  20. package/lib/commonjs/index.js +0 -12
  21. package/lib/commonjs/index.js.map +1 -1
  22. package/lib/commonjs/renderer/Canvas.d.ts +10 -1
  23. package/lib/commonjs/renderer/Canvas.js +3 -1
  24. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  25. package/lib/commonjs/sksg/Container.d.ts +2 -0
  26. package/lib/commonjs/sksg/Container.js +10 -0
  27. package/lib/commonjs/sksg/Container.js.map +1 -1
  28. package/lib/commonjs/sksg/Elements.d.ts +65 -0
  29. package/lib/commonjs/sksg/Elements.js +6 -0
  30. package/lib/commonjs/sksg/Elements.js.map +1 -0
  31. package/lib/commonjs/sksg/Reconciler.d.ts +1 -0
  32. package/lib/commonjs/sksg/Reconciler.js +2 -0
  33. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  34. package/lib/commonjs/views/index.d.ts +0 -1
  35. package/lib/commonjs/views/index.js +0 -11
  36. package/lib/commonjs/views/index.js.map +1 -1
  37. package/lib/module/dom/nodes/index.d.ts +0 -1
  38. package/lib/module/dom/nodes/index.js +0 -1
  39. package/lib/module/dom/nodes/index.js.map +1 -1
  40. package/lib/module/external/reanimated/renderHelpers.d.ts +0 -6
  41. package/lib/module/external/reanimated/renderHelpers.js +0 -68
  42. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  43. package/lib/module/index.d.ts +0 -1
  44. package/lib/module/index.js +0 -1
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/renderer/Canvas.d.ts +10 -1
  47. package/lib/module/renderer/Canvas.js +1 -0
  48. package/lib/module/renderer/Canvas.js.map +1 -1
  49. package/lib/module/sksg/Container.d.ts +2 -0
  50. package/lib/module/sksg/Container.js +10 -0
  51. package/lib/module/sksg/Container.js.map +1 -1
  52. package/lib/module/sksg/Elements.d.ts +65 -0
  53. package/lib/module/sksg/Elements.js +2 -0
  54. package/lib/module/sksg/Elements.js.map +1 -0
  55. package/lib/module/sksg/Reconciler.d.ts +1 -0
  56. package/lib/module/sksg/Reconciler.js +2 -0
  57. package/lib/module/sksg/Reconciler.js.map +1 -1
  58. package/lib/module/views/index.d.ts +0 -1
  59. package/lib/module/views/index.js +0 -1
  60. package/lib/module/views/index.js.map +1 -1
  61. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -3
  62. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +1 -0
  63. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -0
  64. package/lib/typescript/lib/commonjs/sksg/Elements.d.ts +1 -0
  65. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -0
  66. package/lib/typescript/lib/module/dom/nodes/index.d.ts +0 -1
  67. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -3
  68. package/lib/typescript/lib/module/index.d.ts +0 -1
  69. package/lib/typescript/lib/module/mock/index.d.ts +0 -1
  70. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -0
  71. package/lib/typescript/lib/module/sksg/Container.d.ts +2 -0
  72. package/lib/typescript/lib/module/sksg/Elements.d.ts +1 -0
  73. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -0
  74. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  75. package/lib/typescript/src/dom/nodes/index.d.ts +0 -1
  76. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -6
  77. package/lib/typescript/src/index.d.ts +0 -1
  78. package/lib/typescript/src/renderer/Canvas.d.ts +10 -1
  79. package/lib/typescript/src/sksg/Container.d.ts +2 -0
  80. package/lib/typescript/src/sksg/Elements.d.ts +65 -0
  81. package/lib/typescript/src/sksg/Reconciler.d.ts +1 -0
  82. package/lib/typescript/src/views/index.d.ts +0 -1
  83. package/package.json +1 -1
  84. package/src/dom/nodes/index.ts +0 -1
  85. package/src/external/reanimated/renderHelpers.ts +1 -78
  86. package/src/index.ts +0 -1
  87. package/src/renderer/Canvas.tsx +11 -1
  88. package/src/sksg/Container.ts +11 -0
  89. package/src/sksg/Elements.tsx +136 -0
  90. package/src/sksg/Reconciler.ts +2 -0
  91. package/src/views/index.ts +0 -1
  92. package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
  93. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
  94. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
  95. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
  96. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
  97. package/cpp/rnskia/RNSkDomView.cpp +0 -121
  98. package/cpp/rnskia/RNSkDomView.h +0 -97
  99. package/cpp/rnskia/dom/JsiDomApi.h +0 -165
  100. package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
  101. package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
  102. package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
  103. package/cpp/rnskia/dom/base/Declaration.h +0 -86
  104. package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
  105. package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
  106. package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
  107. package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
  108. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
  109. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
  110. package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
  111. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
  112. package/cpp/rnskia/dom/base/NodeProp.h +0 -139
  113. package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
  114. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
  115. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
  116. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
  117. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
  118. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
  119. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
  120. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
  121. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
  122. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
  123. package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
  124. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
  125. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
  126. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
  127. package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
  128. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
  129. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
  130. package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
  131. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
  132. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
  133. package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
  134. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
  135. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
  136. package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
  137. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
  138. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
  139. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
  140. package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
  141. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
  142. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
  143. package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
  144. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
  145. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
  146. package/cpp/rnskia/dom/props/BezierProps.h +0 -65
  147. package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
  148. package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
  149. package/cpp/rnskia/dom/props/CircleProp.h +0 -49
  150. package/cpp/rnskia/dom/props/ClipProp.h +0 -57
  151. package/cpp/rnskia/dom/props/ColorProp.h +0 -96
  152. package/cpp/rnskia/dom/props/FontProp.h +0 -42
  153. package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
  154. package/cpp/rnskia/dom/props/LayerProp.h +0 -52
  155. package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
  156. package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
  157. package/cpp/rnskia/dom/props/PaintProps.h +0 -133
  158. package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
  159. package/cpp/rnskia/dom/props/PathProp.h +0 -59
  160. package/cpp/rnskia/dom/props/PictureProp.h +0 -40
  161. package/cpp/rnskia/dom/props/PointProp.h +0 -65
  162. package/cpp/rnskia/dom/props/PointsProp.h +0 -81
  163. package/cpp/rnskia/dom/props/RRectProp.h +0 -222
  164. package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
  165. package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
  166. package/cpp/rnskia/dom/props/RectProp.h +0 -164
  167. package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
  168. package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
  169. package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
  170. package/cpp/rnskia/dom/props/SvgProp.h +0 -45
  171. package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
  172. package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
  173. package/cpp/rnskia/dom/props/TransformProp.h +0 -147
  174. package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
  175. package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
  176. package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
  177. package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
  178. package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
  179. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
  180. package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
  181. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
  182. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
  183. package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
  184. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
  185. package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
  186. package/lib/commonjs/renderer/CanvasOld.js +0 -96
  187. package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
  188. package/lib/commonjs/renderer/Container.d.ts +0 -10
  189. package/lib/commonjs/renderer/Container.js +0 -26
  190. package/lib/commonjs/renderer/Container.js.map +0 -1
  191. package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
  192. package/lib/commonjs/renderer/HostComponents.js +0 -141
  193. package/lib/commonjs/renderer/HostComponents.js.map +0 -1
  194. package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
  195. package/lib/commonjs/renderer/HostConfig.js +0 -157
  196. package/lib/commonjs/renderer/HostConfig.js.map +0 -1
  197. package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
  198. package/lib/commonjs/renderer/Reconciler.js +0 -44
  199. package/lib/commonjs/renderer/Reconciler.js.map +0 -1
  200. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  201. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
  202. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
  203. package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
  204. package/lib/commonjs/views/SkiaDomView.js +0 -119
  205. package/lib/commonjs/views/SkiaDomView.js.map +0 -1
  206. package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  207. package/lib/commonjs/views/SkiaDomView.web.js +0 -2
  208. package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
  209. package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
  210. package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
  211. package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
  212. package/lib/module/renderer/CanvasOld.d.ts +0 -11
  213. package/lib/module/renderer/CanvasOld.js +0 -87
  214. package/lib/module/renderer/CanvasOld.js.map +0 -1
  215. package/lib/module/renderer/Container.d.ts +0 -10
  216. package/lib/module/renderer/Container.js +0 -19
  217. package/lib/module/renderer/Container.js.map +0 -1
  218. package/lib/module/renderer/HostComponents.d.ts +0 -129
  219. package/lib/module/renderer/HostComponents.js +0 -134
  220. package/lib/module/renderer/HostComponents.js.map +0 -1
  221. package/lib/module/renderer/HostConfig.d.ts +0 -18
  222. package/lib/module/renderer/HostConfig.js +0 -150
  223. package/lib/module/renderer/HostConfig.js.map +0 -1
  224. package/lib/module/renderer/Reconciler.d.ts +0 -9
  225. package/lib/module/renderer/Reconciler.js +0 -36
  226. package/lib/module/renderer/Reconciler.js.map +0 -1
  227. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  228. package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
  229. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
  230. package/lib/module/views/SkiaDomView.d.ts +0 -33
  231. package/lib/module/views/SkiaDomView.js +0 -111
  232. package/lib/module/views/SkiaDomView.js.map +0 -1
  233. package/lib/module/views/SkiaDomView.web.d.ts +0 -0
  234. package/lib/module/views/SkiaDomView.web.js +0 -2
  235. package/lib/module/views/SkiaDomView.web.js.map +0 -1
  236. package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
  237. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
  238. package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
  239. package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
  240. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
  241. package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
  242. package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
  243. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
  244. package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  245. package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
  246. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
  247. package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
  248. package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
  249. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
  250. package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
  251. package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
  252. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
  253. package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
  254. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
  255. package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
  256. package/lib/typescript/src/renderer/Container.d.ts +0 -10
  257. package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
  258. package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
  259. package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
  260. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  261. package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
  262. package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
  263. package/src/dom/nodes/JsiSkDOM.ts +0 -298
  264. package/src/renderer/CanvasOld.tsx +0 -126
  265. package/src/renderer/Container.tsx +0 -19
  266. package/src/renderer/HostComponents.ts +0 -399
  267. package/src/renderer/HostConfig.ts +0 -258
  268. package/src/renderer/Reconciler.tsx +0 -54
  269. package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
  270. package/src/views/SkiaDomView.tsx +0 -124
  271. package/src/views/SkiaDomView.web.tsx +0 -0
  272. /package/cpp/api/recorder/{Image.h → ImageFit.h} +0 -0
@@ -1,399 +0,0 @@
1
- import { NodeType } from "../dom/types";
2
- import type {
3
- DeclarationNode,
4
- FractalNoiseProps,
5
- RenderNode,
6
- CircleProps,
7
- DrawingNodeProps,
8
- ImageProps,
9
- PaintProps,
10
- PathProps,
11
- LineProps,
12
- OvalProps,
13
- DiffRectProps,
14
- PointsProps,
15
- RectProps,
16
- RoundedRectProps,
17
- TextProps,
18
- VerticesProps,
19
- BlurMaskFilterProps,
20
- BlendImageFilterProps,
21
- BlurImageFilterProps,
22
- DisplacementMapImageFilterProps,
23
- DropShadowImageFilterProps,
24
- OffsetImageFilterProps,
25
- RuntimeShaderImageFilterProps,
26
- MatrixColorFilterProps,
27
- ShaderProps,
28
- ImageShaderProps,
29
- LinearGradientProps,
30
- GroupProps,
31
- PatchProps,
32
- BlendColorFilterProps,
33
- DashPathEffectProps,
34
- DiscretePathEffectProps,
35
- CornerPathEffectProps,
36
- Line2DPathEffectProps,
37
- Path1DPathEffectProps,
38
- Path2DPathEffectProps,
39
- TextPathProps,
40
- TextBlobProps,
41
- GlyphsProps,
42
- TwoPointConicalGradientProps,
43
- TurbulenceProps,
44
- SweepGradientProps,
45
- RadialGradientProps,
46
- ColorProps,
47
- PictureProps,
48
- ImageSVGProps,
49
- LerpColorFilterProps,
50
- BoxProps,
51
- BoxShadowProps,
52
- ParagraphProps,
53
- AtlasProps,
54
- } from "../dom/types";
55
- import type { ChildrenProps } from "../dom/types/Common";
56
- import type {
57
- BlendProps,
58
- MorphologyImageFilterProps,
59
- } from "../dom/types/ImageFilters";
60
-
61
- import type { Container } from "./Container";
62
- import { exhaustiveCheck } from "./typeddash";
63
- import type { SkiaProps } from "./processors";
64
-
65
- declare global {
66
- var SkiaDomApi: {
67
- RectNode: (props: RectProps) => RenderNode<RectProps>;
68
- RRectNode: (props: RoundedRectProps) => RenderNode<RoundedRectProps>;
69
- GroupNode: (props: GroupProps) => RenderNode<GroupProps>;
70
- PaintNode: (props: PaintProps) => DeclarationNode<PaintProps>;
71
- FillNode: (props: PaintProps) => RenderNode<PaintProps>;
72
- CircleNode: (props: CircleProps) => RenderNode<CircleProps>;
73
- PathNode: (props: PathProps) => RenderNode<PathProps>;
74
- LineNode: (props: LineProps) => RenderNode<LineProps>;
75
- ImageNode: (props: ImageProps) => RenderNode<ImageProps>;
76
- OvalNode: (props: OvalProps) => RenderNode<OvalProps>;
77
- PatchNode: (props: PatchProps) => RenderNode<PatchProps>;
78
- PointsNode: (props: PointsProps) => RenderNode<PointsProps>;
79
- DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;
80
- AtlasNode: (props: AtlasProps) => RenderNode<AtlasProps>;
81
-
82
- // Mask filters
83
- BlurMaskFilterNode: (
84
- props: BlurMaskFilterProps
85
- ) => DeclarationNode<BlurMaskFilterProps>;
86
-
87
- // Path effects
88
- DashPathEffectNode: (
89
- props: DashPathEffectProps
90
- ) => DeclarationNode<DashPathEffectProps>;
91
- DiscretePathEffectNode: (
92
- props: DiscretePathEffectProps
93
- ) => DeclarationNode<DiscretePathEffectProps>;
94
- CornerPathEffectNode: (
95
- props: CornerPathEffectProps
96
- ) => DeclarationNode<CornerPathEffectProps>;
97
- Path1DPathEffectNode: (
98
- props: Path1DPathEffectProps
99
- ) => DeclarationNode<Path1DPathEffectProps>;
100
- Path2DPathEffectNode: (
101
- props: Path2DPathEffectProps
102
- ) => DeclarationNode<Path2DPathEffectProps>;
103
- Line2DPathEffectNode: (
104
- props: Line2DPathEffectProps
105
- ) => DeclarationNode<Line2DPathEffectProps>;
106
- SumPathEffectNode: () => DeclarationNode<null>;
107
-
108
- // Image filters
109
- BlendImageFilterNode: (
110
- props: BlendImageFilterProps
111
- ) => DeclarationNode<BlendImageFilterProps>;
112
- DropShadowImageFilterNode: (
113
- props: DropShadowImageFilterProps
114
- ) => DeclarationNode<DropShadowImageFilterProps>;
115
- DisplacementMapImageFilterNode: (
116
- props: DisplacementMapImageFilterProps
117
- ) => DeclarationNode<DisplacementMapImageFilterProps>;
118
- BlurImageFilterNode: (
119
- props: BlurImageFilterProps
120
- ) => DeclarationNode<BlurImageFilterProps>;
121
- OffsetImageFilterNode: (
122
- props: OffsetImageFilterProps
123
- ) => DeclarationNode<OffsetImageFilterProps>;
124
- MorphologyImageFilterNode: (
125
- props: MorphologyImageFilterProps
126
- ) => DeclarationNode<MorphologyImageFilterProps>;
127
- RuntimeShaderImageFilterNode: (
128
- props: RuntimeShaderImageFilterProps
129
- ) => DeclarationNode<RuntimeShaderImageFilterProps>;
130
-
131
- // Color filters
132
- MatrixColorFilterNode: (
133
- props: MatrixColorFilterProps
134
- ) => DeclarationNode<MatrixColorFilterProps>;
135
- BlendColorFilterNode: (
136
- props: BlendColorFilterProps
137
- ) => DeclarationNode<BlendColorFilterProps>;
138
- LinearToSRGBGammaColorFilterNode: () => DeclarationNode<null>;
139
- SRGBToLinearGammaColorFilterNode: () => DeclarationNode<null>;
140
- LumaColorFilterNode: () => DeclarationNode<null>;
141
- LerpColorFilterNode: (
142
- props: LerpColorFilterProps
143
- ) => DeclarationNode<LerpColorFilterProps>;
144
-
145
- // Shaders
146
- ShaderNode: (props: ShaderProps) => DeclarationNode<ShaderProps>;
147
- ImageShaderNode: (
148
- props: ImageShaderProps
149
- ) => DeclarationNode<ImageShaderProps>;
150
- ColorShaderNode: (props: ColorProps) => DeclarationNode<ColorProps>;
151
- TurbulenceNode: (
152
- props: TurbulenceProps
153
- ) => DeclarationNode<TurbulenceProps>;
154
- FractalNoiseNode: (
155
- props: FractalNoiseProps
156
- ) => DeclarationNode<FractalNoiseProps>;
157
- LinearGradientNode: (
158
- props: LinearGradientProps
159
- ) => DeclarationNode<LinearGradientProps>;
160
- RadialGradientNode: (
161
- props: RadialGradientProps
162
- ) => DeclarationNode<RadialGradientProps>;
163
- SweepGradientNode: (
164
- props: SweepGradientProps
165
- ) => DeclarationNode<SweepGradientProps>;
166
- TwoPointConicalGradientNode: (
167
- props: TwoPointConicalGradientProps
168
- ) => DeclarationNode<TwoPointConicalGradientProps>;
169
- PictureNode: (props: PictureProps) => RenderNode<PictureProps>;
170
- ImageSVGNode: (props: ImageSVGProps) => RenderNode<ImageSVGProps>;
171
- VerticesNode: (props: VerticesProps) => RenderNode<VerticesProps>;
172
- TextNode: (prop: TextProps) => RenderNode<TextProps>;
173
- TextPathNode: (prop: TextPathProps) => RenderNode<TextPathProps>;
174
- TextBlobNode: (prop: TextBlobProps) => RenderNode<TextBlobProps>;
175
- GlyphsNode: (prop: GlyphsProps) => RenderNode<GlyphsProps>;
176
- BlendNode: (prop: BlendProps) => DeclarationNode<BlendProps>;
177
- BackdropFilterNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;
178
- BoxNode: (prop: BoxProps) => RenderNode<BoxProps>;
179
- BoxShadowNode: (prop: BoxShadowProps) => DeclarationNode<BoxShadowProps>;
180
- LayerNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;
181
-
182
- // Paragraph
183
- ParagraphNode: (props: ParagraphProps) => RenderNode<ParagraphProps>;
184
- };
185
-
186
- // eslint-disable-next-line @typescript-eslint/no-namespace
187
- namespace JSX {
188
- interface IntrinsicElements {
189
- skGroup: SkiaProps<GroupProps>;
190
- skLayer: SkiaProps<ChildrenProps>;
191
- skPaint: SkiaProps<PaintProps>;
192
-
193
- // Drawings
194
- skFill: SkiaProps<DrawingNodeProps>;
195
- skImage: SkiaProps<ImageProps>;
196
- skCircle: SkiaProps<CircleProps>;
197
- skPath: SkiaProps<PathProps>;
198
- skLine: SkiaProps<LineProps>;
199
- skOval: SkiaProps<OvalProps>;
200
- skPatch: SkiaProps<PatchProps>;
201
- skPoints: SkiaProps<PointsProps>;
202
- skRect: SkiaProps<RectProps>;
203
- skRRect: SkiaProps<RoundedRectProps>;
204
- skAtlas: SkiaProps<AtlasProps>;
205
- skVertices: SkiaProps<VerticesProps>;
206
- skText: SkiaProps<TextProps>;
207
- skTextPath: SkiaProps<TextPathProps>;
208
- skTextBlob: SkiaProps<TextBlobProps>;
209
- skGlyphs: SkiaProps<GlyphsProps>;
210
- skDiffRect: SkiaProps<DiffRectProps>;
211
- skPicture: SkiaProps<PictureProps>;
212
- skImageSVG: SkiaProps<ImageSVGProps>;
213
-
214
- // BlurMaskFilters
215
- skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;
216
-
217
- // ImageFilters
218
- skBlendImageFilter: SkiaProps<BlendImageFilterProps>;
219
- skBlurImageFilter: SkiaProps<BlurImageFilterProps>;
220
- skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;
221
- skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;
222
- skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;
223
- skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;
224
- skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;
225
-
226
- // ColorFilters
227
- skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;
228
- skBlendColorFilter: SkiaProps<BlendColorFilterProps>;
229
- skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;
230
- skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;
231
- skLumaColorFilter: SkiaProps<ChildrenProps>;
232
- skLerpColorFilter: SkiaProps<LerpColorFilterProps>;
233
-
234
- // Shaders
235
- skShader: SkiaProps<ShaderProps>;
236
- skImageShader: SkiaProps<ImageShaderProps>;
237
- skColorShader: SkiaProps<ColorProps>;
238
- skTurbulence: SkiaProps<TurbulenceProps>;
239
- skFractalNoise: SkiaProps<FractalNoiseProps>;
240
- skLinearGradient: SkiaProps<LinearGradientProps>;
241
- skRadialGradient: SkiaProps<RadialGradientProps>;
242
- skSweepGradient: SkiaProps<SweepGradientProps>;
243
- skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;
244
-
245
- // Path Effects
246
- skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;
247
- skDashPathEffect: SkiaProps<DashPathEffectProps>;
248
- skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;
249
- skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;
250
- skCornerPathEffect: SkiaProps<CornerPathEffectProps>;
251
- skSumPathEffect: ChildrenProps;
252
- skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;
253
-
254
- // Mixed declarations/drawings
255
- skBlend: SkiaProps<BlendProps>;
256
- skBackdropFilter: SkiaProps<ChildrenProps>;
257
- skBox: SkiaProps<BoxProps>;
258
- skBoxShadow: SkiaProps<BoxShadowProps>;
259
-
260
- // Paragraph
261
- skParagraph: SkiaProps<ParagraphProps>;
262
- }
263
- }
264
- }
265
-
266
- export const createNode = (
267
- container: Container,
268
- type: NodeType,
269
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
270
- props: any
271
- ) => {
272
- const { Sk } = container;
273
- switch (type) {
274
- case NodeType.Layer:
275
- return Sk.Layer(props);
276
- case NodeType.Group:
277
- return Sk.Group(props);
278
- case NodeType.Paint:
279
- return Sk.Paint(props);
280
- // Drawings
281
- case NodeType.Fill:
282
- return Sk.Fill(props);
283
- case NodeType.Image:
284
- return Sk.Image(props);
285
- case NodeType.Circle:
286
- return Sk.Circle(props);
287
- case NodeType.Path:
288
- return Sk.Path(props);
289
- case NodeType.Line:
290
- return Sk.Line(props);
291
- case NodeType.Oval:
292
- return Sk.Oval(props);
293
- case NodeType.Patch:
294
- return Sk.Patch(props);
295
- case NodeType.Points:
296
- return Sk.Points(props);
297
- case NodeType.Rect:
298
- return Sk.Rect(props);
299
- case NodeType.RRect:
300
- return Sk.RRect(props);
301
- case NodeType.Vertices:
302
- return Sk.Vertices(props);
303
- case NodeType.Text:
304
- return Sk.Text(props);
305
- case NodeType.TextPath:
306
- return Sk.TextPath(props);
307
- case NodeType.TextBlob:
308
- return Sk.TextBlob(props);
309
- case NodeType.Glyphs:
310
- return Sk.Glyphs(props);
311
- case NodeType.Atlas:
312
- return Sk.Atlas(props);
313
- case NodeType.DiffRect:
314
- return Sk.DiffRect(props);
315
- case NodeType.Picture:
316
- return Sk.Picture(props);
317
- case NodeType.ImageSVG:
318
- return Sk.ImageSVG(props);
319
- // Mask Filter
320
- case NodeType.BlurMaskFilter:
321
- return Sk.BlurMaskFilter(props);
322
- // Image Filter
323
- case NodeType.BlendImageFilter:
324
- return Sk.BlendImageFilter(props);
325
- case NodeType.BlurImageFilter:
326
- return Sk.BlurImageFilter(props);
327
- case NodeType.OffsetImageFilter:
328
- return Sk.OffsetImageFilter(props);
329
- case NodeType.DropShadowImageFilter:
330
- return Sk.DropShadowImageFilter(props);
331
- case NodeType.DisplacementMapImageFilter:
332
- return Sk.DisplacementMapImageFilter(props);
333
- case NodeType.MorphologyImageFilter:
334
- return Sk.MorphologyImageFilter(props);
335
- case NodeType.RuntimeShaderImageFilter:
336
- return Sk.RuntimeShaderImageFilter(props);
337
- // Color Filter
338
- case NodeType.MatrixColorFilter:
339
- return Sk.MatrixColorFilter(props);
340
- case NodeType.BlendColorFilter:
341
- return Sk.BlendColorFilter(props);
342
- case NodeType.LerpColorFilter:
343
- return Sk.LerpColorFilter(props);
344
- case NodeType.LumaColorFilter:
345
- return Sk.LumaColorFilter();
346
- case NodeType.LinearToSRGBGammaColorFilter:
347
- return Sk.LinearToSRGBGammaColorFilter();
348
- case NodeType.SRGBToLinearGammaColorFilter:
349
- return Sk.SRGBToLinearGammaColorFilter();
350
- // Shader
351
- case NodeType.Shader:
352
- return Sk.Shader(props);
353
- case NodeType.ImageShader:
354
- return Sk.ImageShader(props);
355
- case NodeType.ColorShader:
356
- return Sk.ColorShader(props);
357
- case NodeType.Turbulence:
358
- return Sk.Turbulence(props);
359
- case NodeType.FractalNoise:
360
- return Sk.FractalNoise(props);
361
- case NodeType.LinearGradient:
362
- return Sk.LinearGradient(props);
363
- case NodeType.RadialGradient:
364
- return Sk.RadialGradient(props);
365
- case NodeType.SweepGradient:
366
- return Sk.SweepGradient(props);
367
- case NodeType.TwoPointConicalGradient:
368
- return Sk.TwoPointConicalGradient(props);
369
- // Path Effect
370
- case NodeType.CornerPathEffect:
371
- return Sk.CornerPathEffect(props);
372
- case NodeType.DiscretePathEffect:
373
- return Sk.DiscretePathEffect(props);
374
- case NodeType.DashPathEffect:
375
- return Sk.DashPathEffect(props);
376
- case NodeType.Path1DPathEffect:
377
- return Sk.Path1DPathEffect(props);
378
- case NodeType.Path2DPathEffect:
379
- return Sk.Path2DPathEffect(props);
380
- case NodeType.SumPathEffect:
381
- return Sk.SumPathEffect();
382
- case NodeType.Line2DPathEffect:
383
- return Sk.Line2DPathEffect(props);
384
- // Mixed
385
- case NodeType.Blend:
386
- return Sk.Blend(props);
387
- case NodeType.BackdropFilter:
388
- return Sk.BackdropFilter(props);
389
- case NodeType.Box:
390
- return Sk.Box(props);
391
- case NodeType.BoxShadow:
392
- return Sk.BoxShadow(props);
393
- // Paragraph
394
- case NodeType.Paragraph:
395
- return Sk.Paragraph(props);
396
- default:
397
- return exhaustiveCheck(type);
398
- }
399
- };
@@ -1,258 +0,0 @@
1
- /*global NodeJS*/
2
- import type { Fiber, HostConfig } from "react-reconciler";
3
- import { DefaultEventPriority } from "react-reconciler/constants";
4
-
5
- import type { NodeType, Node } from "../dom/types";
6
- import {
7
- bindReanimatedProps,
8
- extractReanimatedProps,
9
- unbindReanimatedNode,
10
- } from "../external/reanimated/renderHelpers";
11
-
12
- import type { Container } from "./Container";
13
- import { createNode } from "./HostComponents";
14
- import { shallowEq } from "./typeddash";
15
-
16
- const DEBUG = false;
17
- export const debug = (...args: Parameters<typeof console.log>) => {
18
- if (DEBUG) {
19
- console.log(...args);
20
- }
21
- };
22
-
23
- type Instance = Node<unknown>;
24
-
25
- type Props = object;
26
- type TextInstance = Node<unknown>;
27
- type SuspenseInstance = Instance;
28
- type HydratableInstance = Instance;
29
- type PublicInstance = Instance;
30
- type HostContext = null;
31
- type UpdatePayload = Container;
32
- type ChildSet = unknown;
33
- type TimeoutHandle = NodeJS.Timeout;
34
- type NoTimeout = -1;
35
-
36
- type SkiaHostConfig = HostConfig<
37
- NodeType,
38
- Props,
39
- Container,
40
- Instance,
41
- TextInstance,
42
- SuspenseInstance,
43
- HydratableInstance,
44
- PublicInstance,
45
- HostContext,
46
- UpdatePayload,
47
- ChildSet,
48
- TimeoutHandle,
49
- NoTimeout
50
- >;
51
-
52
- const appendNode = (parent: Node<unknown>, child: Node<unknown>) => {
53
- parent.addChild(child);
54
- };
55
-
56
- const removeNode = (
57
- parent: Node<unknown>,
58
- child: Node<unknown>,
59
- unmounted = false
60
- ) => {
61
- // If the drawing is unmounted we don't want to update it.
62
- // We can just stop the reanimated mappers
63
- unbindReanimatedNode(child);
64
- if (!unmounted) {
65
- parent.removeChild(child);
66
- }
67
- };
68
-
69
- const insertBefore = (
70
- parent: Node<unknown>,
71
- child: Node<unknown>,
72
- before: Node<unknown>
73
- ) => {
74
- parent.insertChildBefore(child, before);
75
- };
76
-
77
- export const skHostConfig: SkiaHostConfig = {
78
- /**
79
- * This function is used by the reconciler in order to calculate current time for prioritising work.
80
- */
81
- supportsMutation: true,
82
- isPrimaryRenderer: false,
83
- supportsPersistence: false,
84
- supportsHydration: false,
85
- //supportsMicrotask: true,
86
-
87
- scheduleTimeout: setTimeout,
88
- cancelTimeout: clearTimeout,
89
- noTimeout: -1,
90
-
91
- appendChildToContainer(container, child) {
92
- debug("appendChildToContainer");
93
- appendNode(container.root, child);
94
- },
95
-
96
- appendChild(parent, child) {
97
- debug("appendChild", parent, child);
98
- appendNode(parent, child);
99
- },
100
-
101
- getRootHostContext: (_rootContainerInstance: Container) => {
102
- debug("getRootHostContext");
103
- return null;
104
- },
105
-
106
- getChildHostContext(_parentHostContext, _type, _rootContainerInstance) {
107
- debug("getChildHostContext");
108
- return null;
109
- },
110
-
111
- shouldSetTextContent(_type, _props) {
112
- return false;
113
- },
114
-
115
- createTextInstance(
116
- _text,
117
- _rootContainerInstance,
118
- _hostContext,
119
- _internalInstanceHandle
120
- ) {
121
- debug("createTextInstance");
122
- // return SpanNode({}, text) as SkNode;
123
- throw new Error("Text nodes are not supported yet");
124
- },
125
-
126
- createInstance(
127
- type,
128
- pristineProps,
129
- container,
130
- _hostContext,
131
- _internalInstanceHandle
132
- ) {
133
- debug("createInstance", type);
134
- const [props, reanimatedProps] = extractReanimatedProps(pristineProps);
135
- const node = createNode(container, type, props);
136
- bindReanimatedProps(container, node, reanimatedProps);
137
- return node;
138
- },
139
-
140
- appendInitialChild(parentInstance, child) {
141
- debug("appendInitialChild");
142
- appendNode(parentInstance, child);
143
- },
144
-
145
- finalizeInitialChildren(
146
- parentInstance,
147
- _type,
148
- _props,
149
- _rootContainerInstance,
150
- _hostContext
151
- ) {
152
- debug("finalizeInitialChildren", parentInstance);
153
- return false;
154
- },
155
-
156
- commitMount() {
157
- // if finalizeInitialChildren = true
158
- debug("commitMount");
159
- },
160
-
161
- prepareForCommit(_containerInfo) {
162
- debug("prepareForCommit");
163
- return null;
164
- },
165
-
166
- resetAfterCommit(container) {
167
- debug("resetAfterCommit");
168
- container.redraw();
169
- },
170
-
171
- getPublicInstance(node: Instance) {
172
- debug("getPublicInstance");
173
- return node;
174
- },
175
-
176
- prepareUpdate: (
177
- _instance,
178
- type,
179
- oldProps,
180
- newProps,
181
- rootContainerInstance,
182
- _hostContext
183
- ) => {
184
- debug("prepareUpdate");
185
- const propsAreEqual = shallowEq(oldProps, newProps);
186
- if (propsAreEqual) {
187
- return null;
188
- }
189
- debug("update ", type);
190
- return rootContainerInstance;
191
- },
192
-
193
- commitUpdate(
194
- instance,
195
- updatePayload,
196
- type,
197
- prevProps,
198
- nextProps,
199
- _internalHandle
200
- ) {
201
- debug("commitUpdate: ", type);
202
- if (shallowEq(prevProps, nextProps)) {
203
- return;
204
- }
205
- const [props, reanimatedProps] = extractReanimatedProps(nextProps);
206
- instance.setProps(props);
207
- bindReanimatedProps(updatePayload, instance, reanimatedProps);
208
- },
209
-
210
- commitTextUpdate: (
211
- _textInstance: TextInstance,
212
- _oldText: string,
213
- _newText: string
214
- ) => {
215
- // textInstance.instance = newText;
216
- },
217
-
218
- clearContainer: (container) => {
219
- debug("clearContainer");
220
- container.root.children().forEach((child) => {
221
- container.root.removeChild(child);
222
- });
223
- },
224
-
225
- preparePortalMount: () => {
226
- debug("preparePortalMount");
227
- },
228
-
229
- removeChild: (parent, child) => {
230
- removeNode(parent, child);
231
- },
232
-
233
- removeChildFromContainer: (container, child) => {
234
- removeNode(container.root, child, container.unmounted);
235
- },
236
-
237
- insertInContainerBefore: (container, child, before) => {
238
- insertBefore(container.root, child, before);
239
- },
240
-
241
- insertBefore: (parent, child, before) => {
242
- insertBefore(parent, child, before);
243
- },
244
-
245
- // see https://github.com/pmndrs/react-three-fiber/pull/2360#discussion_r916356874
246
- getCurrentEventPriority: () => DefaultEventPriority,
247
- beforeActiveInstanceBlur: () => {},
248
- afterActiveInstanceBlur: () => {},
249
- detachDeletedInstance: () => {},
250
-
251
- getInstanceFromNode: function (_node): Fiber | null | undefined {
252
- return null;
253
- },
254
- prepareScopeUpdate: function (_scopeInstance, _instance): void {},
255
- getInstanceFromScope: function (_scopeInstance): Instance | null {
256
- return null;
257
- },
258
- };
@@ -1,54 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import type { OpaqueRoot } from "react-reconciler";
3
- import ReactReconciler from "react-reconciler";
4
-
5
- import { skHostConfig, debug as hostDebug } from "./HostConfig";
6
- import { Container } from "./Container";
7
-
8
- const skiaReconciler = ReactReconciler(skHostConfig);
9
-
10
- skiaReconciler.injectIntoDevTools({
11
- bundleType: 1,
12
- version: "0.0.1",
13
- rendererPackageName: "react-native-skia",
14
- });
15
-
16
- export class SkiaRoot {
17
- private root: OpaqueRoot;
18
- private container: Container;
19
-
20
- constructor(
21
- redraw: () => void = () => {},
22
- getNativeId: () => number = () => 0
23
- ) {
24
- this.container = new Container(redraw, getNativeId);
25
- this.root = skiaReconciler.createContainer(
26
- this.container,
27
- 0,
28
- null,
29
- true,
30
- null,
31
- "",
32
- console.error,
33
- null
34
- );
35
- }
36
-
37
- render(element: ReactNode) {
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- skiaReconciler.updateContainer(element as any, this.root, null, () => {
40
- hostDebug("updateContainer");
41
- });
42
- }
43
-
44
- unmount() {
45
- this.container.unmounted = true;
46
- skiaReconciler.updateContainer(null, this.root, null, () => {
47
- hostDebug("unmountContainer");
48
- });
49
- }
50
-
51
- get dom() {
52
- return this.container.root;
53
- }
54
- }