@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,222 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiSkRRect.h"
4
- #include "NodeProp.h"
5
- #include "RectProp.h"
6
-
7
- #include <memory>
8
- #include <vector>
9
-
10
- #pragma clang diagnostic push
11
- #pragma clang diagnostic ignored "-Wdocumentation"
12
-
13
- #include "include/core/SkRRect.h"
14
- #include "include/core/SkRect.h"
15
-
16
- #pragma clang diagnostic pop
17
-
18
- namespace RNSkia {
19
-
20
- static PropId PropNameRx = JsiPropId::get("rx");
21
- static PropId PropNameRy = JsiPropId::get("ry");
22
- static PropId PropNameR = JsiPropId::get("r");
23
- static PropId PropNameTopLeft = JsiPropId::get("topLeft");
24
- static PropId PropNameTopRight = JsiPropId::get("topRight");
25
- static PropId PropNameBottomRight = JsiPropId::get("bottomRight");
26
- static PropId PropNameBottomLeft = JsiPropId::get("bottomLeft");
27
-
28
- /**
29
- Reads a rect from a given propety in the node. The name of the property is
30
- provided on the constructor. The property can either be a Javascript property
31
- or a host object representing an SkRect.
32
- */
33
- class RRectProp : public DerivedProp<SkRRect> {
34
- public:
35
- explicit RRectProp(PropId name,
36
- const std::function<void(BaseNodeProp *)> &onChange)
37
- : DerivedProp(onChange) {
38
- _prop = defineProperty<NodeProp>(name);
39
- }
40
-
41
- static std::shared_ptr<SkRRect> processRRect(const JsiValue &value) {
42
- if (value.getType() == PropType::HostObject) {
43
- // Try reading as rect
44
- auto rectPtr =
45
- std::dynamic_pointer_cast<JsiSkRRect>(value.getAsHostObject());
46
- if (rectPtr != nullptr) {
47
- auto rrect = rectPtr->getObject();
48
- return std::make_shared<SkRRect>(
49
- SkRRect::MakeRectXY(rrect->rect(), rrect->getSimpleRadii().x(),
50
- rrect->getSimpleRadii().y()));
51
- }
52
- } else {
53
- if (value.getType() == PropType::Object) {
54
- if (value.hasValue(PropNameRect) && value.hasValue(PropNameRx) &&
55
- value.hasValue(PropNameRy)) {
56
- auto rect = value.getValue(PropNameRect);
57
- if (rect.hasValue(PropNameX) && rect.hasValue(PropNameY) &&
58
- rect.hasValue(PropNameWidth) && rect.hasValue(PropNameHeight)) {
59
- auto x = rect.getValue(PropNameX);
60
- auto y = rect.getValue(PropNameY);
61
- auto width = rect.getValue(PropNameWidth);
62
- auto height = rect.getValue(PropNameHeight);
63
- auto rx = value.getValue(PropNameRx);
64
- auto ry = value.getValue(PropNameRy);
65
-
66
- // Update cache from js object value
67
- return std::make_shared<SkRRect>(SkRRect::MakeRectXY(
68
- SkRect::MakeXYWH(x.getAsNumber(), y.getAsNumber(),
69
- width.getAsNumber(), height.getAsNumber()),
70
- rx.getAsNumber(), ry.getAsNumber()));
71
- }
72
- } else if (value.hasValue(PropNameRect) &&
73
- value.hasValue(PropNameTopLeft) &&
74
- value.hasValue(PropNameTopRight) &&
75
- value.hasValue(PropNameBottomRight) &&
76
- value.hasValue(PropNameBottomLeft)) {
77
- auto rect = value.getValue(PropNameRect);
78
- if (rect.hasValue(PropNameX) && rect.hasValue(PropNameY) &&
79
- rect.hasValue(PropNameWidth) && rect.hasValue(PropNameHeight)) {
80
- auto x = rect.getValue(PropNameX);
81
- auto y = rect.getValue(PropNameY);
82
- auto width = rect.getValue(PropNameWidth);
83
- auto height = rect.getValue(PropNameHeight);
84
- std::vector<SkPoint> points;
85
- points.reserve(4);
86
- auto topLeft = value.getValue(PropNameTopLeft);
87
- auto topLeftX = topLeft.getValue(PropNameX);
88
- auto topLeftY = topLeft.getValue(PropNameY);
89
- points.push_back(
90
- SkPoint::Make(topLeftX.getAsNumber(), topLeftY.getAsNumber()));
91
-
92
- auto topRight = value.getValue(PropNameTopRight);
93
- auto topRightX = topRight.getValue(PropNameX);
94
- auto topRightY = topRight.getValue(PropNameY);
95
- points.push_back(SkPoint::Make(topRightX.getAsNumber(),
96
- topRightY.getAsNumber()));
97
-
98
- auto bottomRight = value.getValue(PropNameBottomRight);
99
- auto bottomRightX = bottomRight.getValue(PropNameX);
100
- auto bottomRightY = bottomRight.getValue(PropNameY);
101
- points.push_back(SkPoint::Make(bottomRightX.getAsNumber(),
102
- bottomRightY.getAsNumber()));
103
-
104
- auto bottomLeft = value.getValue(PropNameBottomLeft);
105
- auto bottomLeftX = bottomLeft.getValue(PropNameX);
106
- auto bottomLeftY = bottomLeft.getValue(PropNameY);
107
- points.push_back(SkPoint::Make(bottomLeftX.getAsNumber(),
108
- bottomLeftY.getAsNumber()));
109
-
110
- auto rrect = std::make_shared<SkRRect>(SkRRect::MakeEmpty());
111
- rrect->setRectRadii(
112
- SkRect::MakeXYWH(x.getAsNumber(), y.getAsNumber(),
113
- width.getAsNumber(), height.getAsNumber()),
114
- points.data());
115
- return rrect;
116
- }
117
- }
118
- }
119
- }
120
- return nullptr;
121
- }
122
-
123
- void updateDerivedValue() override {
124
- if (_prop->isSet()) {
125
- auto value = _prop->value();
126
- setDerivedValue(RRectProp::processRRect(value));
127
- }
128
- }
129
-
130
- private:
131
- NodeProp *_prop;
132
- };
133
-
134
- /**
135
- Reads rect properties from a node's properties
136
- */
137
- class RRectPropFromProps : public DerivedProp<SkRRect> {
138
- public:
139
- explicit RRectPropFromProps(
140
- const std::function<void(BaseNodeProp *)> &onChange)
141
- : DerivedProp<SkRRect>(onChange) {
142
- _x = defineProperty<NodeProp>(PropNameX);
143
- _y = defineProperty<NodeProp>(PropNameY);
144
- _width = defineProperty<NodeProp>(PropNameWidth);
145
- _height = defineProperty<NodeProp>(PropNameHeight);
146
- _r = defineProperty<NodeProp>(PropNameR);
147
- }
148
-
149
- void updateDerivedValue() override {
150
- if (_x->isSet() && _y->isSet() && _width->isSet() && _height->isSet() &&
151
- _r->isSet()) {
152
- setDerivedValue(SkRRect::MakeRectXY(
153
- SkRect::MakeXYWH(_x->value().getAsNumber(), _y->value().getAsNumber(),
154
- _width->value().getAsNumber(),
155
- _height->value().getAsNumber()),
156
- _r->value().getAsNumber(), _r->value().getAsNumber()));
157
- }
158
- }
159
-
160
- private:
161
- NodeProp *_x;
162
- NodeProp *_y;
163
- NodeProp *_width;
164
- NodeProp *_height;
165
- NodeProp *_r;
166
- };
167
-
168
- /**
169
- Reads rect props from either a given property or from the property object
170
- itself.
171
- */
172
- class RRectProps : public DerivedProp<SkRRect> {
173
- public:
174
- explicit RRectProps(PropId name,
175
- const std::function<void(BaseNodeProp *)> &onChange)
176
- : DerivedProp<SkRRect>(onChange) {
177
- _rectProp = defineProperty<RRectProp>(name);
178
- _rectPropFromProps = defineProperty<RRectPropFromProps>();
179
- }
180
-
181
- void updateDerivedValue() override {
182
- if (_rectProp->isSet()) {
183
- setDerivedValue(_rectProp->getUnsafeDerivedValue());
184
- } else if (_rectPropFromProps->isSet()) {
185
- setDerivedValue(_rectPropFromProps->getUnsafeDerivedValue());
186
- } else {
187
- setDerivedValue(nullptr);
188
- }
189
- }
190
-
191
- private:
192
- RRectProp *_rectProp;
193
- RRectPropFromProps *_rectPropFromProps;
194
- };
195
-
196
- /**
197
- Reads rect props from either a given property or from the property object
198
- itself.
199
- */
200
- class BoxProps : public DerivedProp<SkRRect> {
201
- public:
202
- explicit BoxProps(PropId name,
203
- const std::function<void(BaseNodeProp *)> &onChange)
204
- : DerivedProp<SkRRect>(onChange) {
205
- _boxProp = defineProperty<NodeProp>(name);
206
- }
207
-
208
- void updateDerivedValue() override {
209
- auto value = _boxProp->value();
210
- auto rect = RectProp::processRect(value);
211
- if (rect) {
212
- setDerivedValue(SkRRect::MakeRect(*rect));
213
- } else {
214
- setDerivedValue(RRectProp::processRRect(value));
215
- }
216
- }
217
-
218
- private:
219
- NodeProp *_boxProp;
220
- };
221
-
222
- } // namespace RNSkia
@@ -1,52 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiSkRSXform.h"
4
- #include "NodeProp.h"
5
-
6
- #include <memory>
7
- #include <utility>
8
- #include <vector>
9
-
10
- #pragma clang diagnostic push
11
- #pragma clang diagnostic ignored "-Wdocumentation"
12
-
13
- #include "include/core/SkRSXform.h"
14
-
15
- #pragma clang diagnostic pop
16
-
17
- namespace RNSkia {
18
-
19
- // TODO: Factorize these array classes
20
- class RSXFormsProp : public DerivedProp<std::vector<SkRSXform>> {
21
- public:
22
- explicit RSXFormsProp(PropId name,
23
- const std::function<void(BaseNodeProp *)> &onChange)
24
- : DerivedProp<std::vector<SkRSXform>>(onChange) {
25
- _rsxFormsProp = defineProperty<NodeProp>(name);
26
- }
27
-
28
- void updateDerivedValue() override {
29
- if (_rsxFormsProp->isSet()) {
30
- auto rsxforms = _rsxFormsProp->value().getAsArray();
31
- std::vector<SkRSXform> derivedRSXForms;
32
- derivedRSXForms.reserve(rsxforms.size());
33
-
34
- for (size_t i = 0; i < rsxforms.size(); ++i) {
35
- auto val = rsxforms[i];
36
- if (val.getType() == PropType::HostObject) {
37
- auto rsx =
38
- std::dynamic_pointer_cast<JsiSkRSXform>(val.getAsHostObject())
39
- ->getObject();
40
- derivedRSXForms.push_back(*rsx);
41
- }
42
- }
43
- setDerivedValue(std::move(derivedRSXForms));
44
- } else {
45
- setDerivedValue(nullptr);
46
- }
47
- }
48
-
49
- private:
50
- NodeProp *_rsxFormsProp;
51
- };
52
- } // namespace RNSkia
@@ -1,43 +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
- class RadiusProp : public DerivedProp<SkPoint> {
18
- public:
19
- explicit RadiusProp(PropId name,
20
- const std::function<void(BaseNodeProp *)> &onChange)
21
- : DerivedProp<SkPoint>(onChange) {
22
- _radiusProp = defineProperty<NodeProp>(name);
23
- }
24
-
25
- void updateDerivedValue() override {
26
- if (_radiusProp->isSet()) {
27
- // Check for simple number:
28
- if (_radiusProp->value().getType() == PropType::Number) {
29
- setDerivedValue(SkPoint::Make(_radiusProp->value().getAsNumber(),
30
- _radiusProp->value().getAsNumber()));
31
- } else {
32
- setDerivedValue(PointProp::processValue(_radiusProp->value()));
33
- }
34
- } else {
35
- setDerivedValue(nullptr);
36
- }
37
- }
38
-
39
- private:
40
- NodeProp *_radiusProp;
41
- };
42
-
43
- } // namespace RNSkia
@@ -1,164 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiSkRSXform.h"
4
- #include "NodeProp.h"
5
- #include "PointProp.h"
6
-
7
- #include <memory>
8
- #include <utility>
9
- #include <vector>
10
-
11
- #pragma clang diagnostic push
12
- #pragma clang diagnostic ignored "-Wdocumentation"
13
-
14
- #include "include/core/SkRect.h"
15
-
16
- #pragma clang diagnostic pop
17
-
18
- namespace RNSkia {
19
-
20
- static PropId PropNameRect = JsiPropId::get("rect");
21
- static PropId PropNameWidth = JsiPropId::get("width");
22
- static PropId PropNameHeight = JsiPropId::get("height");
23
-
24
- /**
25
- Reads a rect from a given propety in the node. The name of the property is
26
- provided on the constructor. The property can either be a Javascript property
27
- or a host object representing an SkRect.
28
- */
29
- class RectProp : public DerivedProp<SkRect> {
30
- public:
31
- explicit RectProp(PropId name,
32
- const std::function<void(BaseNodeProp *)> &onChange)
33
- : DerivedProp(onChange) {
34
- _prop = defineProperty<NodeProp>(name);
35
- }
36
-
37
- static std::shared_ptr<SkRect> processRect(const JsiValue &value) {
38
- if (value.getType() == PropType::HostObject) {
39
- auto rectPtr =
40
- std::dynamic_pointer_cast<JsiSkRect>(value.getAsHostObject());
41
- if (rectPtr != nullptr) {
42
- return std::make_shared<SkRect>(SkRect::MakeXYWH(
43
- rectPtr->getObject()->x(), rectPtr->getObject()->y(),
44
- rectPtr->getObject()->width(), rectPtr->getObject()->height()));
45
- }
46
- } else if (value.getType() == PropType::Object &&
47
- value.hasValue(PropNameX) && value.hasValue(PropNameY) &&
48
- value.hasValue(PropNameWidth) &&
49
- value.hasValue(PropNameHeight)) {
50
- // Save props for fast access
51
- auto x = value.getValue(PropNameX);
52
- auto y = value.getValue(PropNameY);
53
- auto width = value.getValue(PropNameWidth);
54
- auto height = value.getValue(PropNameHeight);
55
- // Update cache from js object value
56
- return std::make_shared<SkRect>(
57
- SkRect::MakeXYWH(x.getAsNumber(), y.getAsNumber(),
58
- width.getAsNumber(), height.getAsNumber()));
59
- }
60
- return nullptr;
61
- }
62
-
63
- void updateDerivedValue() override {
64
- if (_prop->isSet()) {
65
- setDerivedValue(RectProp::processRect(_prop->value()));
66
- }
67
- }
68
-
69
- private:
70
- NodeProp *_prop;
71
- };
72
-
73
- /**
74
- Reads rect properties from a node's properties
75
- */
76
- class RectPropFromProps : public DerivedProp<SkRect> {
77
- public:
78
- explicit RectPropFromProps(
79
- const std::function<void(BaseNodeProp *)> &onChange)
80
- : DerivedProp<SkRect>(onChange) {
81
- _x = defineProperty<NodeProp>(PropNameX);
82
- _y = defineProperty<NodeProp>(PropNameY);
83
- _width = defineProperty<NodeProp>(PropNameWidth);
84
- _height = defineProperty<NodeProp>(PropNameHeight);
85
- }
86
-
87
- void updateDerivedValue() override {
88
- if (_width->isSet() && _height->isSet()) {
89
- auto x = 0.0;
90
- auto y = 0.0;
91
- if (_x->isSet()) {
92
- x = _x->value().getAsNumber();
93
- }
94
- if (_y->isSet()) {
95
- y = _y->value().getAsNumber();
96
- }
97
- setDerivedValue(SkRect::MakeXYWH(x, y, _width->value().getAsNumber(),
98
- _height->value().getAsNumber()));
99
- }
100
- }
101
-
102
- private:
103
- NodeProp *_x;
104
- NodeProp *_y;
105
- NodeProp *_width;
106
- NodeProp *_height;
107
- };
108
-
109
- /**
110
- Reads rect props from either a given property or from the property object
111
- itself.
112
- */
113
- class RectProps : public DerivedProp<SkRect> {
114
- public:
115
- explicit RectProps(PropId name,
116
- const std::function<void(BaseNodeProp *)> &onChange)
117
- : DerivedProp<SkRect>(onChange) {
118
- _rectProp = defineProperty<RectProp>(name);
119
- _rectPropFromProps = defineProperty<RectPropFromProps>();
120
- }
121
-
122
- void updateDerivedValue() override {
123
- if (_rectProp->isSet()) {
124
- setDerivedValue(_rectProp->getUnsafeDerivedValue());
125
- } else if (_rectPropFromProps->isSet()) {
126
- setDerivedValue(_rectPropFromProps->getUnsafeDerivedValue());
127
- } else {
128
- setDerivedValue(nullptr);
129
- }
130
- }
131
-
132
- private:
133
- RectProp *_rectProp;
134
- RectPropFromProps *_rectPropFromProps;
135
- };
136
-
137
- class RectsProp : public DerivedProp<std::vector<SkRect>> {
138
- public:
139
- explicit RectsProp(PropId name,
140
- const std::function<void(BaseNodeProp *)> &onChange)
141
- : DerivedProp<std::vector<SkRect>>(onChange) {
142
- _rectsProp = defineProperty<NodeProp>(name);
143
- }
144
-
145
- void updateDerivedValue() override {
146
- if (_rectsProp->isSet()) {
147
- auto rects = _rectsProp->value().getAsArray();
148
- std::vector<SkRect> derivedRects;
149
- derivedRects.reserve(rects.size());
150
-
151
- for (size_t i = 0; i < rects.size(); ++i) {
152
- derivedRects.push_back(*RectProp::processRect(rects[i]));
153
- }
154
- setDerivedValue(std::move(derivedRects));
155
- } else {
156
- setDerivedValue(nullptr);
157
- }
158
- }
159
-
160
- private:
161
- NodeProp *_rectsProp;
162
- };
163
-
164
- } // namespace RNSkia
@@ -1,54 +0,0 @@
1
- #pragma once
2
-
3
- #include "include/core/SkSamplingOptions.h"
4
-
5
- namespace RNSkia {
6
-
7
- static PropId PropNameCubicB = JsiPropId::get("B");
8
- static PropId PropNameCubicC = JsiPropId::get("C");
9
- static PropId PropNameFilter = JsiPropId::get("filter");
10
- static PropId PropNameMipmap = JsiPropId::get("mipmap");
11
-
12
- class SamplingProp : public DerivedProp<SkSamplingOptions> {
13
- public:
14
- explicit SamplingProp(PropId name,
15
- const std::function<void(BaseNodeProp *)> &onChange)
16
- : DerivedProp(onChange) {
17
- _prop = defineProperty<NodeProp>(name);
18
- }
19
-
20
- static SkSamplingOptions processSamplingOptions(const JsiValue &value) {
21
- SkSamplingOptions samplingOptions(SkFilterMode::kLinear);
22
- if (value.getType() == PropType::Object) {
23
- if (value.hasValue(PropNameCubicB) && value.hasValue(PropNameCubicC)) {
24
- auto B =
25
- static_cast<float>(value.getValue(PropNameCubicB).getAsNumber());
26
- auto C =
27
- static_cast<float>(value.getValue(PropNameCubicC).getAsNumber());
28
- samplingOptions = SkSamplingOptions({B, C});
29
- } else if (value.hasValue(PropNameFilter)) {
30
- auto filter = static_cast<SkFilterMode>(
31
- value.getValue(PropNameFilter).getAsNumber());
32
- if (value.hasValue(PropNameMipmap)) {
33
- auto mipmap = static_cast<SkMipmapMode>(
34
- value.getValue(PropNameMipmap).getAsNumber());
35
- samplingOptions = SkSamplingOptions(filter, mipmap);
36
- } else {
37
- samplingOptions = SkSamplingOptions(filter);
38
- }
39
- }
40
- }
41
-
42
- return samplingOptions;
43
- }
44
-
45
- void updateDerivedValue() override {
46
- if (_prop->isSet()) {
47
- setDerivedValue(SamplingProp::processSamplingOptions(_prop->value()));
48
- }
49
- }
50
-
51
- private:
52
- NodeProp *_prop;
53
- };
54
- } // namespace RNSkia