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