@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,31 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "PictureProp.h"
5
-
6
- #include <memory>
7
-
8
- namespace RNSkia {
9
-
10
- class JsiPictureNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiPictureNode> {
12
- public:
13
- explicit JsiPictureNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skPicture") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- context->getCanvas()->drawPicture(_pictureProp->getDerivedValue());
19
- }
20
-
21
- void defineProperties(NodePropsContainer *container) override {
22
- JsiDomDrawingNode::defineProperties(container);
23
- _pictureProp = container->defineProperty<PictureProp>("picture");
24
- _pictureProp->require();
25
- }
26
-
27
- private:
28
- PictureProp *_pictureProp;
29
- };
30
-
31
- } // namespace RNSkia
@@ -1,48 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "PointsProp.h"
5
-
6
- #include <memory>
7
-
8
- #pragma clang diagnostic push
9
- #pragma clang diagnostic ignored "-Wdocumentation"
10
-
11
- #include "include/core/SkCanvas.h"
12
-
13
- #pragma clang diagnostic pop
14
-
15
- namespace RNSkia {
16
-
17
- static PropId PropNamePointsMode = JsiPropId::get("mode");
18
-
19
- class JsiPointsNode : public JsiDomDrawingNode,
20
- public JsiDomNodeCtor<JsiPointsNode> {
21
- public:
22
- explicit JsiPointsNode(std::shared_ptr<RNSkPlatformContext> context)
23
- : JsiDomDrawingNode(context, "skPoints") {}
24
-
25
- protected:
26
- void draw(DrawingContext *context) override {
27
- auto mode = _pointModeProp->getDerivedValue();
28
- auto points = _pointsProp->getDerivedValue();
29
-
30
- context->getCanvas()->drawPoints(*mode, points->size(), points->data(),
31
- *context->getPaint());
32
- }
33
-
34
- void defineProperties(NodePropsContainer *container) override {
35
- JsiDomDrawingNode::defineProperties(container);
36
- _pointModeProp = container->defineProperty<PointModeProp>("mode");
37
- _pointsProp = container->defineProperty<PointsProp>("points");
38
-
39
- _pointsProp->require();
40
- _pointModeProp->require();
41
- }
42
-
43
- private:
44
- PointModeProp *_pointModeProp;
45
- PointsProp *_pointsProp;
46
- };
47
-
48
- } // namespace RNSkia
@@ -1,33 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "RRectProp.h"
5
-
6
- #include <memory>
7
-
8
- namespace RNSkia {
9
-
10
- class JsiRRectNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiRRectNode> {
12
- public:
13
- explicit JsiRRectNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skRRect") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- context->getCanvas()->drawRRect(*_rrectProp->getDerivedValue(),
19
- *context->getPaint());
20
- }
21
-
22
- void defineProperties(NodePropsContainer *container) override {
23
- JsiDomDrawingNode::defineProperties(container);
24
-
25
- _rrectProp = container->defineProperty<RRectProps>("rect");
26
- _rrectProp->require();
27
- }
28
-
29
- private:
30
- RRectProps *_rrectProp;
31
- };
32
-
33
- } // namespace RNSkia
@@ -1,33 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "RectProp.h"
5
-
6
- #include <memory>
7
-
8
- namespace RNSkia {
9
-
10
- class JsiRectNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiRectNode> {
12
- public:
13
- explicit JsiRectNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skRect") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- context->getCanvas()->drawRect(*_rectProp->getDerivedValue(),
19
- *context->getPaint());
20
- }
21
-
22
- void defineProperties(NodePropsContainer *container) override {
23
- JsiDomDrawingNode::defineProperties(container);
24
-
25
- _rectProp = container->defineProperty<RectProps>("rect");
26
- _rectProp->require();
27
- }
28
-
29
- private:
30
- RectProps *_rectProp;
31
- };
32
-
33
- } // namespace RNSkia
@@ -1,434 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDeclarationNode.h"
4
-
5
- #include "BlendModeProp.h"
6
- #include "ColorProp.h"
7
- #include "NodeProp.h"
8
- #include "NumbersProp.h"
9
- #include "SamplingProp.h"
10
- #include "TileModeProp.h"
11
- #include "TransformsProps.h"
12
- #include "UniformsProp.h"
13
-
14
- #include <memory>
15
- #include <string>
16
- #include <vector>
17
-
18
- #pragma clang diagnostic push
19
- #pragma clang diagnostic ignored "-Wdocumentation"
20
-
21
- #include "include/core/SkShader.h"
22
-
23
- #pragma clang diagnostic pop
24
-
25
- namespace RNSkia {
26
-
27
- class JsiShaderNode : public JsiDomDeclarationNode,
28
- public JsiDomNodeCtor<JsiShaderNode> {
29
- public:
30
- explicit JsiShaderNode(std::shared_ptr<RNSkPlatformContext> context)
31
- : JsiDomDeclarationNode(context, "skShader", DeclarationType::Shader) {}
32
-
33
- void decorate(DeclarationContext *context) override {
34
- decorateChildren(context);
35
- auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>();
36
- if (source == nullptr) {
37
- throw std::runtime_error("Expected runtime effect when reading source "
38
- "property of RuntimeEffectImageFilter.");
39
- }
40
- auto uniforms =
41
- _uniformsProp->isSet() ? _uniformsProp->getDerivedValue() : nullptr;
42
-
43
- SkMatrix lm;
44
- auto tm =
45
- _transformProp->isSet() ? _transformProp->getDerivedValue() : nullptr;
46
-
47
- if (tm != nullptr) {
48
- if (_originProp->isSet()) {
49
- auto tr = _originProp->getDerivedValue();
50
- lm.preTranslate(tr->x(), tr->y());
51
- lm.preConcat(*tm);
52
- lm.preTranslate(-tr->x(), -tr->y());
53
- } else {
54
- lm.preConcat(*tm);
55
- }
56
- }
57
-
58
- // get all children that are shader nodes
59
- auto children = context->getShaders()->popAll();
60
-
61
- // Update shader
62
- context->getShaders()->push(source->getObject()->makeShader(
63
- uniforms, children.data(), children.size(), &lm));
64
- }
65
-
66
- protected:
67
- void defineProperties(NodePropsContainer *container) override {
68
- JsiDomDeclarationNode::defineProperties(container);
69
- _sourceProp = container->defineProperty<NodeProp>("source");
70
- _uniformsProp =
71
- container->defineProperty<UniformsProp>("uniforms", _sourceProp);
72
- _transformProp = container->defineProperty<TransformProp>("transform");
73
- _originProp = container->defineProperty<PointProp>("origin");
74
-
75
- _sourceProp->require();
76
- }
77
-
78
- private:
79
- NodeProp *_sourceProp;
80
- UniformsProp *_uniformsProp;
81
- TransformProp *_transformProp;
82
- PointProp *_originProp;
83
- };
84
-
85
- class JsiImageShaderNode : public JsiDomDeclarationNode,
86
- public JsiDomNodeCtor<JsiImageShaderNode> {
87
- public:
88
- explicit JsiImageShaderNode(std::shared_ptr<RNSkPlatformContext> context)
89
- : JsiDomDeclarationNode(context, "skImageShader",
90
- DeclarationType::Shader) {}
91
-
92
- void decorate(DeclarationContext *context) override {
93
-
94
- auto image = _imageProps->getImage();
95
- if (image == nullptr) {
96
- return;
97
- }
98
-
99
- auto rect = _imageProps->getRect();
100
- auto lm =
101
- _transformProp->isSet() ? _transformProp->getDerivedValue() : nullptr;
102
-
103
- if (rect != nullptr && lm != nullptr) {
104
- auto rc = _imageProps->getDerivedValue();
105
- auto m3 = _imageProps->rect2rect(rc->src, rc->dst);
106
- if (_transformProp->isChanged() || _imageProps->isChanged()) {
107
- // To modify the matrix we need to copy it since we're not allowed to
108
- // modify values contained in properties - this would have caused the
109
- // matrix to be translated and scaled more and more for each render
110
- // even thought the matrix prop did not change.
111
- _matrix.reset();
112
- _matrix.preConcat(m3);
113
- if (_originProp->isSet()) {
114
- auto tr = _originProp->getDerivedValue();
115
- _matrix.preTranslate(tr->x(), tr->y());
116
- _matrix.preConcat(*lm);
117
- _matrix.preTranslate(-tr->x(), -tr->y());
118
- } else {
119
- _matrix.preConcat(*lm);
120
- }
121
- }
122
- }
123
-
124
- auto samplingOptions = _samplingProp->isSet()
125
- ? *_samplingProp->getDerivedValue()
126
- : SkSamplingOptions(SkFilterMode::kLinear);
127
- context->getShaders()->push(image->makeShader(*_txProp->getDerivedValue(),
128
- *_tyProp->getDerivedValue(),
129
- samplingOptions, &_matrix));
130
- }
131
-
132
- protected:
133
- void defineProperties(NodePropsContainer *container) override {
134
- JsiDomDeclarationNode::defineProperties(container);
135
- _txProp = container->defineProperty<TileModeProp>("tx");
136
- _tyProp = container->defineProperty<TileModeProp>("ty");
137
-
138
- _samplingProp = container->defineProperty<SamplingProp>("sampling");
139
- _imageProps = container->defineProperty<ImageProps>();
140
- _transformProp = container->defineProperty<TransformProp>("transform");
141
- _originProp = container->defineProperty<PointProp>("origin");
142
-
143
- _txProp->require();
144
- _tyProp->require();
145
-
146
- _transformProp->require();
147
-
148
- // Add and require the image
149
- container->defineProperty<NodeProp>("image");
150
- }
151
-
152
- private:
153
- SkMatrix _matrix;
154
-
155
- TileModeProp *_txProp;
156
- TileModeProp *_tyProp;
157
- ImageProps *_imageProps;
158
- TransformProp *_transformProp;
159
- PointProp *_originProp;
160
- SamplingProp *_samplingProp;
161
- };
162
-
163
- class JsiColorShaderNode : public JsiDomDeclarationNode,
164
- public JsiDomNodeCtor<JsiColorShaderNode> {
165
- public:
166
- explicit JsiColorShaderNode(std::shared_ptr<RNSkPlatformContext> context)
167
- : JsiDomDeclarationNode(context, "skColorShader",
168
- DeclarationType::Shader) {}
169
-
170
- void decorate(DeclarationContext *context) override {
171
- if (_colorProp->isSet()) {
172
- context->getShaders()->push(
173
- SkShaders::Color(*_colorProp->getDerivedValue()));
174
- }
175
- }
176
-
177
- protected:
178
- void defineProperties(NodePropsContainer *container) override {
179
- JsiDomDeclarationNode::defineProperties(container);
180
- _colorProp = container->defineProperty<ColorProp>("color");
181
- _colorProp->require();
182
- }
183
-
184
- private:
185
- ColorProp *_colorProp;
186
- };
187
-
188
- class JsiBasePerlinNoiseNode : public JsiDomDeclarationNode {
189
- public:
190
- JsiBasePerlinNoiseNode(std::shared_ptr<RNSkPlatformContext> context,
191
- PropId type)
192
- : JsiDomDeclarationNode(context, type, DeclarationType::Shader) {}
193
-
194
- void defineProperties(NodePropsContainer *container) override {
195
- JsiDomDeclarationNode::defineProperties(container);
196
- _freqXProp = container->defineProperty<NodeProp>("freqX");
197
- _freqYProp = container->defineProperty<NodeProp>("freqY");
198
- _octavesProp = container->defineProperty<NodeProp>("octaves");
199
- _seedProp = container->defineProperty<NodeProp>("seed");
200
- _tileWidthProp = container->defineProperty<NodeProp>("tileWidth");
201
- _tileHeightProp = container->defineProperty<NodeProp>("tileHeight");
202
-
203
- _freqXProp->require();
204
- _freqYProp->require();
205
- _octavesProp->require();
206
- _seedProp->require();
207
- _tileWidthProp->require();
208
- _tileHeightProp->require();
209
- }
210
-
211
- NodeProp *_freqXProp;
212
- NodeProp *_freqYProp;
213
- NodeProp *_octavesProp;
214
- NodeProp *_seedProp;
215
- NodeProp *_tileWidthProp;
216
- NodeProp *_tileHeightProp;
217
- };
218
-
219
- class JsiTurbulenceNode : public JsiBasePerlinNoiseNode,
220
- public JsiDomNodeCtor<JsiTurbulenceNode> {
221
- public:
222
- explicit JsiTurbulenceNode(std::shared_ptr<RNSkPlatformContext> context)
223
- : JsiBasePerlinNoiseNode(context, "skTurbulence") {}
224
-
225
- void decorate(DeclarationContext *context) override {
226
-
227
- SkISize size = SkISize::Make(_tileWidthProp->value().getAsNumber(),
228
- _tileHeightProp->value().getAsNumber());
229
-
230
- context->getShaders()->push(SkShaders::MakeTurbulence(
231
- _freqXProp->value().getAsNumber(), _freqYProp->value().getAsNumber(),
232
- _octavesProp->value().getAsNumber(), _seedProp->value().getAsNumber(),
233
- &size));
234
- }
235
- };
236
-
237
- class JsiFractalNoiseNode : public JsiBasePerlinNoiseNode,
238
- public JsiDomNodeCtor<JsiFractalNoiseNode> {
239
- public:
240
- explicit JsiFractalNoiseNode(std::shared_ptr<RNSkPlatformContext> context)
241
- : JsiBasePerlinNoiseNode(context, "skFractalNoise") {}
242
-
243
- void decorate(DeclarationContext *context) override {
244
-
245
- SkISize size = SkISize::Make(_tileWidthProp->value().getAsNumber(),
246
- _tileHeightProp->value().getAsNumber());
247
-
248
- context->getShaders()->push(SkShaders::MakeFractalNoise(
249
- _freqXProp->value().getAsNumber(), _freqYProp->value().getAsNumber(),
250
- _octavesProp->value().getAsNumber(), _seedProp->value().getAsNumber(),
251
- &size));
252
- }
253
- };
254
-
255
- class JsiBaseGradientNode : public JsiDomDeclarationNode {
256
- public:
257
- JsiBaseGradientNode(std::shared_ptr<RNSkPlatformContext> context, PropId type)
258
- : JsiDomDeclarationNode(context, type, DeclarationType::Shader) {}
259
-
260
- void decorate(DeclarationContext *context) override {
261
-
262
- _colors = _colorsProp->getDerivedValue()->data();
263
- _colorCount = static_cast<int>(_colorsProp->getDerivedValue()->size());
264
- _flags = _flagsProp->isSet() ? _flagsProp->value().getAsNumber() : 0;
265
- _mode =
266
- _modeProp->isSet() ? *_modeProp->getDerivedValue() : SkTileMode::kClamp;
267
- _positions = _positionsProp->isSet()
268
- ? _positionsProp->getDerivedValue()->data()
269
- : nullptr;
270
- _matrix = _transformsProps->isSet()
271
- ? _transformsProps->getDerivedValue().get()
272
- : nullptr;
273
- }
274
-
275
- protected:
276
- void defineProperties(NodePropsContainer *container) override {
277
- JsiDomDeclarationNode::defineProperties(container);
278
- _transformsProps = container->defineProperty<TransformsProps>();
279
-
280
- _colorsProp = container->defineProperty<ColorsProp>("colors");
281
- _positionsProp = container->defineProperty<NumbersProp>("positions");
282
- _modeProp = container->defineProperty<TileModeProp>("mode");
283
- _flagsProp = container->defineProperty<NodeProp>("flags");
284
-
285
- _colorsProp->require();
286
- }
287
-
288
- const SkColor *_colors;
289
- double _flags;
290
- int _colorCount;
291
- SkTileMode _mode;
292
- const SkScalar *_positions;
293
- const SkMatrix *_matrix;
294
-
295
- private:
296
- TransformsProps *_transformsProps;
297
- ColorsProp *_colorsProp;
298
- NumbersProp *_positionsProp;
299
- TileModeProp *_modeProp;
300
- NodeProp *_flagsProp;
301
- };
302
-
303
- class JsiLinearGradientNode : public JsiBaseGradientNode,
304
- public JsiDomNodeCtor<JsiLinearGradientNode> {
305
- public:
306
- explicit JsiLinearGradientNode(std::shared_ptr<RNSkPlatformContext> context)
307
- : JsiBaseGradientNode(context, "skLinearGradient") {}
308
-
309
- void decorate(DeclarationContext *context) override {
310
- JsiBaseGradientNode::decorate(context);
311
-
312
- SkPoint pts[] = {*_startProp->getDerivedValue(),
313
- *_endProp->getDerivedValue()};
314
- auto shader = SkGradientShader::MakeLinear(
315
- pts, _colors, _positions, _colorCount, _mode, _flags, _matrix);
316
- context->getShaders()->push(shader);
317
- }
318
-
319
- protected:
320
- void defineProperties(NodePropsContainer *container) override {
321
- JsiBaseGradientNode::defineProperties(container);
322
- _startProp = container->defineProperty<PointProp>("start");
323
- _endProp = container->defineProperty<PointProp>("end");
324
-
325
- _startProp->require();
326
- _endProp->require();
327
- }
328
-
329
- private:
330
- PointProp *_startProp;
331
- PointProp *_endProp;
332
- };
333
-
334
- class JsiRadialGradientNode : public JsiBaseGradientNode,
335
- public JsiDomNodeCtor<JsiRadialGradientNode> {
336
- public:
337
- explicit JsiRadialGradientNode(std::shared_ptr<RNSkPlatformContext> context)
338
- : JsiBaseGradientNode(context, "skRadialGradient") {}
339
-
340
- void decorate(DeclarationContext *context) override {
341
- JsiBaseGradientNode::decorate(context);
342
-
343
- auto c = _centerProp->getDerivedValue();
344
- auto r = _radiusProp->value().getAsNumber();
345
- auto shader = SkGradientShader::MakeRadial(
346
- *c, r, _colors, _positions, _colorCount, _mode, _flags, _matrix);
347
- context->getShaders()->push(shader);
348
- }
349
-
350
- protected:
351
- void defineProperties(NodePropsContainer *container) override {
352
- JsiBaseGradientNode::defineProperties(container);
353
- _centerProp = container->defineProperty<PointProp>("c");
354
- _radiusProp = container->defineProperty<NodeProp>("r");
355
-
356
- _centerProp->require();
357
- _radiusProp->require();
358
- }
359
-
360
- private:
361
- PointProp *_centerProp;
362
- NodeProp *_radiusProp;
363
- };
364
-
365
- class JsiSweepGradientNode : public JsiBaseGradientNode,
366
- public JsiDomNodeCtor<JsiSweepGradientNode> {
367
- public:
368
- explicit JsiSweepGradientNode(std::shared_ptr<RNSkPlatformContext> context)
369
- : JsiBaseGradientNode(context, "skSweepGradient") {}
370
-
371
- void decorate(DeclarationContext *context) override {
372
- JsiBaseGradientNode::decorate(context);
373
-
374
- auto start = _startProp->isSet() ? _startProp->value().getAsNumber() : 0;
375
- auto end = _endProp->isSet() ? _endProp->value().getAsNumber() : 360;
376
- auto c = _centerProp->getDerivedValue();
377
-
378
- context->getShaders()->push(SkGradientShader::MakeSweep(
379
- c->x(), c->y(), _colors, _positions, _colorCount, _mode, start, end,
380
- _flags, _matrix));
381
- }
382
-
383
- protected:
384
- void defineProperties(NodePropsContainer *container) override {
385
- JsiBaseGradientNode::defineProperties(container);
386
- _startProp = container->defineProperty<NodeProp>("start");
387
- _endProp = container->defineProperty<NodeProp>("end");
388
- _centerProp = container->defineProperty<PointProp>("c");
389
- }
390
-
391
- private:
392
- PointProp *_centerProp;
393
- NodeProp *_startProp;
394
- NodeProp *_endProp;
395
- };
396
-
397
- class JsiTwoPointConicalGradientNode
398
- : public JsiBaseGradientNode,
399
- public JsiDomNodeCtor<JsiTwoPointConicalGradientNode> {
400
- public:
401
- explicit JsiTwoPointConicalGradientNode(
402
- std::shared_ptr<RNSkPlatformContext> context)
403
- : JsiBaseGradientNode(context, "skTwoPointConicalGradient") {}
404
-
405
- void decorate(DeclarationContext *context) override {
406
- JsiBaseGradientNode::decorate(context);
407
-
408
- auto start = _startProp->getDerivedValue();
409
- auto end = _endProp->getDerivedValue();
410
- auto startR = _startRProp->value().getAsNumber();
411
- auto endR = _endRProp->value().getAsNumber();
412
-
413
- context->getShaders()->push(SkGradientShader::MakeTwoPointConical(
414
- *start, startR, *end, endR, _colors, _positions, _colorCount, _mode,
415
- _flags, _matrix));
416
- }
417
-
418
- protected:
419
- void defineProperties(NodePropsContainer *container) override {
420
- JsiBaseGradientNode::defineProperties(container);
421
- _startProp = container->defineProperty<PointProp>("start");
422
- _startRProp = container->defineProperty<NodeProp>("startR");
423
- _endProp = container->defineProperty<PointProp>("end");
424
- _endRProp = container->defineProperty<NodeProp>("endR");
425
- }
426
-
427
- private:
428
- PointProp *_startProp;
429
- NodeProp *_startRProp;
430
- PointProp *_endProp;
431
- NodeProp *_endRProp;
432
- };
433
-
434
- } // namespace RNSkia
@@ -1,44 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
-
5
- #include "TextBlobProp.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class JsiTextBlobNode : public JsiDomDrawingNode,
12
- public JsiDomNodeCtor<JsiTextBlobNode> {
13
- public:
14
- explicit JsiTextBlobNode(std::shared_ptr<RNSkPlatformContext> context)
15
- : JsiDomDrawingNode(context, "skTextBlob") {}
16
-
17
- protected:
18
- void draw(DrawingContext *context) override {
19
- auto blob = _textBlobProp->getDerivedValue();
20
- auto x = _xProp->value().getAsNumber();
21
- auto y = _yProp->value().getAsNumber();
22
-
23
- context->getCanvas()->drawTextBlob(blob, x, y, *context->getPaint());
24
- }
25
-
26
- void defineProperties(NodePropsContainer *container) override {
27
- JsiDomDrawingNode::defineProperties(container);
28
-
29
- _textBlobProp = container->defineProperty<TextBlobProp>("blob");
30
- _xProp = container->defineProperty<NodeProp>("x");
31
- _yProp = container->defineProperty<NodeProp>("y");
32
-
33
- _textBlobProp->require();
34
- _xProp->require();
35
- _yProp->require();
36
- }
37
-
38
- private:
39
- TextBlobProp *_textBlobProp;
40
- NodeProp *_xProp;
41
- NodeProp *_yProp;
42
- };
43
-
44
- } // namespace RNSkia
@@ -1,51 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
-
5
- #include "FontProp.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class JsiTextNode : public JsiDomDrawingNode,
12
- public JsiDomNodeCtor<JsiTextNode> {
13
- public:
14
- explicit JsiTextNode(std::shared_ptr<RNSkPlatformContext> context)
15
- : JsiDomDrawingNode(context, "skText") {}
16
-
17
- protected:
18
- void draw(DrawingContext *context) override {
19
- auto text = _textProp->value().getAsString().c_str();
20
- auto x = _xProp->value().getAsNumber();
21
- auto y = _yProp->value().getAsNumber();
22
- auto font = _fontProp->getDerivedValue();
23
-
24
- if (font != nullptr) {
25
- context->getCanvas()->drawSimpleText(text, strlen(text),
26
- SkTextEncoding::kUTF8, x, y, *font,
27
- *context->getPaint());
28
- }
29
- }
30
-
31
- void defineProperties(NodePropsContainer *container) override {
32
- JsiDomDrawingNode::defineProperties(container);
33
-
34
- _fontProp = container->defineProperty<FontProp>("font");
35
- _textProp = container->defineProperty<NodeProp>("text");
36
- _xProp = container->defineProperty<NodeProp>("x");
37
- _yProp = container->defineProperty<NodeProp>("y");
38
-
39
- _textProp->require();
40
- _xProp->require();
41
- _yProp->require();
42
- }
43
-
44
- private:
45
- FontProp *_fontProp;
46
- NodeProp *_textProp;
47
- NodeProp *_xProp;
48
- NodeProp *_yProp;
49
- };
50
-
51
- } // namespace RNSkia