@shopify/react-native-skia 1.11.1 → 1.11.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (266) hide show
  1. package/android/CMakeLists.txt +0 -8
  2. package/android/cpp/jni/JniLoad.cpp +0 -2
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -1
  4. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerDelegate.java +4 -2
  5. package/cpp/jsi/ViewProperty.h +5 -16
  6. package/cpp/rnskia/RNSkManager.cpp +1 -7
  7. package/lib/commonjs/dom/nodes/index.d.ts +0 -1
  8. package/lib/commonjs/dom/nodes/index.js +0 -11
  9. package/lib/commonjs/dom/nodes/index.js.map +1 -1
  10. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -6
  11. package/lib/commonjs/external/reanimated/renderHelpers.js +0 -73
  12. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  13. package/lib/commonjs/index.d.ts +0 -1
  14. package/lib/commonjs/index.js +0 -12
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/renderer/Canvas.d.ts +10 -1
  17. package/lib/commonjs/renderer/Canvas.js +3 -1
  18. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  19. package/lib/commonjs/sksg/Container.d.ts +2 -0
  20. package/lib/commonjs/sksg/Container.js +10 -0
  21. package/lib/commonjs/sksg/Container.js.map +1 -1
  22. package/lib/commonjs/sksg/Elements.d.ts +65 -0
  23. package/lib/commonjs/sksg/Elements.js +6 -0
  24. package/lib/commonjs/sksg/Elements.js.map +1 -0
  25. package/lib/commonjs/sksg/Reconciler.d.ts +1 -0
  26. package/lib/commonjs/sksg/Reconciler.js +2 -0
  27. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  28. package/lib/commonjs/views/index.d.ts +0 -1
  29. package/lib/commonjs/views/index.js +0 -11
  30. package/lib/commonjs/views/index.js.map +1 -1
  31. package/lib/module/dom/nodes/index.d.ts +0 -1
  32. package/lib/module/dom/nodes/index.js +0 -1
  33. package/lib/module/dom/nodes/index.js.map +1 -1
  34. package/lib/module/external/reanimated/renderHelpers.d.ts +0 -6
  35. package/lib/module/external/reanimated/renderHelpers.js +0 -68
  36. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  37. package/lib/module/index.d.ts +0 -1
  38. package/lib/module/index.js +0 -1
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/renderer/Canvas.d.ts +10 -1
  41. package/lib/module/renderer/Canvas.js +1 -0
  42. package/lib/module/renderer/Canvas.js.map +1 -1
  43. package/lib/module/sksg/Container.d.ts +2 -0
  44. package/lib/module/sksg/Container.js +10 -0
  45. package/lib/module/sksg/Container.js.map +1 -1
  46. package/lib/module/sksg/Elements.d.ts +65 -0
  47. package/lib/module/sksg/Elements.js +2 -0
  48. package/lib/module/sksg/Elements.js.map +1 -0
  49. package/lib/module/sksg/Reconciler.d.ts +1 -0
  50. package/lib/module/sksg/Reconciler.js +2 -0
  51. package/lib/module/sksg/Reconciler.js.map +1 -1
  52. package/lib/module/views/index.d.ts +0 -1
  53. package/lib/module/views/index.js +0 -1
  54. package/lib/module/views/index.js.map +1 -1
  55. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -3
  56. package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +1 -0
  57. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -0
  58. package/lib/typescript/lib/commonjs/sksg/Elements.d.ts +1 -0
  59. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -0
  60. package/lib/typescript/lib/module/dom/nodes/index.d.ts +0 -1
  61. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -3
  62. package/lib/typescript/lib/module/index.d.ts +0 -1
  63. package/lib/typescript/lib/module/mock/index.d.ts +0 -1
  64. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -0
  65. package/lib/typescript/lib/module/sksg/Container.d.ts +2 -0
  66. package/lib/typescript/lib/module/sksg/Elements.d.ts +1 -0
  67. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -0
  68. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  69. package/lib/typescript/src/dom/nodes/index.d.ts +0 -1
  70. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -6
  71. package/lib/typescript/src/index.d.ts +0 -1
  72. package/lib/typescript/src/renderer/Canvas.d.ts +10 -1
  73. package/lib/typescript/src/sksg/Container.d.ts +2 -0
  74. package/lib/typescript/src/sksg/Elements.d.ts +65 -0
  75. package/lib/typescript/src/sksg/Reconciler.d.ts +1 -0
  76. package/lib/typescript/src/views/index.d.ts +0 -1
  77. package/package.json +1 -1
  78. package/react-native-skia.podspec +1 -1
  79. package/src/dom/nodes/index.ts +0 -1
  80. package/src/external/reanimated/renderHelpers.ts +1 -78
  81. package/src/index.ts +0 -1
  82. package/src/renderer/Canvas.tsx +11 -1
  83. package/src/sksg/Container.ts +11 -0
  84. package/src/sksg/Elements.tsx +136 -0
  85. package/src/sksg/Reconciler.ts +2 -0
  86. package/src/views/index.ts +0 -1
  87. package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
  88. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
  89. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
  90. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
  91. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
  92. package/cpp/rnskia/RNSkDomView.cpp +0 -121
  93. package/cpp/rnskia/RNSkDomView.h +0 -97
  94. package/cpp/rnskia/dom/JsiDomApi.h +0 -165
  95. package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
  96. package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
  97. package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
  98. package/cpp/rnskia/dom/base/Declaration.h +0 -86
  99. package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
  100. package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
  101. package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
  102. package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
  103. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
  104. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
  105. package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
  106. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
  107. package/cpp/rnskia/dom/base/NodeProp.h +0 -139
  108. package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
  109. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
  110. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
  111. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
  112. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
  113. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
  114. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
  115. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
  116. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
  117. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
  118. package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
  119. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
  120. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
  121. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
  122. package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
  123. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
  124. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
  125. package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
  126. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
  127. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
  128. package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
  129. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
  130. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
  131. package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
  132. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
  133. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
  134. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
  135. package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
  136. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
  137. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
  138. package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
  139. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
  140. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
  141. package/cpp/rnskia/dom/props/BezierProps.h +0 -65
  142. package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
  143. package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
  144. package/cpp/rnskia/dom/props/CircleProp.h +0 -49
  145. package/cpp/rnskia/dom/props/ClipProp.h +0 -57
  146. package/cpp/rnskia/dom/props/ColorProp.h +0 -96
  147. package/cpp/rnskia/dom/props/FontProp.h +0 -42
  148. package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
  149. package/cpp/rnskia/dom/props/LayerProp.h +0 -52
  150. package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
  151. package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
  152. package/cpp/rnskia/dom/props/PaintProps.h +0 -133
  153. package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
  154. package/cpp/rnskia/dom/props/PathProp.h +0 -59
  155. package/cpp/rnskia/dom/props/PictureProp.h +0 -40
  156. package/cpp/rnskia/dom/props/PointProp.h +0 -65
  157. package/cpp/rnskia/dom/props/PointsProp.h +0 -81
  158. package/cpp/rnskia/dom/props/RRectProp.h +0 -222
  159. package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
  160. package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
  161. package/cpp/rnskia/dom/props/RectProp.h +0 -164
  162. package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
  163. package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
  164. package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
  165. package/cpp/rnskia/dom/props/SvgProp.h +0 -45
  166. package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
  167. package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
  168. package/cpp/rnskia/dom/props/TransformProp.h +0 -147
  169. package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
  170. package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
  171. package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
  172. package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
  173. package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
  174. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
  175. package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
  176. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
  177. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
  178. package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
  179. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
  180. package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
  181. package/lib/commonjs/renderer/CanvasOld.js +0 -96
  182. package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
  183. package/lib/commonjs/renderer/Container.d.ts +0 -10
  184. package/lib/commonjs/renderer/Container.js +0 -26
  185. package/lib/commonjs/renderer/Container.js.map +0 -1
  186. package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
  187. package/lib/commonjs/renderer/HostComponents.js +0 -141
  188. package/lib/commonjs/renderer/HostComponents.js.map +0 -1
  189. package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
  190. package/lib/commonjs/renderer/HostConfig.js +0 -157
  191. package/lib/commonjs/renderer/HostConfig.js.map +0 -1
  192. package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
  193. package/lib/commonjs/renderer/Reconciler.js +0 -44
  194. package/lib/commonjs/renderer/Reconciler.js.map +0 -1
  195. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  196. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
  197. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
  198. package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
  199. package/lib/commonjs/views/SkiaDomView.js +0 -119
  200. package/lib/commonjs/views/SkiaDomView.js.map +0 -1
  201. package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  202. package/lib/commonjs/views/SkiaDomView.web.js +0 -2
  203. package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
  204. package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
  205. package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
  206. package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
  207. package/lib/module/renderer/CanvasOld.d.ts +0 -11
  208. package/lib/module/renderer/CanvasOld.js +0 -87
  209. package/lib/module/renderer/CanvasOld.js.map +0 -1
  210. package/lib/module/renderer/Container.d.ts +0 -10
  211. package/lib/module/renderer/Container.js +0 -19
  212. package/lib/module/renderer/Container.js.map +0 -1
  213. package/lib/module/renderer/HostComponents.d.ts +0 -129
  214. package/lib/module/renderer/HostComponents.js +0 -134
  215. package/lib/module/renderer/HostComponents.js.map +0 -1
  216. package/lib/module/renderer/HostConfig.d.ts +0 -18
  217. package/lib/module/renderer/HostConfig.js +0 -150
  218. package/lib/module/renderer/HostConfig.js.map +0 -1
  219. package/lib/module/renderer/Reconciler.d.ts +0 -9
  220. package/lib/module/renderer/Reconciler.js +0 -36
  221. package/lib/module/renderer/Reconciler.js.map +0 -1
  222. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  223. package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
  224. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
  225. package/lib/module/views/SkiaDomView.d.ts +0 -33
  226. package/lib/module/views/SkiaDomView.js +0 -111
  227. package/lib/module/views/SkiaDomView.js.map +0 -1
  228. package/lib/module/views/SkiaDomView.web.d.ts +0 -0
  229. package/lib/module/views/SkiaDomView.web.js +0 -2
  230. package/lib/module/views/SkiaDomView.web.js.map +0 -1
  231. package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
  232. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
  233. package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
  234. package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
  235. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
  236. package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
  237. package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
  238. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
  239. package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  240. package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
  241. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
  242. package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
  243. package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
  244. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
  245. package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
  246. package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
  247. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
  248. package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
  249. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
  250. package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
  251. package/lib/typescript/src/renderer/Container.d.ts +0 -10
  252. package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
  253. package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
  254. package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
  255. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  256. package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
  257. package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
  258. package/src/dom/nodes/JsiSkDOM.ts +0 -298
  259. package/src/renderer/CanvasOld.tsx +0 -126
  260. package/src/renderer/Container.tsx +0 -19
  261. package/src/renderer/HostComponents.ts +0 -399
  262. package/src/renderer/HostConfig.ts +0 -258
  263. package/src/renderer/Reconciler.tsx +0 -54
  264. package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
  265. package/src/views/SkiaDomView.tsx +0 -124
  266. package/src/views/SkiaDomView.web.tsx +0 -0
