@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,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