@shopify/react-native-skia 1.11.0 → 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 (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,66 +0,0 @@
1
- #pragma once
2
-
3
- #include "MatrixProp.h"
4
- #include "NodeProp.h"
5
- #include "PointProp.h"
6
- #include "TransformProp.h"
7
-
8
- #include <memory>
9
- #include <utility>
10
-
11
- namespace RNSkia {
12
-
13
- class TransformsProps : public DerivedProp<SkMatrix> {
14
- public:
15
- explicit TransformsProps(const std::function<void(BaseNodeProp *)> &onChange)
16
- : DerivedProp<SkMatrix>(onChange) {
17
- _transformProp = defineProperty<TransformProp>("transform");
18
- _originProp = defineProperty<PointProp>("origin");
19
- _matrixProp = defineProperty<MatrixProp>("matrix");
20
- }
21
-
22
- void updateDerivedValue() override {
23
- if (_transformProp->isSet() || _originProp->isSet() ||
24
- _matrixProp->isSet()) {
25
-
26
- auto matrix =
27
- _matrixProp->isSet() ? _matrixProp->getDerivedValue() : nullptr;
28
- auto origin =
29
- _originProp->isSet() ? _originProp->getDerivedValue() : nullptr;
30
- auto transform =
31
- _transformProp->isSet() ? _transformProp->getDerivedValue() : nullptr;
32
-
33
- auto lm = SkMatrix();
34
- if (matrix) {
35
- if (origin) {
36
- lm.preTranslate(origin->x(), origin->y());
37
- lm.preConcat(*matrix);
38
- lm.preTranslate(-origin->x(), -origin->y());
39
- } else {
40
- lm.setIdentity();
41
- lm.preConcat(*matrix);
42
- }
43
- } else if (transform) {
44
- lm.setIdentity();
45
- if (origin) {
46
- lm.preTranslate(origin->x(), origin->y());
47
- }
48
- lm.preConcat(*transform);
49
- if (origin) {
50
- lm.preTranslate(-origin->x(), -origin->y());
51
- }
52
- }
53
- setDerivedValue(std::move(lm));
54
-
55
- } else {
56
- setDerivedValue(nullptr);
57
- }
58
- }
59
-
60
- private:
61
- TransformProp *_transformProp;
62
- PointProp *_originProp;
63
- MatrixProp *_matrixProp;
64
- };
65
-
66
- } // namespace RNSkia
@@ -1,159 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
- #include "JsiSkRuntimeEffect.h"
5
-
6
- #include <memory>
7
- #include <string>
8
- #include <vector>
9
-
10
- #pragma clang diagnostic push
11
- #pragma clang diagnostic ignored "-Wdocumentation"
12
-
13
- #include "include/effects/SkRuntimeEffect.h"
14
-
15
- #pragma clang diagnostic pop
16
-
17
- namespace RNSkia {
18
-
19
- bool isJSPoint(const JsiValue &value) {
20
- return value.getType() == PropType::Object && value.hasValue(PropNameX) &&
21
- value.hasValue(PropNameY);
22
- }
23
-
24
- bool isSkPoint(const JsiValue &value) {
25
- return value.getType() == PropType::HostObject &&
26
- std::dynamic_pointer_cast<JsiSkPoint>(value.getAsHostObject()) !=
27
- nullptr;
28
- }
29
-
30
- bool isIndexable(const JsiValue &value) {
31
- return value.getType() == PropType::Object && value.hasValue(PropName0);
32
- }
33
-
34
- void processValue(std::vector<SkScalar> &values, const JsiValue &value) {
35
- if (value.getType() == PropType::Number) {
36
- auto n = value.getAsNumber();
37
- values.push_back(n);
38
- } else if (value.getType() == PropType::Array) {
39
- auto arrayValue = value.getAsArray();
40
- for (size_t i = 0; i < arrayValue.size(); ++i) {
41
- auto a = arrayValue[i];
42
- processValue(values, a);
43
- }
44
- } else if (isJSPoint(value) || isSkPoint(value)) {
45
- auto pointValue = PointProp::processValue(value);
46
- values.push_back(pointValue.x());
47
- values.push_back(pointValue.y());
48
- } else if (isIndexable(value)) {
49
- auto length = value.getKeys().size();
50
- for (size_t i = 0; i < length; ++i) {
51
- values.push_back(
52
- value.getValue(JsiPropId::get(std::to_string(i))).getAsNumber());
53
- }
54
- }
55
- }
56
-
57
- void processUniform(std::vector<SkScalar> &values, SkRuntimeEffect *source,
58
- const JsiValue &uniforms, SkRuntimeShaderBuilder *rtb) {
59
- auto uniformsCount = source->uniforms().size();
60
- for (size_t i = 0; i < uniformsCount; ++i) {
61
- auto it = source->uniforms().begin() + i;
62
- auto name = JsiPropId::get(std::string(it->name));
63
- if (!uniforms.hasValue(name)) {
64
- throw std::runtime_error("The runtime effect has the uniform value \"" +
65
- std::string(name) +
66
- "\" declared, but it is missing from the "
67
- "uniforms property of the Runtime effect.");
68
- }
69
- auto value = uniforms.getValue(name);
70
- if (rtb == nullptr) {
71
- processValue(values, value);
72
- } else {
73
- std::vector<SkScalar> uniformValue;
74
- processValue(uniformValue, value);
75
- rtb->uniform(name).set(uniformValue.data(),
76
- static_cast<int>(uniformValue.size()));
77
- }
78
- }
79
- }
80
-
81
- class UniformsProp : public DerivedSkProp<SkData> {
82
- public:
83
- UniformsProp(PropId name, NodeProp *sourceProp,
84
- const std::function<void(BaseNodeProp *)> &onChange)
85
- : DerivedSkProp<SkData>(onChange) {
86
- _uniformsProp = defineProperty<NodeProp>(name);
87
- _sourceProp = sourceProp;
88
- }
89
-
90
- void updateDerivedValue() override {
91
- if (!_uniformsProp->isSet()) {
92
- return;
93
- }
94
-
95
- // Get the effect
96
- auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>()->getObject();
97
-
98
- // Flatten uniforms from property
99
- std::vector<SkScalar> uniformValues;
100
- processUniform(uniformValues, source.get(), _uniformsProp->value(),
101
- nullptr);
102
-
103
- // Cast uniforms according to the declaration in the shader
104
- auto uniformsData = castUniforms(source.get(), uniformValues);
105
-
106
- // Save derived value
107
- setDerivedValue(uniformsData);
108
- }
109
-
110
- void processUniforms(SkRuntimeShaderBuilder &rtb) {
111
- if (!_uniformsProp->isSet()) {
112
- return;
113
- }
114
-
115
- // Get the effect
116
- auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>()->getObject();
117
- // Flatten uniforms from property
118
- std::vector<SkScalar> uniformValues;
119
- processUniform(uniformValues, source.get(), _uniformsProp->value(), &rtb);
120
- }
121
-
122
- private:
123
- sk_sp<SkData> castUniforms(SkRuntimeEffect *source,
124
- const std::vector<SkScalar> &values) {
125
- // Create memory for uniforms
126
- auto uniformSize = source->uniformSize();
127
- if (values.size() * sizeof(float) != uniformSize) {
128
- throw std::runtime_error(
129
- "Uniforms size differs from effect's uniform size. Received " +
130
- std::to_string(values.size()) + " expected " +
131
- std::to_string(uniformSize / sizeof(float)));
132
- }
133
- auto uniformsData = SkData::MakeUninitialized(uniformSize);
134
-
135
- // Loop through all uniforms in the effect and load data from the flattened
136
- // array of values
137
- const auto &u = source->uniforms();
138
- for (std::size_t i = 0; i < u.size(); i++) {
139
- auto it = source->uniforms().begin() + i;
140
- RuntimeEffectUniform reu = JsiSkRuntimeEffect::fromUniform(*it);
141
- for (std::size_t j = 0; j < reu.columns * reu.rows; ++j) {
142
- const std::size_t offset = reu.slot + j;
143
- float fValue = values.at(offset);
144
- int iValue = static_cast<int>(fValue);
145
- auto value = reu.isInteger ? SkBits2Float(iValue) : fValue;
146
- memcpy(SkTAddOffset<void>(uniformsData->writable_data(),
147
- offset * sizeof(value)),
148
- &value, sizeof(value));
149
- }
150
- }
151
-
152
- return uniformsData;
153
- }
154
-
155
- NodeProp *_uniformsProp;
156
- NodeProp *_sourceProp;
157
- };
158
-
159
- } // namespace RNSkia
@@ -1,49 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include <memory>
6
- #include <string>
7
-
8
- #pragma clang diagnostic push
9
- #pragma clang diagnostic ignored "-Wdocumentation"
10
-
11
- #include "include/core/SkVertices.h"
12
-
13
- #pragma clang diagnostic pop
14
-
15
- namespace RNSkia {
16
-
17
- class VertexModeProp : public DerivedProp<SkVertices::VertexMode> {
18
- public:
19
- explicit VertexModeProp(PropId name,
20
- const std::function<void(BaseNodeProp *)> &onChange)
21
- : DerivedProp<SkVertices::VertexMode>(onChange) {
22
- _vertexModeProp = defineProperty<NodeProp>(name);
23
- }
24
-
25
- void updateDerivedValue() override {
26
- if (_vertexModeProp->isSet() && (_vertexModeProp->isChanged())) {
27
- auto vertexModeValue = _vertexModeProp->value().getAsString();
28
- setDerivedValue(getVertexModeFromStringValue(vertexModeValue));
29
- }
30
- }
31
-
32
- private:
33
- SkVertices::VertexMode
34
- getVertexModeFromStringValue(const std::string &value) {
35
- if (value == "triangles") {
36
- return SkVertices::VertexMode::kTriangles_VertexMode;
37
- } else if (value == "triangleStrip") {
38
- return SkVertices::VertexMode::kTriangleStrip_VertexMode;
39
- } else if (value == "triangleFan") {
40
- return SkVertices::VertexMode::kTriangleFan_VertexMode;
41
- }
42
- throw std::runtime_error("Property value \"" + value +
43
- "\" is not a legal blend mode.");
44
- }
45
-
46
- NodeProp *_vertexModeProp;
47
- };
48
-
49
- } // namespace RNSkia
@@ -1,63 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include "ColorProp.h"
6
- #include "NumbersProp.h"
7
- #include "PointsProp.h"
8
- #include "VertexModeProp.h"
9
-
10
- #include <memory>
11
- #include <vector>
12
-
13
- #pragma clang diagnostic push
14
- #pragma clang diagnostic ignored "-Wdocumentation"
15
-
16
- #include "include/core/SkVertices.h"
17
-
18
- #pragma clang diagnostic pop
19
-
20
- namespace RNSkia {
21
-
22
- class VerticesProps : public DerivedSkProp<SkVertices> {
23
- public:
24
- explicit VerticesProps(const std::function<void(BaseNodeProp *)> &onChange)
25
- : DerivedSkProp<SkVertices>(onChange) {
26
- _vertexModeProp = defineProperty<VertexModeProp>("mode");
27
- _colorsProp = defineProperty<ColorsProp>("colors");
28
- _verticesProp = defineProperty<PointsProp>("vertices");
29
- _texturesProp = defineProperty<PointsProp>("textures");
30
- _indicesProp = defineProperty<Numbers16Prop>("indices");
31
-
32
- _vertexModeProp->require();
33
- _verticesProp->require();
34
- }
35
-
36
- bool hasColors() { return _colorsProp->isSet(); }
37
-
38
- void updateDerivedValue() override {
39
- const SkVertices::VertexMode *vertextMode =
40
- _vertexModeProp->getDerivedValue().get();
41
- const std::vector<SkColor> *colors = _colorsProp->getDerivedValue().get();
42
- auto vertices = _verticesProp->getDerivedValue();
43
- auto textures = _texturesProp->getDerivedValue();
44
- auto indices = _indicesProp->getDerivedValue();
45
-
46
- setDerivedValue(SkVertices::MakeCopy(
47
- *vertextMode, static_cast<int>(vertices->size()),
48
- _verticesProp->isSet() ? vertices->data() : nullptr,
49
- _texturesProp->isSet() ? textures->data() : nullptr,
50
- _colorsProp->isSet() ? colors->data() : nullptr,
51
- _indicesProp->isSet() ? static_cast<int>(indices->size()) : 0,
52
- _indicesProp->isSet() ? indices->data() : nullptr));
53
- }
54
-
55
- private:
56
- VertexModeProp *_vertexModeProp;
57
- ColorsProp *_colorsProp;
58
- PointsProp *_verticesProp;
59
- PointsProp *_texturesProp;
60
- Numbers16Prop *_indicesProp;
61
- };
62
-
63
- } // namespace RNSkia
@@ -1,7 +0,0 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
- #import "SkiaUIView.h"
3
-
4
- @interface SkiaDomView : SkiaUIView
5
-
6
- @end
7
- #endif // RCT_NEW_ARCH_ENABLED
@@ -1,63 +0,0 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
- #import "SkiaDomView.h"
3
-
4
- #import "RNSkDomView.h"
5
- #import "RNSkIOSView.h"
6
- #import "RNSkPlatformContext.h"
7
-
8
- #import "RNSkiaModule.h"
9
- #import "SkiaManager.h"
10
- #import "SkiaUIView.h"
11
-
12
- #import <React/RCTBridge+Private.h>
13
- #import <React/RCTConversions.h>
14
- #import <React/RCTFabricComponentsPlugins.h>
15
-
16
- #import <react/renderer/components/rnskia/ComponentDescriptors.h>
17
- #import <react/renderer/components/rnskia/EventEmitters.h>
18
- #import <react/renderer/components/rnskia/Props.h>
19
- #import <react/renderer/components/rnskia/RCTComponentViewHelpers.h>
20
-
21
- using namespace facebook::react;
22
-
23
- @implementation SkiaDomView
24
-
25
- - (instancetype)initWithFrame:(CGRect)frame {
26
- if (self = [super initWithFrame:frame]) {
27
- // Pass SkManager as a raw pointer to avoid circular dependencies
28
- auto skManager = [SkiaManager latestActiveSkManager].get();
29
- [self
30
- initCommon:skManager
31
- factory:[](std::shared_ptr<RNSkia::RNSkPlatformContext> context) {
32
- return std::make_shared<RNSkiOSView<RNSkia::RNSkDomView>>(context);
33
- }];
34
- static const auto defaultProps = std::make_shared<const SkiaDomViewProps>();
35
- _props = defaultProps;
36
- }
37
- return self;
38
- }
39
-
40
- #pragma mark - RCTComponentViewProtocol
41
-
42
- + (ComponentDescriptorProvider)componentDescriptorProvider {
43
- return concreteComponentDescriptorProvider<SkiaDomViewComponentDescriptor>();
44
- }
45
-
46
- - (void)updateProps:(const Props::Shared &)props
47
- oldProps:(const Props::Shared &)oldProps {
48
- const auto &newProps =
49
- *std::static_pointer_cast<const SkiaDomViewProps>(props);
50
- [super updateProps:props oldProps:oldProps];
51
- int nativeId =
52
- [[RCTConvert NSString:RCTNSStringFromString(newProps.nativeId)] intValue];
53
- [self setNativeId:nativeId];
54
- [self setDebugMode:newProps.debug];
55
- }
56
-
57
- @end
58
-
59
- Class<RCTComponentViewProtocol> SkiaDomViewCls(void) {
60
- return SkiaDomView.class;
61
- }
62
-
63
- #endif // RCT_NEW_ARCH_ENABLED
@@ -1,8 +0,0 @@
1
-
2
- #pragma once
3
-
4
- #import <React/RCTViewManager.h>
5
-
6
- @interface SkiaDomViewManager : RCTViewManager
7
-
8
- @end
@@ -1,51 +0,0 @@
1
-
2
- #include "SkiaDomViewManager.h"
3
- #include <React/RCTBridge+Private.h>
4
-
5
- #include "RNSkDomView.h"
6
- #include "RNSkIOSView.h"
7
- #include "RNSkPlatformContext.h"
8
-
9
- #include "RNSkiaModule.h"
10
- #include "SkiaManager.h"
11
- #include "SkiaUIView.h"
12
-
13
- @implementation SkiaDomViewManager
14
-
15
- RCT_EXPORT_MODULE(SkiaDomView)
16
-
17
- - (SkiaManager *)skiaManager {
18
- auto bridge = self.bridge;
19
- RCTAssert(bridge, @"Bridge must not be nil.");
20
- auto skiaModule = (RNSkiaModule *)[bridge moduleForName:@"RNSkiaModule"];
21
- return [skiaModule manager];
22
- }
23
-
24
- RCT_CUSTOM_VIEW_PROPERTY(nativeID, NSNumber, SkiaUIView) {
25
- // Get parameter
26
- int nativeId = [[RCTConvert NSString:json] intValue];
27
- [(SkiaUIView *)view setNativeId:nativeId];
28
- }
29
-
30
- RCT_CUSTOM_VIEW_PROPERTY(debug, BOOL, SkiaUIView) {
31
- bool debug = json != NULL ? [RCTConvert BOOL:json] : false;
32
- [(SkiaUIView *)view setDebugMode:debug];
33
- }
34
-
35
- RCT_CUSTOM_VIEW_PROPERTY(opaque, BOOL, SkiaUIView) {
36
- bool debug = json != NULL ? [RCTConvert BOOL:json] : false;
37
- [(SkiaUIView *)view setOpaque:debug];
38
- }
39
-
40
- - (UIView *)view {
41
- auto skManager = [[self skiaManager] skManager];
42
- // Pass SkManager as a raw pointer to avoid circular dependenciesr
43
- return [[SkiaUIView alloc]
44
- initWithManager:skManager.get()
45
- factory:[](std::shared_ptr<RNSkia::RNSkPlatformContext> context) {
46
- return std::make_shared<RNSkiOSView<RNSkia::RNSkDomView>>(
47
- context);
48
- }];
49
- }
50
-
51
- @end
@@ -1,64 +0,0 @@
1
- import type { PathProps, SkDOM, GroupProps, ImageProps, BlurImageFilterProps, MatrixColorFilterProps, CircleProps, BlurMaskFilterProps, LinearGradientProps, PaintProps, ShaderProps, ImageShaderProps, LineProps, OvalProps, PatchProps, PointsProps, RectProps, RoundedRectProps, VerticesProps, TextProps, DiffRectProps, OffsetImageFilterProps, BlendColorFilterProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, FractalNoiseProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, DrawingNodeProps, BoxProps, BoxShadowProps, ChildrenProps, AtlasProps } from "../types";
2
- import type { BlendImageFilterProps, BlendProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, MorphologyImageFilterProps, RuntimeShaderImageFilterProps } from "../types/ImageFilters";
3
- import type { CornerPathEffectProps, DashPathEffectProps, DiscretePathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps } from "../types/PathEffects";
4
- import type { ParagraphProps } from "../types/Paragraph";
5
- export declare class JsiSkDOM implements SkDOM {
6
- constructor();
7
- Layer(props?: ChildrenProps): import("../types").RenderNode<ChildrenProps>;
8
- Group(props?: GroupProps): import("../types").RenderNode<GroupProps>;
9
- Paint(props: PaintProps): import("../types").DeclarationNode<PaintProps>;
10
- Fill(props?: DrawingNodeProps): import("../types").RenderNode<PaintProps>;
11
- Image(props: ImageProps): import("../types").RenderNode<ImageProps>;
12
- Circle(props: CircleProps): import("../types").RenderNode<CircleProps>;
13
- Path(props: PathProps): import("../types").RenderNode<PathProps>;
14
- Line(props: LineProps): import("../types").RenderNode<LineProps>;
15
- Oval(props: OvalProps): import("../types").RenderNode<OvalProps>;
16
- Patch(props: PatchProps): import("../types").RenderNode<PatchProps>;
17
- Points(props: PointsProps): import("../types").RenderNode<PointsProps>;
18
- Rect(props: RectProps): import("../types").RenderNode<RectProps>;
19
- RRect(props: RoundedRectProps): import("../types").RenderNode<RoundedRectProps>;
20
- Vertices(props: VerticesProps): import("../types").RenderNode<VerticesProps>;
21
- Text(props: TextProps): import("../types").RenderNode<TextProps>;
22
- TextPath(props: TextPathProps): import("../types").RenderNode<TextPathProps>;
23
- TextBlob(props: TextBlobProps): import("../types").RenderNode<TextBlobProps>;
24
- Glyphs(props: GlyphsProps): import("../types").RenderNode<GlyphsProps>;
25
- DiffRect(props: DiffRectProps): import("../types").RenderNode<DiffRectProps>;
26
- Picture(props: PictureProps): import("../types").RenderNode<PictureProps>;
27
- Atlas(props: AtlasProps): import("../types").RenderNode<AtlasProps>;
28
- ImageSVG(props: ImageSVGProps): import("../types").RenderNode<ImageSVGProps>;
29
- BlurMaskFilter(props: BlurMaskFilterProps): import("../types").DeclarationNode<BlurMaskFilterProps>;
30
- BlendImageFilter(props: BlendImageFilterProps): import("../types").DeclarationNode<BlendImageFilterProps>;
31
- DropShadowImageFilter(props: DropShadowImageFilterProps): import("../types").DeclarationNode<DropShadowImageFilterProps>;
32
- DisplacementMapImageFilter(props: DisplacementMapImageFilterProps): import("../types").DeclarationNode<DisplacementMapImageFilterProps>;
33
- BlurImageFilter(props: BlurImageFilterProps): import("../types").DeclarationNode<BlurImageFilterProps>;
34
- OffsetImageFilter(props: OffsetImageFilterProps): import("../types").DeclarationNode<OffsetImageFilterProps>;
35
- MorphologyImageFilter(props: MorphologyImageFilterProps): import("../types").DeclarationNode<MorphologyImageFilterProps>;
36
- RuntimeShaderImageFilter(props: RuntimeShaderImageFilterProps): import("../types").DeclarationNode<RuntimeShaderImageFilterProps>;
37
- MatrixColorFilter(props: MatrixColorFilterProps): import("../types").DeclarationNode<MatrixColorFilterProps>;
38
- BlendColorFilter(props: BlendColorFilterProps): import("../types").DeclarationNode<BlendColorFilterProps>;
39
- LumaColorFilter(): import("../types").DeclarationNode<null>;
40
- LinearToSRGBGammaColorFilter(): import("../types").DeclarationNode<null>;
41
- SRGBToLinearGammaColorFilter(): import("../types").DeclarationNode<null>;
42
- LerpColorFilter(props: LerpColorFilterProps): import("../types").DeclarationNode<LerpColorFilterProps>;
43
- Shader(props: ShaderProps): import("../types").DeclarationNode<ShaderProps>;
44
- ImageShader(props: ImageShaderProps): import("../types").DeclarationNode<ImageShaderProps>;
45
- ColorShader(props: ColorProps): import("../types").DeclarationNode<ColorProps>;
46
- SweepGradient(props: SweepGradientProps): import("../types").DeclarationNode<SweepGradientProps>;
47
- Turbulence(props: TurbulenceProps): import("../types").DeclarationNode<TurbulenceProps>;
48
- FractalNoise(props: FractalNoiseProps): import("../types").DeclarationNode<FractalNoiseProps>;
49
- LinearGradient(props: LinearGradientProps): import("../types").DeclarationNode<LinearGradientProps>;
50
- RadialGradient(props: RadialGradientProps): import("../types").DeclarationNode<RadialGradientProps>;
51
- TwoPointConicalGradient(props: TwoPointConicalGradientProps): import("../types").DeclarationNode<TwoPointConicalGradientProps>;
52
- CornerPathEffect(props: CornerPathEffectProps): import("../types").DeclarationNode<CornerPathEffectProps>;
53
- DiscretePathEffect(props: DiscretePathEffectProps): import("../types").DeclarationNode<DiscretePathEffectProps>;
54
- DashPathEffect(props: DashPathEffectProps): import("../types").DeclarationNode<DashPathEffectProps>;
55
- Path1DPathEffect(props: Path1DPathEffectProps): import("../types").DeclarationNode<Path1DPathEffectProps>;
56
- Path2DPathEffect(props: Path2DPathEffectProps): import("../types").DeclarationNode<Path2DPathEffectProps>;
57
- SumPathEffect(): import("../types").DeclarationNode<null>;
58
- Line2DPathEffect(props: Line2DPathEffectProps): import("../types").DeclarationNode<Line2DPathEffectProps>;
59
- Blend(props: BlendProps): import("../types").DeclarationNode<BlendProps>;
60
- BackdropFilter(props: ChildrenProps): import("../types").RenderNode<ChildrenProps>;
61
- Box(props: BoxProps): import("../types").RenderNode<BoxProps>;
62
- BoxShadow(props: BoxShadowProps): import("../types").DeclarationNode<BoxShadowProps>;
63
- Paragraph(props: ParagraphProps): import("../types").RenderNode<ParagraphProps>;
64
- }