@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,32 +0,0 @@
1
- package com.shopify.reactnative.skia;
2
-
3
- import com.facebook.react.uimanager.ThemedReactContext;
4
- import com.facebook.react.viewmanagers.SkiaDomViewManagerInterface;
5
- import com.facebook.react.viewmanagers.SkiaDomViewManagerDelegate;
6
-
7
- import androidx.annotation.NonNull;
8
-
9
- public class SkiaDomViewManager extends SkiaBaseViewManager<SkiaDomView> implements SkiaDomViewManagerInterface<SkiaDomView> {
10
-
11
- protected SkiaDomViewManagerDelegate mDelegate;
12
-
13
- SkiaDomViewManager() {
14
- mDelegate = new SkiaDomViewManagerDelegate(this);
15
- }
16
-
17
- protected SkiaDomViewManagerDelegate getDelegate() {
18
- return mDelegate;
19
- }
20
-
21
- @NonNull
22
- @Override
23
- public String getName() {
24
- return "SkiaDomView";
25
- }
26
-
27
- @NonNull
28
- @Override
29
- public SkiaDomView createViewInstance(@NonNull ThemedReactContext reactContext) {
30
- return new SkiaDomView(reactContext);
31
- }
32
- }
@@ -1,34 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaDelegate.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
- import com.facebook.react.uimanager.BaseViewManagerInterface;
16
-
17
- public class SkiaDomViewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & SkiaDomViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
- public SkiaDomViewManagerDelegate(U viewManager) {
19
- super(viewManager);
20
- }
21
- @Override
22
- public void setProperty(T view, String propName, @Nullable Object value) {
23
- switch (propName) {
24
- case "opaque":
25
- mViewManager.setOpaque(view, value != null && (boolean) value);
26
- break;
27
- case "debug":
28
- mViewManager.setDebug(view, value != null && (boolean) value);
29
- break;
30
- default:
31
- super.setProperty(view, propName, value);
32
- }
33
- }
34
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaInterface.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
-
15
- public interface SkiaDomViewManagerInterface<T extends View> {
16
- void setDebug(T view, boolean value);
17
- void setOpaque(T view, boolean value);
18
- }
@@ -1,121 +0,0 @@
1
- #include "RNSkDomView.h"
2
- #include "DrawingContext.h"
3
-
4
- #include <chrono>
5
- #include <utility>
6
-
7
- #pragma clang diagnostic push
8
- #pragma clang diagnostic ignored "-Wdocumentation"
9
-
10
- #include "include/core/SkFont.h"
11
-
12
- #pragma clang diagnostic pop
13
-
14
- namespace RNSkia {
15
-
16
- RNSkDomRenderer::RNSkDomRenderer(std::function<void()> requestRedraw,
17
- std::shared_ptr<RNSkPlatformContext> context)
18
- : RNSkRenderer(requestRedraw), _platformContext(std::move(context)),
19
- _renderLock(std::make_shared<std::timed_mutex>()),
20
- _renderTimingInfo("SKIA/RENDER") {}
21
-
22
- RNSkDomRenderer::~RNSkDomRenderer() {
23
- if (_root != nullptr) {
24
- _root->dispose(true);
25
- _root = nullptr;
26
- }
27
- }
28
-
29
- void RNSkDomRenderer::renderImmediate(
30
- std::shared_ptr<RNSkCanvasProvider> canvasProvider) {
31
- auto prevDebugOverlay = getShowDebugOverlays();
32
- setShowDebugOverlays(false);
33
- canvasProvider->renderToCanvas(std::bind(
34
- &RNSkDomRenderer::renderCanvas, this, std::placeholders::_1,
35
- canvasProvider->getScaledWidth(), canvasProvider->getScaledHeight()));
36
- setShowDebugOverlays(prevDebugOverlay);
37
- }
38
-
39
- void RNSkDomRenderer::setRoot(std::shared_ptr<JsiDomRenderNode> node) {
40
- std::lock_guard<std::mutex> lock(_rootLock);
41
- if (_root != nullptr) {
42
- _root->dispose(true);
43
- _root = nullptr;
44
- }
45
- _root = node;
46
- }
47
-
48
- void RNSkDomRenderer::renderCanvas(SkCanvas *canvas, float scaledWidth,
49
- float scaledHeight) {
50
- _renderTimingInfo.beginTiming();
51
-
52
- auto pd = _platformContext->getPixelDensity();
53
- canvas->clear(SK_ColorTRANSPARENT);
54
- canvas->save();
55
- canvas->scale(pd, pd);
56
-
57
- if (_drawingContext == nullptr) {
58
- _drawingContext = std::make_shared<DrawingContext>();
59
-
60
- _drawingContext->setRequestRedraw([weakSelf = weak_from_this()]() {
61
- auto self = weakSelf.lock();
62
- if (self) {
63
- self->_requestRedraw();
64
- }
65
- });
66
- }
67
-
68
- _drawingContext->setScaledWidth(scaledWidth);
69
- _drawingContext->setScaledHeight(scaledHeight);
70
-
71
- // Update canvas before drawing
72
- _drawingContext->setCanvas(canvas);
73
-
74
- try {
75
- // Ask the root node to render to the provided canvas
76
- std::lock_guard<std::mutex> lock(_rootLock);
77
- if (_root != nullptr) {
78
- _root->commitPendingChanges();
79
- _root->render(_drawingContext.get());
80
- _root->resetPendingChanges();
81
- }
82
- } catch (std::runtime_error err) {
83
- _platformContext->raiseError(err);
84
- } catch (jsi::JSError err) {
85
- _platformContext->raiseError(err);
86
- } catch (...) {
87
- _platformContext->raiseError(
88
- std::runtime_error("Error rendering the Skia view."));
89
- }
90
-
91
- renderDebugOverlays(canvas);
92
-
93
- canvas->restore();
94
-
95
- _renderTimingInfo.stopTiming();
96
- }
97
-
98
- void RNSkDomRenderer::renderDebugOverlays(SkCanvas *canvas) {
99
- if (!getShowDebugOverlays()) {
100
- return;
101
- }
102
- auto renderAvg = _renderTimingInfo.getAverage();
103
- auto fps = _renderTimingInfo.getFps();
104
-
105
- // Build string
106
- std::ostringstream stream;
107
- stream << "render: " << renderAvg << "ms"
108
- << " fps: " << fps;
109
-
110
- std::string debugString = stream.str();
111
-
112
- // Set up debug font/paints
113
- auto font = SkFont();
114
- font.setSize(14);
115
- auto paint = SkPaint();
116
- paint.setColor(SkColors::kRed);
117
- canvas->drawSimpleText(debugString.c_str(), debugString.size(),
118
- SkTextEncoding::kUTF8, 8, 18, font, paint);
119
- }
120
-
121
- } // namespace RNSkia
@@ -1,97 +0,0 @@
1
- #pragma once
2
-
3
- #include <functional>
4
- #include <memory>
5
- #include <mutex>
6
- #include <string>
7
- #include <unordered_map>
8
- #include <vector>
9
-
10
- #include <jsi/jsi.h>
11
-
12
- #include "RNSkView.h"
13
- #include "ViewProperty.h"
14
-
15
- #include "JsiDomRenderNode.h"
16
- #include "RNSkLog.h"
17
- #include "RNSkPlatformContext.h"
18
- #include "RNSkTimingInfo.h"
19
-
20
- #pragma clang diagnostic push
21
- #pragma clang diagnostic ignored "-Wdocumentation"
22
-
23
- #include "include/core/SkBBHFactory.h"
24
- #include "include/core/SkCanvas.h"
25
- #include "include/core/SkPictureRecorder.h"
26
-
27
- #pragma clang diagnostic pop
28
-
29
- class SkPicture;
30
- class SkRect;
31
- class SkImage;
32
-
33
- namespace RNSkia {
34
- class JsiSkCanvas;
35
- namespace jsi = facebook::jsi;
36
-
37
- class RNSkDomRenderer : public RNSkRenderer,
38
- public std::enable_shared_from_this<RNSkDomRenderer> {
39
- public:
40
- RNSkDomRenderer(std::function<void()> requestRedraw,
41
- std::shared_ptr<RNSkPlatformContext> context);
42
-
43
- ~RNSkDomRenderer();
44
-
45
- void
46
- renderImmediate(std::shared_ptr<RNSkCanvasProvider> canvasProvider) override;
47
-
48
- void setRoot(std::shared_ptr<JsiDomRenderNode> node);
49
-
50
- private:
51
- void renderCanvas(SkCanvas *canvas, float scaledWidth, float scaledHeight);
52
- void renderDebugOverlays(SkCanvas *canvas);
53
-
54
- std::shared_ptr<RNSkPlatformContext> _platformContext;
55
-
56
- std::shared_ptr<std::timed_mutex> _renderLock;
57
-
58
- std::shared_ptr<JsiDomRenderNode> _root;
59
- std::shared_ptr<DrawingContext> _drawingContext;
60
-
61
- RNSkTimingInfo _renderTimingInfo;
62
-
63
- std::mutex _rootLock;
64
- };
65
-
66
- class RNSkDomView : public RNSkView {
67
- public:
68
- /**
69
- * Constructor
70
- */
71
- RNSkDomView(std::shared_ptr<RNSkPlatformContext> context,
72
- std::shared_ptr<RNSkCanvasProvider> canvasProvider)
73
- : RNSkView(context, canvasProvider,
74
- std::make_shared<RNSkDomRenderer>(
75
- std::bind(&RNSkView::requestRedraw, this), context)) {}
76
-
77
- void setJsiProperties(
78
- std::unordered_map<std::string, ViewProperty> &props) override {
79
-
80
- for (auto &prop : props) {
81
- if (prop.first == "root") {
82
- // Save root
83
- if (prop.second.isNull()) {
84
- std::static_pointer_cast<RNSkDomRenderer>(getRenderer())
85
- ->setRoot(nullptr);
86
- } else {
87
- std::static_pointer_cast<RNSkDomRenderer>(getRenderer())
88
- ->setRoot(prop.second.getDomRenderNode());
89
- }
90
-
91
- // Request redraw
92
- requestRedraw();
93
- }
94
- }
95
- }
96
- };
97
- } // namespace RNSkia
@@ -1,165 +0,0 @@
1
- #pragma once
2
-
3
- /* Enable output of dom trees and paint contexts */
4
- #define SKIA_DOM_DEBUG 0
5
- #define SKIA_DOM_DEBUG_VERBOSE 0
6
-
7
- #include <memory>
8
-
9
- #include "JsiHostObject.h"
10
-
11
- #include "nodes/JsiAtlasNode.h"
12
- #include "nodes/JsiCircleNode.h"
13
- #include "nodes/JsiDiffRectNode.h"
14
- #include "nodes/JsiFillNode.h"
15
- #include "nodes/JsiGroupNode.h"
16
- #include "nodes/JsiImageNode.h"
17
- #include "nodes/JsiLineNode.h"
18
- #include "nodes/JsiOvalNode.h"
19
- #include "nodes/JsiPatchNode.h"
20
- #include "nodes/JsiPathNode.h"
21
- #include "nodes/JsiPointsNode.h"
22
- #include "nodes/JsiRRectNode.h"
23
- #include "nodes/JsiRectNode.h"
24
-
25
- #include "nodes/JsiBlurMaskNode.h"
26
- #include "nodes/JsiImageSvgNode.h"
27
- #include "nodes/JsiPictureNode.h"
28
- #include "nodes/JsiVerticesNode.h"
29
-
30
- #include "nodes/JsiColorFilterNodes.h"
31
- #include "nodes/JsiImageFilterNodes.h"
32
- #include "nodes/JsiPathEffectNodes.h"
33
- #include "nodes/JsiShaderNodes.h"
34
-
35
- #include "nodes/JsiPaintNode.h"
36
-
37
- #include "nodes/JsiBackdropFilterNode.h"
38
- #include "nodes/JsiBlendNode.h"
39
- #include "nodes/JsiBoxNode.h"
40
- #include "nodes/JsiBoxShadowNode.h"
41
-
42
- #include "nodes/JsiGlyphsNode.h"
43
- #include "nodes/JsiTextBlobNode.h"
44
- #include "nodes/JsiTextNode.h"
45
- #include "nodes/JsiTextPathNode.h"
46
-
47
- #include "nodes/JsiLayerNode.h"
48
- #include "nodes/JsiParagraphNode.h"
49
-
50
- namespace RNSkia {
51
-
52
- namespace jsi = facebook::jsi;
53
-
54
- class JsiDomApi : public JsiHostObject {
55
- public:
56
- explicit JsiDomApi(std::shared_ptr<RNSkPlatformContext> context)
57
- : JsiHostObject() {
58
-
59
- // Shapes
60
- installFunction("RectNode", JsiRectNode::createCtor(context));
61
- installFunction("RRectNode", JsiRRectNode::createCtor(context));
62
- installFunction("CircleNode", JsiCircleNode::createCtor(context));
63
- installFunction("PathNode", JsiPathNode::createCtor(context));
64
- installFunction("LineNode", JsiLineNode::createCtor(context));
65
- installFunction("ImageNode", JsiImageNode::createCtor(context));
66
- installFunction("OvalNode", JsiOvalNode::createCtor(context));
67
- installFunction("PatchNode", JsiPatchNode::createCtor(context));
68
- installFunction("PointsNode", JsiPointsNode::createCtor(context));
69
- installFunction("DiffRectNode", JsiDiffRectNode::createCtor(context));
70
- installFunction("AtlasNode", JsiAtlasNode::createCtor(context));
71
-
72
- installFunction("FillNode", JsiFillNode::createCtor(context));
73
-
74
- installFunction("GroupNode", JsiGroupNode::createCtor(context));
75
-
76
- installFunction("PaintNode", JsiPaintNode::createCtor(context));
77
-
78
- installFunction("BlurMaskFilterNode", JsiBlurMaskNode::createCtor(context));
79
-
80
- installFunction("PictureNode", JsiPictureNode::createCtor(context));
81
- installFunction("ImageSVGNode", JsiImageSvgNode::createCtor(context));
82
-
83
- installFunction("VerticesNode", JsiVerticesNode::createCtor(context));
84
-
85
- // Path effects
86
- installFunction("DashPathEffectNode",
87
- JsiDashPathEffectNode::createCtor(context));
88
- installFunction("DiscretePathEffectNode",
89
- JsiDiscretePathEffectNode::createCtor(context));
90
- installFunction("CornerPathEffectNode",
91
- JsiCornerPathEffectNode::createCtor(context));
92
- installFunction("Path1DPathEffectNode",
93
- JsiPath1DPathEffectNode::createCtor(context));
94
- installFunction("Path2DPathEffectNode",
95
- JsiPath2DPathEffectNode::createCtor(context));
96
- installFunction("Line2DPathEffectNode",
97
- JsiLine2DPathEffectNode::createCtor(context));
98
- installFunction("SumPathEffectNode",
99
- JsiSumPathEffectNode::createCtor(context));
100
-
101
- // Image filters
102
- installFunction("DashPathEffectNode",
103
- JsiBlendImageFilterNode::createCtor(context));
104
- installFunction("DropShadowImageFilterNode",
105
- JsiDropShadowImageFilterNode::createCtor(context));
106
- installFunction("DisplacementMapImageFilterNode",
107
- JsiDisplacementMapImageFilterNode::createCtor(context));
108
- installFunction("BlurImageFilterNode",
109
- JsiBlurImageFilterNode::createCtor(context));
110
- installFunction("OffsetImageFilterNode",
111
- JsiOffsetImageFilterNode::createCtor(context));
112
- installFunction("MorphologyImageFilterNode",
113
- JsiMorphologyImageFilterNode::createCtor(context));
114
- installFunction("RuntimeShaderImageFilterNode",
115
- JsiRuntimeShaderImageFilterNode::createCtor(context));
116
-
117
- // Color Filters
118
- installFunction("MatrixColorFilterNode",
119
- JsiMatrixColorFilterNode::createCtor(context));
120
- installFunction("BlendColorFilterNode",
121
- JsiBlendColorFilterNode::createCtor(context));
122
- installFunction("LinearToSRGBGammaColorFilterNode",
123
- JsiLinearToSRGBGammaColorFilterNode::createCtor(context));
124
- installFunction("SRGBToLinearGammaColorFilterNode",
125
- JsiSRGBToLinearGammaColorFilterNode::createCtor(context));
126
- installFunction("LumaColorFilterNode",
127
- JsiLumaColorFilterNode::createCtor(context));
128
- installFunction("LerpColorFilterNode",
129
- JsiLerpColorFilterNode::createCtor(context));
130
-
131
- // Shaders
132
- installFunction("ShaderNode", JsiShaderNode::createCtor(context));
133
- installFunction("ImageShaderNode", JsiImageShaderNode::createCtor(context));
134
- installFunction("ColorShaderNode", JsiColorShaderNode::createCtor(context));
135
- installFunction("TurbulenceNode", JsiTurbulenceNode::createCtor(context));
136
- installFunction("FractalNoiseNode",
137
- JsiFractalNoiseNode::createCtor(context));
138
- installFunction("LinearGradientNode",
139
- JsiLinearGradientNode::createCtor(context));
140
- installFunction("RadialGradientNode",
141
- JsiRadialGradientNode::createCtor(context));
142
- installFunction("SweepGradientNode",
143
- JsiSweepGradientNode::createCtor(context));
144
- installFunction("TwoPointConicalGradientNode",
145
- JsiTwoPointConicalGradientNode::createCtor(context));
146
-
147
- installFunction("BackdropFilterNode",
148
- JsiBackdropFilterNode::createCtor(context));
149
- installFunction("BlendNode", JsiBlendNode::createCtor(context));
150
- installFunction("BoxNode", JsiBoxNode::createCtor(context));
151
- installFunction("BoxShadowNode", JsiBoxShadowNode::createCtor(context));
152
-
153
- installFunction("GlyphsNode", JsiGlyphsNode::createCtor(context));
154
- installFunction("TextNode", JsiTextNode::createCtor(context));
155
- installFunction("TextPathNode", JsiTextPathNode::createCtor(context));
156
- installFunction("TextBlobNode", JsiTextBlobNode::createCtor(context));
157
-
158
- installFunction("LayerNode", JsiLayerNode::createCtor(context));
159
-
160
- // Paragraph node
161
- installFunction("ParagraphNode", JsiParagraphNode::createCtor(context));
162
- }
163
- };
164
-
165
- } // namespace RNSkia
@@ -1,72 +0,0 @@
1
- #pragma once
2
-
3
- #include "DrawingContext.h"
4
- #include "JsiValue.h"
5
-
6
- #include <string>
7
-
8
- namespace RNSkia {
9
-
10
- class NodeProp;
11
-
12
- using namespace RNJsi; // NOLINT
13
-
14
- using ReadPropFunc =
15
- std::function<jsi::Value(jsi::Runtime &, PropId, NodeProp *prop)>;
16
-
17
- /**
18
- Base class for Dom Node Properties
19
- */
20
- class BaseNodeProp {
21
- public:
22
- virtual ~BaseNodeProp() {}
23
-
24
- /**
25
- Use to check if the value represented by this property has a usable
26
- (non-null/undefined) value or not.
27
- */
28
- virtual bool isSet() = 0;
29
-
30
- /**
31
- True if the property has changed since we last visited it
32
- */
33
- virtual bool isChanged() = 0;
34
-
35
- /**
36
- Updates any pending values that has happened from other threads, sets flags
37
- for changed.
38
- */
39
- virtual void updatePendingChanges() = 0;
40
-
41
- /*
42
- Marks property flags for changed as resolved
43
- */
44
- virtual void markAsResolved() = 0;
45
-
46
- /**
47
- Override to read the value represented by this property from the Javascript
48
- property object
49
- */
50
- virtual void readValueFromJs(jsi::Runtime &runtime,
51
- const ReadPropFunc &read) = 0;
52
-
53
- /**
54
- Returns the name (or names) in a property
55
- */
56
- virtual std::string getName() = 0;
57
-
58
- /**
59
- Sets the property as required
60
- */
61
- void require() { _isRequired = true; }
62
-
63
- /**
64
- Returns true for required props
65
- */
66
- bool isRequired() { return _isRequired; }
67
-
68
- private:
69
- bool _isRequired = false;
70
- };
71
-
72
- } // namespace RNSkia
@@ -1,117 +0,0 @@
1
- #include "ConcatablePaint.h"
2
-
3
- #include "DeclarationContext.h"
4
- #include "JsiDomNode.h"
5
- #include "PaintProps.h"
6
-
7
- namespace RNSkia {
8
-
9
- ConcatablePaint::ConcatablePaint(
10
- DeclarationContext *declarationContext, PaintProps *paintProps,
11
- const std::vector<std::shared_ptr<JsiDomNode>> &children)
12
- : _declarationContext(declarationContext), _paintProps(paintProps),
13
- _children(children) {
14
-
15
- auto hasPropertyValues = _paintProps->getColor()->isSet() ||
16
- _paintProps->getStrokeWidth()->isSet() ||
17
- _paintProps->getBlendMode()->isSet() ||
18
- _paintProps->getStyle()->isSet() ||
19
- _paintProps->getStrokeJoin()->isSet() ||
20
- _paintProps->getStrokeCap()->isSet() ||
21
- _paintProps->getStrokeMiter()->isSet() ||
22
- _paintProps->getOpacity()->isSet() ||
23
- _paintProps->getAntiAlias()->isSet();
24
-
25
- _declarationContext->save();
26
-
27
- for (auto &child : _children) {
28
- child->decorateContext(_declarationContext);
29
- }
30
-
31
- _imageFilter = declarationContext->getImageFilters()->popAsOne();
32
- _colorFilter = declarationContext->getColorFilters()->popAsOne();
33
- _shader = declarationContext->getShaders()->pop();
34
- _maskFilter = declarationContext->getMaskFilters()->pop();
35
- _pathEffect = declarationContext->getPathEffects()->popAsOne();
36
-
37
- _declarationContext->restore();
38
-
39
- _isEmpty = !hasPropertyValues && _imageFilter == nullptr &&
40
- _colorFilter == nullptr && _shader == nullptr &&
41
- _maskFilter == nullptr && _pathEffect == nullptr;
42
- }
43
-
44
- bool ConcatablePaint::isEmpty() { return _isEmpty; }
45
-
46
- void ConcatablePaint::concatTo(std::shared_ptr<SkPaint> paint) {
47
-
48
- if (_paintProps->getOpacity()->isSet()) {
49
- paint->setAlphaf(paint->getAlphaf() *
50
- _paintProps->getOpacity()->value().getAsNumber());
51
- }
52
-
53
- if (_paintProps->getColor()->isSet()) {
54
- auto currentOpacity = paint->getAlphaf();
55
- paint->setShader(nullptr);
56
- paint->setColor(*_paintProps->getColor()->getDerivedValue());
57
- paint->setAlphaf(paint->getAlphaf() * currentOpacity);
58
- }
59
-
60
- if (_paintProps->getStrokeWidth()->isSet()) {
61
- paint->setStrokeWidth(_paintProps->getStrokeWidth()->value().getAsNumber());
62
- }
63
-
64
- if (_paintProps->getBlendMode()->isSet()) {
65
- paint->setBlendMode(*_paintProps->getBlendMode()->getDerivedValue());
66
- }
67
-
68
- if (_paintProps->getStyle()->isSet()) {
69
- auto styleValue = _paintProps->getStyle()->value().getAsString();
70
- if (styleValue == "stroke") {
71
- paint->setStyle(SkPaint::Style::kStroke_Style);
72
- } else if (styleValue == "fill") {
73
- paint->setStyle(SkPaint::Style::kFill_Style);
74
- } else {
75
- throw std::runtime_error(styleValue +
76
- " is not a valud value for the style property.");
77
- }
78
- }
79
-
80
- if (_paintProps->getStrokeJoin()->isSet()) {
81
- paint->setStrokeJoin(*_paintProps->getStrokeJoin()->getDerivedValue());
82
- }
83
-
84
- if (_paintProps->getStrokeCap()->isSet()) {
85
- paint->setStrokeCap(*_paintProps->getStrokeCap()->getDerivedValue());
86
- }
87
-
88
- if (_paintProps->getStrokeMiter()->isSet()) {
89
- paint->setStrokeMiter(_paintProps->getStrokeMiter()->value().getAsNumber());
90
- }
91
-
92
- if (_paintProps->getAntiAlias()->isSet()) {
93
- paint->setAntiAlias(_paintProps->getAntiAlias()->value().getAsBool());
94
- }
95
-
96
- if (_imageFilter) {
97
- paint->setImageFilter(_imageFilter);
98
- }
99
-
100
- if (_colorFilter) {
101
- paint->setColorFilter(_colorFilter);
102
- }
103
-
104
- if (_shader) {
105
- paint->setShader(_shader);
106
- }
107
-
108
- if (_maskFilter) {
109
- paint->setMaskFilter(_maskFilter);
110
- }
111
-
112
- if (_pathEffect) {
113
- paint->setPathEffect(_pathEffect);
114
- }
115
- }
116
-
117
- } // namespace RNSkia