@shopify/react-native-skia 1.11.1 → 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 (265) 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/src/dom/nodes/index.ts +0 -1
  79. package/src/external/reanimated/renderHelpers.ts +1 -78
  80. package/src/index.ts +0 -1
  81. package/src/renderer/Canvas.tsx +11 -1
  82. package/src/sksg/Container.ts +11 -0
  83. package/src/sksg/Elements.tsx +136 -0
  84. package/src/sksg/Reconciler.ts +2 -0
  85. package/src/views/index.ts +0 -1
  86. package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
  87. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
  88. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
  89. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
  90. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
  91. package/cpp/rnskia/RNSkDomView.cpp +0 -121
  92. package/cpp/rnskia/RNSkDomView.h +0 -97
  93. package/cpp/rnskia/dom/JsiDomApi.h +0 -165
  94. package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
  95. package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
  96. package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
  97. package/cpp/rnskia/dom/base/Declaration.h +0 -86
  98. package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
  99. package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
  100. package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
  101. package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
  102. package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
  103. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
  104. package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
  105. package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
  106. package/cpp/rnskia/dom/base/NodeProp.h +0 -139
  107. package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
  108. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
  109. package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
  110. package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
  111. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
  112. package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
  113. package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
  114. package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
  115. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
  116. package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
  117. package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
  118. package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
  119. package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
  120. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
  121. package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
  122. package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
  123. package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
  124. package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
  125. package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
  126. package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
  127. package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
  128. package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
  129. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
  130. package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
  131. package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
  132. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
  133. package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
  134. package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
  135. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
  136. package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
  137. package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
  138. package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
  139. package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
  140. package/cpp/rnskia/dom/props/BezierProps.h +0 -65
  141. package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
  142. package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
  143. package/cpp/rnskia/dom/props/CircleProp.h +0 -49
  144. package/cpp/rnskia/dom/props/ClipProp.h +0 -57
  145. package/cpp/rnskia/dom/props/ColorProp.h +0 -96
  146. package/cpp/rnskia/dom/props/FontProp.h +0 -42
  147. package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
  148. package/cpp/rnskia/dom/props/LayerProp.h +0 -52
  149. package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
  150. package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
  151. package/cpp/rnskia/dom/props/PaintProps.h +0 -133
  152. package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
  153. package/cpp/rnskia/dom/props/PathProp.h +0 -59
  154. package/cpp/rnskia/dom/props/PictureProp.h +0 -40
  155. package/cpp/rnskia/dom/props/PointProp.h +0 -65
  156. package/cpp/rnskia/dom/props/PointsProp.h +0 -81
  157. package/cpp/rnskia/dom/props/RRectProp.h +0 -222
  158. package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
  159. package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
  160. package/cpp/rnskia/dom/props/RectProp.h +0 -164
  161. package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
  162. package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
  163. package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
  164. package/cpp/rnskia/dom/props/SvgProp.h +0 -45
  165. package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
  166. package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
  167. package/cpp/rnskia/dom/props/TransformProp.h +0 -147
  168. package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
  169. package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
  170. package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
  171. package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
  172. package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
  173. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
  174. package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
  175. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
  176. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
  177. package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
  178. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
  179. package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
  180. package/lib/commonjs/renderer/CanvasOld.js +0 -96
  181. package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
  182. package/lib/commonjs/renderer/Container.d.ts +0 -10
  183. package/lib/commonjs/renderer/Container.js +0 -26
  184. package/lib/commonjs/renderer/Container.js.map +0 -1
  185. package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
  186. package/lib/commonjs/renderer/HostComponents.js +0 -141
  187. package/lib/commonjs/renderer/HostComponents.js.map +0 -1
  188. package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
  189. package/lib/commonjs/renderer/HostConfig.js +0 -157
  190. package/lib/commonjs/renderer/HostConfig.js.map +0 -1
  191. package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
  192. package/lib/commonjs/renderer/Reconciler.js +0 -44
  193. package/lib/commonjs/renderer/Reconciler.js.map +0 -1
  194. package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  195. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
  196. package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
  197. package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
  198. package/lib/commonjs/views/SkiaDomView.js +0 -119
  199. package/lib/commonjs/views/SkiaDomView.js.map +0 -1
  200. package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  201. package/lib/commonjs/views/SkiaDomView.web.js +0 -2
  202. package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
  203. package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
  204. package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
  205. package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
  206. package/lib/module/renderer/CanvasOld.d.ts +0 -11
  207. package/lib/module/renderer/CanvasOld.js +0 -87
  208. package/lib/module/renderer/CanvasOld.js.map +0 -1
  209. package/lib/module/renderer/Container.d.ts +0 -10
  210. package/lib/module/renderer/Container.js +0 -19
  211. package/lib/module/renderer/Container.js.map +0 -1
  212. package/lib/module/renderer/HostComponents.d.ts +0 -129
  213. package/lib/module/renderer/HostComponents.js +0 -134
  214. package/lib/module/renderer/HostComponents.js.map +0 -1
  215. package/lib/module/renderer/HostConfig.d.ts +0 -18
  216. package/lib/module/renderer/HostConfig.js +0 -150
  217. package/lib/module/renderer/HostConfig.js.map +0 -1
  218. package/lib/module/renderer/Reconciler.d.ts +0 -9
  219. package/lib/module/renderer/Reconciler.js +0 -36
  220. package/lib/module/renderer/Reconciler.js.map +0 -1
  221. package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  222. package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
  223. package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
  224. package/lib/module/views/SkiaDomView.d.ts +0 -33
  225. package/lib/module/views/SkiaDomView.js +0 -111
  226. package/lib/module/views/SkiaDomView.js.map +0 -1
  227. package/lib/module/views/SkiaDomView.web.d.ts +0 -0
  228. package/lib/module/views/SkiaDomView.web.js +0 -2
  229. package/lib/module/views/SkiaDomView.web.js.map +0 -1
  230. package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
  231. package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
  232. package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
  233. package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
  234. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
  235. package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
  236. package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
  237. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
  238. package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
  239. package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
  240. package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
  241. package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
  242. package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
  243. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
  244. package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
  245. package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
  246. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
  247. package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
  248. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
  249. package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
  250. package/lib/typescript/src/renderer/Container.d.ts +0 -10
  251. package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
  252. package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
  253. package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
  254. package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
  255. package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
  256. package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
  257. package/src/dom/nodes/JsiSkDOM.ts +0 -298
  258. package/src/renderer/CanvasOld.tsx +0 -126
  259. package/src/renderer/Container.tsx +0 -19
  260. package/src/renderer/HostComponents.ts +0 -399
  261. package/src/renderer/HostConfig.ts +0 -258
  262. package/src/renderer/Reconciler.tsx +0 -54
  263. package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
  264. package/src/views/SkiaDomView.tsx +0 -124
  265. 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