@shopify/react-native-skia 1.11.1 → 1.11.3

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 (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