@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,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
- }