@@ -1,361 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiColorFilterNodes.h"
4
- #include "JsiDomDeclarationNode.h"
5
- #include "JsiShaderNodes.h"
6
- #include "JsiSkRuntimeEffect.h"
7
-
8
- #include "NodeProp.h"
9
- #include "RadiusProp.h"
10
- #include "TileModeProp.h"
11
- #include "UniformsProp.h"
12
-
13
- #include <memory>
14
- #include <string>
15
-
16
- #pragma clang diagnostic push
17
- #pragma clang diagnostic ignored "-Wdocumentation"
18
-
19
- #include "include/core/SkImageFilter.h"
20
-
21
- #pragma clang diagnostic pop
22
-
23
- namespace RNSkia {
24
-
25
- class JsiBaseImageFilterNode : public JsiDomDeclarationNode {
26
- public:
27
- JsiBaseImageFilterNode(std::shared_ptr<RNSkPlatformContext> context,
28
- const char *type)
29
- : JsiDomDeclarationNode(context, type, DeclarationType::ImageFilter) {}
30
-
31
- protected:
32
- void composeAndPush(DeclarationContext *context, sk_sp<SkImageFilter> imgf1) {
33
- context->save();
34
- decorateChildren(context);
35
- auto imgf2 = context->getImageFilters()->popAsOne();
36
- auto cf = context->getColorFilters()->popAsOne();
37
- context->restore();
38
- if (cf != nullptr) {
39
- imgf2 = SkImageFilters::Compose(imgf2,
40
- SkImageFilters::ColorFilter(cf, nullptr));
41
- }
42
- auto imgf =
43
- imgf2 != nullptr ? SkImageFilters::Compose(imgf1, imgf2) : imgf1;
44
-
45
- context->getImageFilters()->push(imgf);
46
- }
47
- };
48
-
49
- class JsiBlendImageFilterNode : public JsiBaseImageFilterNode,
50
- public JsiDomNodeCtor<JsiBlendImageFilterNode> {
51
- public:
52
- explicit JsiBlendImageFilterNode(std::shared_ptr<RNSkPlatformContext> context)
53
- : JsiBaseImageFilterNode(context, "skBlendImageFilter") {}
54
-
55
- void decorate(DeclarationContext *context) override {
56
-
57
- if (getChildren().size() != 2) {
58
- throw std::runtime_error("Blend image filter needs two child nodes.");
59
- }
60
-
61
- auto background = context->getImageFilters()->pop();
62
- auto foreground = context->getImageFilters()->pop();
63
-
64
- SkBlendMode blendMode = *_blendModeProp->getDerivedValue();
65
- composeAndPush(context,
66
- SkImageFilters::Blend(blendMode, background, foreground));
67
- }
68
-
69
- protected:
70
- void defineProperties(NodePropsContainer *container) override {
71
- JsiDomDeclarationNode::defineProperties(container);
72
- _blendModeProp = container->defineProperty<BlendModeProp>("mode");
73
- _blendModeProp->require();
74
- }
75
-
76
- private:
77
- BlendModeProp *_blendModeProp;
78
- };
79
-
80
- class JsiDropShadowImageFilterNode
81
- : public JsiBaseImageFilterNode,
82
- public JsiDomNodeCtor<JsiDropShadowImageFilterNode> {
83
- public:
84
- explicit JsiDropShadowImageFilterNode(
85
- std::shared_ptr<RNSkPlatformContext> context)
86
- : JsiBaseImageFilterNode(context, "skDropShadowImageFilter") {}
87
-
88
- void decorate(DeclarationContext *context) override {
89
-
90
- auto color = _colorProp->getDerivedValue();
91
- auto dx = _dxProp->value().getAsNumber();
92
- auto dy = _dyProp->value().getAsNumber();
93
- auto blur = _blurProp->value().getAsNumber();
94
- auto input = context->getImageFilters()->pop();
95
-
96
- auto inner = _innerProp->isSet() && _innerProp->value().getAsBool();
97
- auto shadowOnly =
98
- _shadowOnlyProp->isSet() && _shadowOnlyProp->value().getAsBool();
99
-
100
- if (inner) {
101
- auto srcGraphic = SkImageFilters::ColorFilter(
102
- SkColorFilters::Blend(SK_ColorBLACK, SkBlendMode::kDst), nullptr);
103
- auto srcAlpha = SkImageFilters::ColorFilter(
104
- SkColorFilters::Blend(SK_ColorBLACK, SkBlendMode::kSrcIn), nullptr);
105
- auto f1 = SkImageFilters::ColorFilter(
106
- SkColorFilters::Blend(*color, SkBlendMode::kSrcOut), nullptr);
107
- auto f2 = SkImageFilters::Offset(dx, dy, f1);
108
- auto f3 = SkImageFilters::Blur(blur, blur, SkTileMode::kDecal, f2);
109
- auto f4 = SkImageFilters::Blend(SkBlendMode::kSrcIn, srcAlpha, f3);
110
- if (shadowOnly) {
111
- composeAndPush(context, f4);
112
- } else {
113
- composeAndPush(context, SkImageFilters::Compose(
114
- input ? input : nullptr,
115
- SkImageFilters::Blend(SkBlendMode::kSrcOver,
116
- srcGraphic, f4)));
117
- }
118
-
119
- } else {
120
- composeAndPush(
121
- context,
122
- shadowOnly ? SkImageFilters::DropShadowOnly(
123
- dx, dy, blur, blur, *color, input ? input : nullptr)
124
- : SkImageFilters::DropShadow(dx, dy, blur, blur, *color,
125
- input ? input : nullptr));
126
- }
127
- }
128
-
129
- protected:
130
- void defineProperties(NodePropsContainer *container) override {
131
- JsiDomDeclarationNode::defineProperties(container);
132
- _dxProp = container->defineProperty<NodeProp>("dx");
133
- _dyProp = container->defineProperty<NodeProp>("dy");
134
- _blurProp = container->defineProperty<NodeProp>("blur");
135
- _colorProp = container->defineProperty<ColorProp>("color");
136
-
137
- _innerProp = container->defineProperty<NodeProp>("inner");
138
- _shadowOnlyProp = container->defineProperty<NodeProp>("shadowOnly");
139
-
140
- _dxProp->require();
141
- _dyProp->require();
142
- _blurProp->require();
143
- _colorProp->require();
144
- }
145
-
146
- private:
147
- NodeProp *_dxProp;
148
- NodeProp *_dyProp;
149
- NodeProp *_blurProp;
150
- ColorProp *_colorProp;
151
- NodeProp *_innerProp;
152
- NodeProp *_shadowOnlyProp;
153
- };
154
-
155
- class JsiDisplacementMapImageFilterNode
156
- : public JsiBaseImageFilterNode,
157
- public JsiDomNodeCtor<JsiDisplacementMapImageFilterNode> {
158
- public:
159
- explicit JsiDisplacementMapImageFilterNode(
160
- std::shared_ptr<RNSkPlatformContext> context)
161
- : JsiBaseImageFilterNode(context, "skDisplacementMapImageFilter") {}
162
-
163
- void decorate(DeclarationContext *context) override {
164
- decorateChildren(context);
165
- auto channelX =
166
- getColorChannelFromStringValue(_channelXProp->value().getAsString());
167
- auto channelY =
168
- getColorChannelFromStringValue(_channelYProp->value().getAsString());
169
- auto scale = _scaleProp->value().getAsNumber();
170
- auto shader = context->getShaders()->pop();
171
- if (!shader) {
172
- throw std::runtime_error("DisplacementMap expects a shader as child");
173
- }
174
- auto map = SkImageFilters::Shader(shader);
175
- auto input = context->getImageFilters()->pop();
176
- auto imgf = SkImageFilters::DisplacementMap(channelX, channelY, scale, map,
177
- input ? input : nullptr);
178
- context->getImageFilters()->push(imgf);
179
- }
180
-
181
- protected:
182
- void defineProperties(NodePropsContainer *container) override {
183
- JsiDomDeclarationNode::defineProperties(container);
184
- _channelXProp = container->defineProperty<NodeProp>("channelX");
185
- _channelYProp = container->defineProperty<NodeProp>("channelY");
186
- _scaleProp = container->defineProperty<NodeProp>("scale");
187
-
188
- _channelXProp->require();
189
- _channelYProp->require();
190
- _scaleProp->require();
191
- }
192
-
193
- private:
194
- SkColorChannel getColorChannelFromStringValue(const std::string &value) {
195
- if (value == "r") {
196
- return SkColorChannel::kR;
197
- } else if (value == "g") {
198
- return SkColorChannel::kG;
199
- } else if (value == "b") {
200
- return SkColorChannel::kB;
201
- } else if (value == "a") {
202
- return SkColorChannel::kA;
203
- }
204
- throw std::runtime_error("Value \"" + value +
205
- "\" is not a valid color channel.");
206
- }
207
-
208
- NodeProp *_channelXProp;
209
- NodeProp *_channelYProp;
210
- NodeProp *_scaleProp;
211
- };
212
-
213
- class JsiBlurImageFilterNode : public JsiBaseImageFilterNode,
214
- public JsiDomNodeCtor<JsiBlurImageFilterNode> {
215
- public:
216
- explicit JsiBlurImageFilterNode(std::shared_ptr<RNSkPlatformContext> context)
217
- : JsiBaseImageFilterNode(context, "skBlurImageFilter") {}
218
-
219
- void decorate(DeclarationContext *context) override {
220
- auto input = context->getImageFilters()->pop();
221
- auto imageFilter = SkImageFilters::Blur(
222
- _blurProp->getDerivedValue()->x(), _blurProp->getDerivedValue()->y(),
223
- _tileModeProp->isSet() ? *_tileModeProp->getDerivedValue()
224
- : SkTileMode::kDecal,
225
- input);
226
- composeAndPush(context, imageFilter);
227
- }
228
-
229
- protected:
230
- void defineProperties(NodePropsContainer *container) override {
231
- JsiDomDeclarationNode::defineProperties(container);
232
- _blurProp = container->defineProperty<RadiusProp>("blur");
233
- _tileModeProp = container->defineProperty<TileModeProp>("mode");
234
-
235
- _blurProp->require();
236
- }
237
-
238
- private:
239
- RadiusProp *_blurProp;
240
- TileModeProp *_tileModeProp;
241
- };
242
-
243
- class JsiOffsetImageFilterNode
244
- : public JsiBaseImageFilterNode,
245
- public JsiDomNodeCtor<JsiOffsetImageFilterNode> {
246
- public:
247
- explicit JsiOffsetImageFilterNode(
248
- std::shared_ptr<RNSkPlatformContext> context)
249
- : JsiBaseImageFilterNode(context, "skOffsetImageFilter") {}
250
-
251
- void decorate(DeclarationContext *context) override {
252
- decorateChildren(context);
253
- auto input = context->getImageFilters()->pop();
254
- composeAndPush(context,
255
- SkImageFilters::Offset(_xProp->value().getAsNumber(),
256
- _yProp->value().getAsNumber(),
257
- input ? input : nullptr));
258
- }
259
-
260
- protected:
261
- void defineProperties(NodePropsContainer *container) override {
262
- JsiDomDeclarationNode::defineProperties(container);
263
- _xProp = container->defineProperty<NodeProp>("x");
264
- _yProp = container->defineProperty<NodeProp>("y");
265
-
266
- _xProp->require();
267
- _yProp->require();
268
- }
269
-
270
- private:
271
- NodeProp *_xProp;
272
- NodeProp *_yProp;
273
- };
274
-
275
- class JsiMorphologyImageFilterNode
276
- : public JsiBaseImageFilterNode,
277
- public JsiDomNodeCtor<JsiMorphologyImageFilterNode> {
278
- public:
279
- enum Type { Dilate, Erode };
280
-
281
- explicit JsiMorphologyImageFilterNode(
282
- std::shared_ptr<RNSkPlatformContext> context)
283
- : JsiBaseImageFilterNode(context, "skMorphologyImageFilter") {}
284
-
285
- void decorate(DeclarationContext *context) override {
286
- auto op = getTypeFromStringValue(_operatorProp->value().getAsString());
287
- auto radius = _radiusProp->getDerivedValue();
288
- auto input = context->getImageFilters()->pop();
289
-
290
- if (op == Type::Dilate) {
291
- composeAndPush(context, SkImageFilters::Dilate(radius->x(), radius->y(),
292
- input ? input : nullptr));
293
- } else {
294
- composeAndPush(context, SkImageFilters::Erode(radius->x(), radius->y(),
295
- input ? input : nullptr));
296
- }
297
- }
298
-
299
- protected:
300
- void defineProperties(NodePropsContainer *container) override {
301
- JsiDomDeclarationNode::defineProperties(container);
302
- _operatorProp = container->defineProperty<NodeProp>("operator");
303
- _radiusProp = container->defineProperty<RadiusProp>("radius");
304
-
305
- _operatorProp->require();
306
- _radiusProp->require();
307
- }
308
-
309
- private:
310
- Type getTypeFromStringValue(const std::string &value) {
311
- if (value == "erode") {
312
- return Type::Erode;
313
- } else if (value == "dilate") {
314
- return Type::Dilate;
315
- }
316
- throw std::runtime_error("Value \"" + value +
317
- "\" is not valid for the operator property in the "
318
- "MorphologyImageFilter component.");
319
- }
320
- NodeProp *_operatorProp;
321
- RadiusProp *_radiusProp;
322
- };
323
-
324
- class JsiRuntimeShaderImageFilterNode
325
- : public JsiBaseImageFilterNode,
326
- public JsiDomNodeCtor<JsiRuntimeShaderImageFilterNode> {
327
- public:
328
- explicit JsiRuntimeShaderImageFilterNode(
329
- std::shared_ptr<RNSkPlatformContext> context)
330
- : JsiBaseImageFilterNode(context, "skRuntimeShaderImageFilter") {}
331
-
332
- void decorate(DeclarationContext *context) override {
333
- auto source = _sourceProp->value().getAs<JsiSkRuntimeEffect>();
334
- if (source == nullptr) {
335
- throw std::runtime_error("Expected runtime effect when reading source "
336
- "property of RuntimeEffectImageFilter.");
337
- }
338
-
339
- auto builder = SkRuntimeShaderBuilder(source->getObject());
340
- auto input = context->getImageFilters()->pop();
341
- _uniformsProp->processUniforms(builder);
342
-
343
- composeAndPush(context, SkImageFilters::RuntimeShader(builder, "", input));
344
- }
345
-
346
- protected:
347
- void defineProperties(NodePropsContainer *container) override {
348
- JsiDomDeclarationNode::defineProperties(container);
349
- _sourceProp = container->defineProperty<NodeProp>("source");
350
- _uniformsProp =
351
- container->defineProperty<UniformsProp>("uniforms", _sourceProp);
352
-
353
- _sourceProp->require();
354
- }
355
-
356
- private:
357
- NodeProp *_sourceProp;
358
- UniformsProp *_uniformsProp;
359
- };
360
-
361
- } // namespace RNSkia
@@ -1,43 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "SamplingProp.h"
5
- #include "SkImageProps.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class JsiImageNode : public JsiDomDrawingNode,
12
- public JsiDomNodeCtor<JsiImageNode> {
13
- public:
14
- explicit JsiImageNode(std::shared_ptr<RNSkPlatformContext> context)
15
- : JsiDomDrawingNode(context, "skImage") {}
16
-
17
- protected:
18
- void draw(DrawingContext *context) override {
19
- auto rects = _imageProps->getDerivedValue();
20
- auto image = _imageProps->getImage();
21
- if (image == nullptr) {
22
- return;
23
- }
24
- auto sampling = _samplingProp->isSet()
25
- ? *_samplingProp->getDerivedValue()
26
- : SkSamplingOptions(SkFilterMode::kLinear);
27
- context->getCanvas()->drawImageRect(image, rects->src, rects->dst, sampling,
28
- context->getPaint().get(),
29
- SkCanvas::kStrict_SrcRectConstraint);
30
- }
31
-
32
- void defineProperties(NodePropsContainer *container) override {
33
- JsiDomDrawingNode::defineProperties(container);
34
- _imageProps = container->defineProperty<ImageProps>();
35
- _samplingProp = container->defineProperty<SamplingProp>("sampling");
36
- }
37
-
38
- private:
39
- ImageProps *_imageProps;
40
- SamplingProp *_samplingProp;
41
- };
42
-
43
- } // namespace RNSkia
@@ -1,63 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "RectProp.h"
5
- #include "SvgProp.h"
6
-
7
- #include <memory>
8
-
9
- namespace RNSkia {
10
-
11
- class JsiImageSvgNode : public JsiDomDrawingNode,
12
- public JsiDomNodeCtor<JsiImageSvgNode> {
13
- public:
14
- explicit JsiImageSvgNode(std::shared_ptr<RNSkPlatformContext> context)
15
- : JsiDomDrawingNode(context, "skImageSvg") {}
16
-
17
- protected:
18
- void draw(DrawingContext *context) override {
19
- auto svgDom = _svgDomProp->getDerivedValue();
20
- if (svgDom != nullptr) {
21
- auto rect = _rectProp->getDerivedValue();
22
- auto x = _xProp->isSet() ? _xProp->value().getAsNumber() : -1;
23
- auto y = _yProp->isSet() ? _yProp->value().getAsNumber() : -1;
24
- auto width = _widthProp->isSet() ? _widthProp->value().getAsNumber() : -1;
25
- auto height =
26
- _widthProp->isSet() ? _heightProp->value().getAsNumber() : -1;
27
- context->getCanvas()->save();
28
- if (rect != nullptr) {
29
- context->getCanvas()->translate(rect->x(), rect->y());
30
- svgDom->setContainerSize(SkSize::Make(rect->width(), rect->height()));
31
- } else {
32
- if (x != -1 && y != -1) {
33
- context->getCanvas()->translate(x, y);
34
- }
35
- if (width != -1 && height != -1) {
36
- svgDom->setContainerSize(SkSize::Make(width, height));
37
- }
38
- }
39
- svgDom->render(context->getCanvas());
40
- context->getCanvas()->restore();
41
- }
42
- }
43
-
44
- void defineProperties(NodePropsContainer *container) override {
45
- JsiDomDrawingNode::defineProperties(container);
46
- _svgDomProp = container->defineProperty<SvgProp>("svg");
47
- _rectProp = container->defineProperty<RectProps>("rect");
48
- _xProp = container->defineProperty<NodeProp>("x");
49
- _yProp = container->defineProperty<NodeProp>("y");
50
- _widthProp = container->defineProperty<NodeProp>("width");
51
- _heightProp = container->defineProperty<NodeProp>("height");
52
- }
53
-
54
- private:
55
- SvgProp *_svgDomProp;
56
- RectProps *_rectProp;
57
- NodeProp *_xProp;
58
- NodeProp *_yProp;
59
- NodeProp *_widthProp;
60
- NodeProp *_heightProp;
61
- };
62
-
63
- } // namespace RNSkia
@@ -1,74 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiBoxShadowNode.h"
4
- #include "JsiDomRenderNode.h"
5
- #include "JsiPaintNode.h"
6
-
7
- #include <memory>
8
- #include <vector>
9
-
10
- namespace RNSkia {
11
-
12
- class JsiLayerNode : public JsiDomRenderNode,
13
- public JsiDomNodeCtor<JsiLayerNode> {
14
- public:
15
- explicit JsiLayerNode(std::shared_ptr<RNSkPlatformContext> context)
16
- : JsiDomRenderNode(context, "skLayer") {}
17
-
18
- protected:
19
- void renderNode(DrawingContext *context) override {
20
-
21
- auto hasLayer = false;
22
- auto children = getChildren();
23
-
24
- // Is the first children a layer?
25
- for (size_t i = 0; i < children.size(); ++i) {
26
- if (i == 0) {
27
- // Check for paint node as layer
28
- if (children.at(i)->getNodeClass() == NodeClass::DeclarationNode) {
29
- auto declarationNode =
30
- std::static_pointer_cast<JsiDomDeclarationNode>(children.at(i));
31
-
32
- if (declarationNode->getDeclarationType() == DeclarationType::Paint) {
33
- // Yes, it is a paint node - which we can use as a layer.
34
- auto declarationContext = context->getDeclarationContext();
35
- auto layerNode =
36
- std::static_pointer_cast<JsiDomDeclarationNode>(children.at(i));
37
-
38
- // Save canvas with the paint node's paint!
39
- declarationContext->save();
40
- layerNode->decorate(declarationContext);
41
- auto paint = declarationContext->getPaints()->pop();
42
- declarationContext->restore();
43
-
44
- if (paint) {
45
- hasLayer = true;
46
- context->getCanvas()->saveLayer(
47
- SkCanvas::SaveLayerRec(nullptr, paint.get(), nullptr, 0));
48
- }
49
-
50
- continue;
51
- }
52
- }
53
- }
54
-
55
- // Render rest of the children
56
- if (children.at(i)->getNodeClass() == NodeClass::RenderNode) {
57
- std::static_pointer_cast<JsiDomRenderNode>(children.at(i))
58
- ->render(context);
59
- }
60
- }
61
-
62
- if (hasLayer) {
63
- context->getCanvas()->restore();
64
- }
65
- }
66
-
67
- void defineProperties(NodePropsContainer *container) override {
68
- JsiDomRenderNode::defineProperties(container);
69
- }
70
-
71
- private:
72
- };
73
-
74
- } // namespace RNSkia
@@ -1,38 +0,0 @@
1
- #pragma once
2
-
3
- #include "JsiDomDrawingNode.h"
4
- #include "PointProp.h"
5
-
6
- #include <memory>
7
-
8
- namespace RNSkia {
9
-
10
- class JsiLineNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiLineNode> {
12
- public:
13
- explicit JsiLineNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skLine") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- context->getCanvas()->drawLine(
19
- _p1Prop->getDerivedValue()->x(), _p1Prop->getDerivedValue()->y(),
20
- _p2Prop->getDerivedValue()->x(), _p2Prop->getDerivedValue()->y(),
21
- *context->getPaint());
22
- }
23
-
24
- void defineProperties(NodePropsContainer *container) override {
25
- JsiDomDrawingNode::defineProperties(container);
26
- _p1Prop = container->defineProperty<PointProp>("p1");
27
- _p2Prop = container->defineProperty<PointProp>("p2");
28
-
29
- _p1Prop->require();
30
- _p2Prop->require();
31
- }
32
-
33
- private:
34
- PointProp *_p1Prop;
35
- PointProp *_p2Prop;
36
- };
37
-
38
- } // namespace RNSkia
@@ -1,32 +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 JsiOvalNode : public JsiDomDrawingNode,
11
- public JsiDomNodeCtor<JsiOvalNode> {
12
- public:
13
- explicit JsiOvalNode(std::shared_ptr<RNSkPlatformContext> context)
14
- : JsiDomDrawingNode(context, "skOval") {}
15
-
16
- protected:
17
- void draw(DrawingContext *context) override {
18
- context->getCanvas()->drawOval(*_rectProp->getDerivedValue(),
19
- *context->getPaint());
20
- }
21
-
22
- void defineProperties(NodePropsContainer *container) override {
23
- JsiDomDrawingNode::defineProperties(container);
24
- _rectProp = container->defineProperty<RectProps>("rect");
25
- _rectProp->require();
26
- }
27
-
28
- private:
29
- RectProps *_rectProp;
30
- };
31
-
32
- } // namespace RNSkia