@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,33 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "TextBlobProp.h"
5
-
6
- #include <memory>
7
-
8
- namespace RNSkia {
9
-
10
- class JsiTextPathNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiTextPathNode> {
12
- public:
13
- explicit JsiTextPathNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skTextPath") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- auto blob = _textBlobProp->getDerivedValue();
19
- if (blob != nullptr) {
20
- context->getCanvas()->drawTextBlob(blob, 0, 0, *context->getPaint());
21
- }
22
- }
23
-
24
- void defineProperties(NodePropsContainer *container) override {
25
- JsiDomDrawingNode::defineProperties(container);
26
- _textBlobProp = container->defineProperty<TextPathBlobProp>();
27
- }
28
-
29
- private:
30
- TextPathBlobProp *_textBlobProp;
31
- };
32
-
33
- } // namespace RNSkia
@@ -1,41 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
-
5
- #include "BlendModeProp.h"
6
- #include "VerticesProps.h"
7
-
8
- #include <memory>
9
-
10
- namespace RNSkia {
11
-
12
- class JsiVerticesNode : public JsiDomDrawingNode,
13
- public JsiDomNodeCtor<JsiVerticesNode> {
14
- public:
15
- explicit JsiVerticesNode(std::shared_ptr<RNSkPlatformContext> context)
16
- : JsiDomDrawingNode(context, "skVertices") {}
17
-
18
- protected:
19
- void draw(DrawingContext *context) override {
20
- SkBlendMode defaultBlendMode = _verticesProps->hasColors()
21
- ? SkBlendMode::kDstOver
22
- : SkBlendMode::kSrcOver;
23
- context->getCanvas()->drawVertices(_verticesProps->getDerivedValue(),
24
- _blendModeProp->isSet()
25
- ? *_blendModeProp->getDerivedValue()
26
- : defaultBlendMode,
27
- *context->getPaint());
28
- }
29
-
30
- void defineProperties(NodePropsContainer *container) override {
31
- JsiDomDrawingNode::defineProperties(container);
32
- _verticesProps = container->defineProperty<VerticesProps>();
33
- _blendModeProp = container->defineProperty<BlendModeProp>("blendMode");
34
- }
35
-
36
- private:
37
- VerticesProps *_verticesProps;
38
- BlendModeProp *_blendModeProp;
39
- };
40
-
41
- } // namespace RNSkia
@@ -1,65 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include "JsiSkPicture.h"
6
-
7
- #include <memory>
8
- #include <utility>
9
- #include <vector>
10
-
11
- namespace RNSkia {
12
-
13
- class BezierProp : public DerivedProp<std::vector<SkPoint>> {
14
- public:
15
- explicit BezierProp(PropId name,
16
- const std::function<void(BaseNodeProp *)> &onChange)
17
- : DerivedProp<std::vector<SkPoint>>(onChange) {
18
- _bezierProp = defineProperty<NodeProp>(name);
19
- }
20
-
21
- void updateDerivedValue() override {
22
- if (_bezierProp->value().getType() == PropType::Array) {
23
- // Patch requires a path with the following constraints:
24
- // M tl
25
- // C c1 c2 br
26
- // C c1 c2 bl
27
- // C c1 c2 tl (the redundant point in the last command is removed)
28
- auto arr = _bezierProp->value().getAsArray();
29
- std::vector<SkPoint> points;
30
- points.reserve(12);
31
-
32
- points.push_back(
33
- PointProp::processValue(arr[0].getValue(JsiPropId::get("pos"))));
34
- points.push_back(
35
- PointProp::processValue(arr[0].getValue(JsiPropId::get("c2"))));
36
- points.push_back(
37
- PointProp::processValue(arr[1].getValue(JsiPropId::get("c1"))));
38
- points.push_back(
39
- PointProp::processValue(arr[1].getValue(JsiPropId::get("pos"))));
40
- points.push_back(
41
- PointProp::processValue(arr[1].getValue(JsiPropId::get("c2"))));
42
- points.push_back(
43
- PointProp::processValue(arr[2].getValue(JsiPropId::get("c1"))));
44
- points.push_back(
45
- PointProp::processValue(arr[2].getValue(JsiPropId::get("pos"))));
46
- points.push_back(
47
- PointProp::processValue(arr[2].getValue(JsiPropId::get("c2"))));
48
- points.push_back(
49
- PointProp::processValue(arr[3].getValue(JsiPropId::get("c1"))));
50
- points.push_back(
51
- PointProp::processValue(arr[3].getValue(JsiPropId::get("pos"))));
52
- points.push_back(
53
- PointProp::processValue(arr[3].getValue(JsiPropId::get("c2"))));
54
- points.push_back(
55
- PointProp::processValue(arr[0].getValue(JsiPropId::get("c1"))));
56
-
57
- setDerivedValue(std::move(points));
58
- }
59
- }
60
-
61
- private:
62
- NodeProp *_bezierProp;
63
- };
64
-
65
- } // namespace RNSkia
@@ -1,103 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include <memory>
6
- #include <string>
7
- #include <utility>
8
- #include <vector>
9
-
10
- #pragma clang diagnostic push
11
- #pragma clang diagnostic ignored "-Wdocumentation"
12
-
13
- #include "include/core/SkBlendMode.h"
14
-
15
- #pragma clang diagnostic pop
16
-
17
- namespace RNSkia {
18
-
19
- class BlendModeProp : public DerivedProp<SkBlendMode> {
20
- public:
21
- explicit BlendModeProp(PropId name,
22
- const std::function<void(BaseNodeProp *)> &onChange)
23
- : DerivedProp<SkBlendMode>(onChange) {
24
- _blendMode = defineProperty<NodeProp>(name);
25
- }
26
-
27
- void updateDerivedValue() override {
28
- if (_blendMode->isSet() && (_blendMode->isChanged())) {
29
- auto blendModeValue = _blendMode->value().getAsString();
30
- setDerivedValue(getBlendModeFromString(blendModeValue));
31
- }
32
- }
33
-
34
- private:
35
- SkBlendMode getBlendModeFromString(const std::string &value) {
36
- if (value == "clear") {
37
- return SkBlendMode::kClear;
38
- } else if (value == "src") {
39
- return SkBlendMode::kSrc;
40
- } else if (value == "dst") {
41
- return SkBlendMode::kDst;
42
- } else if (value == "srcOver") {
43
- return SkBlendMode::kSrcOver;
44
- } else if (value == "dstOver") {
45
- return SkBlendMode::kDstOver;
46
- } else if (value == "srcIn") {
47
- return SkBlendMode::kSrcIn;
48
- } else if (value == "dstIn") {
49
- return SkBlendMode::kDstIn;
50
- } else if (value == "srcOut") {
51
- return SkBlendMode::kSrcOut;
52
- } else if (value == "dstOut") {
53
- return SkBlendMode::kDstOut;
54
- } else if (value == "srcATop") {
55
- return SkBlendMode::kSrcATop;
56
- } else if (value == "dstATop") {
57
- return SkBlendMode::kDstATop;
58
- } else if (value == "xor") {
59
- return SkBlendMode::kXor;
60
- } else if (value == "plus") {
61
- return SkBlendMode::kPlus;
62
- } else if (value == "modulate") {
63
- return SkBlendMode::kModulate;
64
- } else if (value == "screen") {
65
- return SkBlendMode::kScreen;
66
- } else if (value == "overlay") {
67
- return SkBlendMode::kOverlay;
68
- } else if (value == "darken") {
69
- return SkBlendMode::kDarken;
70
- } else if (value == "lighten") {
71
- return SkBlendMode::kLighten;
72
- } else if (value == "colorDodge") {
73
- return SkBlendMode::kColorDodge;
74
- } else if (value == "colorBurn") {
75
- return SkBlendMode::kColorBurn;
76
- } else if (value == "hardLight") {
77
- return SkBlendMode::kHardLight;
78
- } else if (value == "softLight") {
79
- return SkBlendMode::kSoftLight;
80
- } else if (value == "difference") {
81
- return SkBlendMode::kDifference;
82
- } else if (value == "exclusion") {
83
- return SkBlendMode::kExclusion;
84
- } else if (value == "multiply") {
85
- return SkBlendMode::kMultiply;
86
- } else if (value == "hue") {
87
- return SkBlendMode::kHue;
88
- } else if (value == "saturation") {
89
- return SkBlendMode::kSaturation;
90
- } else if (value == "color") {
91
- return SkBlendMode::kColor;
92
- } else if (value == "luminosity") {
93
- return SkBlendMode::kLuminosity;
94
- }
95
-
96
- throw std::runtime_error("Property value \"" + value +
97
- "\" is not a legal blend mode.");
98
- }
99
-
100
- NodeProp *_blendMode;
101
- };
102
-
103
- } // namespace RNSkia
@@ -1,62 +0,0 @@
1
- #pragma once
2
-
3
- #include "NodeProp.h"
4
-
5
- #include <memory>
6
- #include <utility>
7
-
8
- #include "include/core/SkBlurTypes.h"
9
-
10
- namespace RNSkia {
11
-
12
- class BoxShadowProps : public DerivedProp<SkPaint> {
13
- public:
14
- explicit BoxShadowProps(const std::function<void(BaseNodeProp *)> &onChange)
15
- : DerivedProp<SkPaint>(onChange) {
16
- _dxProp = defineProperty<NodeProp>("dx");
17
- _dyProp = defineProperty<NodeProp>("dy");
18
- _spreadProp = defineProperty<NodeProp>("spread");
19
- _blurProp = defineProperty<NodeProp>("blur");
20
- _colorProp = defineProperty<ColorProp>("color");
21
- _innerProp = defineProperty<NodeProp>("inner");
22
-
23
- _blurProp->require();
24
- }
25
-
26
- void updateDerivedValue() override {
27
- SkColor color =
28
- _colorProp->isSet() ? *_colorProp->getDerivedValue() : SK_ColorBLACK;
29
- SkScalar blur = _blurProp->value().getAsNumber();
30
-
31
- auto paint = SkPaint();
32
- paint.setAntiAlias(true);
33
- paint.setColor(color);
34
- auto filter = SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, blur, true);
35
- paint.setMaskFilter(filter);
36
-
37
- setDerivedValue(std::move(paint));
38
- }
39
-
40
- bool isInner() {
41
- return _innerProp->isSet() ? _innerProp->value().getAsBool() : false;
42
- }
43
- SkScalar getDx() {
44
- return _dxProp->isSet() ? _dxProp->value().getAsNumber() : 0;
45
- }
46
- SkScalar getDy() {
47
- return _dyProp->isSet() ? _dyProp->value().getAsNumber() : 0;
48
- }
49
- SkScalar getSpread() {
50
- return _spreadProp->isSet() ? _spreadProp->value().getAsNumber() : 0;
51
- }
52
-
53
- private:
54
- NodeProp *_dxProp;
55
- NodeProp *_dyProp;
56
- NodeProp *_spreadProp;
57
- NodeProp *_blurProp;
58
- ColorProp *_colorProp;
59
- NodeProp *_innerProp;
60
- };
61
-
62
- } // namespace RNSkia
@@ -1,49 +0,0 @@
1
- #pragma once
2
-
3
- #include "NodeProp.h"
4
- #include "PointProp.h"
5
-
6
- #include <memory>
7
-
8
- #pragma clang diagnostic push
9
- #pragma clang diagnostic ignored "-Wdocumentation"
10
-
11
- #include "include/core/SkPoint.h"
12
-
13
- #pragma clang diagnostic pop
14
-
15
- namespace RNSkia {
16
-
17
- static PropId PropNameCx = JsiPropId::get("cx");
18
- static PropId PropNameCy = JsiPropId::get("cy");
19
- static PropId PropNameC = JsiPropId::get("c");
20
-
21
- class CircleProp : public DerivedProp<SkPoint> {
22
- public:
23
- explicit CircleProp(const std::function<void(BaseNodeProp *)> &onChange)
24
- : DerivedProp<SkPoint>(onChange) {
25
- _c = defineProperty<PointProp>("c");
26
- _cx = defineProperty<NodeProp>("cx");
27
- _cy = defineProperty<NodeProp>("cy");
28
- }
29
-
30
- void updateDerivedValue() override {
31
- // Read in this order since point with x:0/y:0 is default for
32
- // the c property.
33
- if (_cx->isSet() && _cy->isSet()) {
34
- setDerivedValue(SkPoint::Make(_cx->value().getAsNumber(),
35
- _cy->value().getAsNumber()));
36
- } else if (_c->isSet()) {
37
- setDerivedValue(_c->getUnsafeDerivedValue());
38
- } else {
39
- setDerivedValue(SkPoint::Make(0.0, 0.0));
40
- }
41
- }
42
-
43
- private:
44
- PointProp *_c;
45
- NodeProp *_cx;
46
- NodeProp *_cy;
47
- };
48
-
49
- } // namespace RNSkia
@@ -1,57 +0,0 @@
1
- #pragma once
2
-
3
- #include "NodeProp.h"
4
-
5
- #include "PathProp.h"
6
- #include "RRectProp.h"
7
- #include "RectProp.h"
8
-
9
- #include <memory>
10
-
11
- #pragma clang diagnostic push
12
- #pragma clang diagnostic ignored "-Wdocumentation"
13
-
14
- #include "include/core/SkPath.h"
15
-
16
- #pragma clang diagnostic pop
17
-
18
- namespace RNSkia {
19
-
20
- class ClipProp : public BaseDerivedProp {
21
- public:
22
- explicit ClipProp(PropId name,
23
- const std::function<void(BaseNodeProp *)> &onChange)
24
- : BaseDerivedProp(onChange) {
25
- _clipProp = defineProperty<NodeProp>(name);
26
- }
27
-
28
- void updateDerivedValue() override {
29
- if (_clipProp->isSet()) {
30
- auto value = _clipProp->value();
31
- _rect = RectProp::processRect(value);
32
- _rrect = nullptr;
33
- _path = nullptr;
34
- if (!_rect) {
35
- _path = PathProp::processPath(value);
36
- if (!_path) {
37
- _rrect = RRectProp::processRRect(value);
38
- }
39
- }
40
- }
41
- }
42
-
43
- bool isSet() override { return _clipProp->isSet(); }
44
-
45
- const SkPath *getPath() { return _path.get(); }
46
- const SkRect *getRect() { return _rect.get(); }
47
- const SkRRect *getRRect() { return _rrect.get(); }
48
-
49
- private:
50
- NodeProp *_clipProp;
51
-
52
- std::shared_ptr<const SkPath> _path;
53
- std::shared_ptr<const SkRect> _rect;
54
- std::shared_ptr<const SkRRect> _rrect;
55
- };
56
-
57
- } // namespace RNSkia
@@ -1,96 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
- #include "third_party/CSSColorParser.h"
5
-
6
- #include <memory>
7
- #include <utility>
8
- #include <vector>
9
-
10
- namespace RNSkia {
11
-
12
- static PropId PropName0 = JsiPropId::get("0");
13
- static PropId PropName1 = JsiPropId::get("1");
14
- static PropId PropName2 = JsiPropId::get("2");
15
- static PropId PropName3 = JsiPropId::get("3");
16
-
17
- class ColorProp : public DerivedProp<SkColor> {
18
- public:
19
- explicit ColorProp(PropId name,
20
- const std::function<void(BaseNodeProp *)> &onChange)
21
- : DerivedProp<SkColor>(onChange) {
22
- _colorProp = defineProperty<NodeProp>(name);
23
- }
24
-
25
- void updateDerivedValue() override {
26
- if (_colorProp->isSet()) {
27
- // Color might be a number, a string or a Float32Array of rgba values
28
- setDerivedValue(
29
- std::make_shared<SkColor>(parseColorValue(_colorProp->value())));
30
- } else {
31
- setDerivedValue(nullptr);
32
- }
33
- }
34
-
35
- static SkColor parseColorValue(const JsiValue &color) {
36
- if (color.getType() == PropType::Object) {
37
- // Float array
38
- auto r = color.getValue(PropName0);
39
- auto g = color.getValue(PropName1);
40
- auto b = color.getValue(PropName2);
41
- auto a = color.getValue(PropName3);
42
- return SkColorSetARGB(a.getAsNumber() * 255.0f, r.getAsNumber() * 255.0f,
43
- g.getAsNumber() * 255.0f, b.getAsNumber() * 255.0f);
44
-
45
- } else if (color.getType() == PropType::Array) {
46
- auto r = color.getAsArray().at(0);
47
- auto g = color.getAsArray().at(1);
48
- auto b = color.getAsArray().at(2);
49
- auto a = color.getAsArray().at(3);
50
- return SkColorSetARGB(a.getAsNumber() * 255.0f, r.getAsNumber() * 255.0f,
51
- g.getAsNumber() * 255.0f, b.getAsNumber() * 255.0f);
52
- } else if (color.getType() == PropType::Number) {
53
- return static_cast<SkColor>(color.getAsNumber());
54
- } else {
55
- auto parsedColor = CSSColorParser::parse(color.getAsString());
56
- if (parsedColor.a == -1.0f) {
57
- return SK_ColorBLACK;
58
- } else {
59
- return SkColorSetARGB(parsedColor.a * 255, parsedColor.r, parsedColor.g,
60
- parsedColor.b);
61
- }
62
- }
63
- }
64
-
65
- private:
66
- NodeProp *_colorProp;
67
- };
68
-
69
- class ColorsProp : public DerivedProp<std::vector<SkColor>> {
70
- public:
71
- explicit ColorsProp(PropId name,
72
- const std::function<void(BaseNodeProp *)> &onChange)
73
- : DerivedProp<std::vector<SkColor>>(onChange) {
74
- _colorsProp = defineProperty<NodeProp>(name);
75
- }
76
-
77
- void updateDerivedValue() override {
78
- if (_colorsProp->isSet()) {
79
- auto colors = _colorsProp->value().getAsArray();
80
- std::vector<SkColor> derivedColors;
81
- derivedColors.reserve(colors.size());
82
-
83
- for (size_t i = 0; i < colors.size(); ++i) {
84
- derivedColors.push_back(ColorProp::parseColorValue(colors[i]));
85
- }
86
- setDerivedValue(std::move(derivedColors));
87
- } else {
88
- setDerivedValue(nullptr);
89
- }
90
- }
91
-
92
- private:
93
- NodeProp *_colorsProp;
94
- };
95
-
96
- } // namespace RNSkia
@@ -1,42 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include "JsiSkFont.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class FontProp : public DerivedProp<SkFont> {
12
- public:
13
- explicit FontProp(PropId name,
14
- const std::function<void(BaseNodeProp *)> &onChange)
15
- : DerivedProp<SkFont>(onChange) {
16
- _fontProp = defineProperty<NodeProp>(name);
17
- }
18
-
19
- void updateDerivedValue() override {
20
- if (_fontProp->isSet()) {
21
- if (_fontProp->value().getType() == PropType::HostObject) {
22
- auto ptr = _fontProp->value().getAs<JsiSkFont>();
23
- if (ptr == nullptr) {
24
- throw std::runtime_error(
25
- "Expected SkFont object for the Font property.");
26
- }
27
- setDerivedValue(ptr->getObject());
28
-
29
- } else {
30
- throw std::runtime_error(
31
- "Expected SkFont object or null/undefined for the Font property.");
32
- }
33
- } else {
34
- setDerivedValue(nullptr);
35
- }
36
- }
37
-
38
- private:
39
- NodeProp *_fontProp;
40
- };
41
-
42
- } // namespace RNSkia
@@ -1,55 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
- #include "PointProp.h"
5
-
6
- #include <memory>
7
- #include <utility>
8
- #include <vector>
9
-
10
- namespace RNSkia {
11
-
12
- static PropId PropNamePos = JsiPropId::get("pos");
13
- static PropId PropNameId = JsiPropId::get("id");
14
-
15
- struct GlyphInfo {
16
- std::vector<SkGlyphID> glyphIds;
17
- std::vector<SkPoint> positions;
18
- };
19
-
20
- class GlyphsProp : public DerivedProp<GlyphInfo> {
21
- public:
22
- explicit GlyphsProp(PropId name,
23
- const std::function<void(BaseNodeProp *)> &onChange)
24
- : DerivedProp<GlyphInfo>(onChange) {
25
- _glyphsProp = defineProperty<NodeProp>(name);
26
- }
27
-
28
- void updateDerivedValue() override {
29
- auto arr = _glyphsProp->value().getAsArray();
30
-
31
- GlyphInfo glyphInfo;
32
-
33
- std::vector<SkGlyphID> glyphIds;
34
- std::vector<SkPoint> positions;
35
-
36
- glyphIds.reserve(arr.size());
37
- positions.reserve(arr.size());
38
-
39
- for (size_t i = 0; i < arr.size(); ++i) {
40
- auto obj = arr[i];
41
- auto pos = PointProp::processValue(obj.getValue(PropNamePos));
42
- auto identifier =
43
- static_cast<SkGlyphID>(obj.getValue(PropNameId).getAsNumber());
44
- glyphInfo.positions.push_back(pos);
45
- glyphInfo.glyphIds.push_back(identifier);
46
- }
47
-
48
- setDerivedValue(std::move(glyphInfo));
49
- }
50
-
51
- private:
52
- NodeProp *_glyphsProp;
53
- };
54
-
55
- } // namespace RNSkia
@@ -1,52 +0,0 @@
1
- #pragma once
2
-
3
- #include "DerivedNodeProp.h"
4
-
5
- #include "PaintProps.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class LayerProp : public DerivedProp<SkPaint> {
12
- public:
13
- explicit LayerProp(PropId name,
14
- const std::function<void(BaseNodeProp *)> &onChange)
15
- : DerivedProp<SkPaint>(onChange) {
16
- _layerPaintProp = defineProperty<PaintProp>(name);
17
- _layerBoolProp = defineProperty<NodeProp>(name);
18
- }
19
-
20
- /**
21
- Returns true if is optional and one of the child props has a value, or all
22
- props if optional is false.
23
- */
24
- bool isSet() override { return DerivedProp<SkPaint>::isSet() || _isBool; };
25
-
26
- void updateDerivedValue() override {
27
- if (_layerBoolProp->isSet() &&
28
- _layerBoolProp->value().getType() == PropType::Bool) {
29
- _isBool = true;
30
- setDerivedValue(nullptr);
31
- return;
32
- }
33
-
34
- if (_layerPaintProp->isSet()) {
35
- // We have a paint object for the layer property
36
- setDerivedValue(_layerPaintProp->getUnsafeDerivedValue());
37
- _isBool = false;
38
- } else {
39
- _isBool = false;
40
- setDerivedValue(nullptr);
41
- }
42
- }
43
-
44
- bool isBool() { return _isBool; }
45
-
46
- private:
47
- PaintProp *_layerPaintProp;
48
- NodeProp *_layerBoolProp;
49
- std::atomic<bool> _isBool;
50
- };
51
-
52
- } // namespace RNSkia