@shopify/react-native-skia 2.5.4 → 2.6.0

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 (178) hide show
  1. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +7 -7
  2. package/apple/{WebGPUView.h → SkiaWebGPUView.h} +1 -1
  3. package/apple/{WebGPUView.mm → SkiaWebGPUView.mm} +7 -7
  4. package/cpp/api/CustomBlendModes.h +1 -0
  5. package/cpp/api/JsiSkApi.h +4 -0
  6. package/cpp/api/JsiSkCanvas.h +2 -2
  7. package/cpp/api/JsiSkContourMeasureIter.h +1 -1
  8. package/cpp/api/JsiSkPath.h +483 -355
  9. package/cpp/api/JsiSkPathBuilder.h +415 -0
  10. package/cpp/api/JsiSkPathBuilderFactory.h +53 -0
  11. package/cpp/api/JsiSkPathEffectFactory.h +2 -2
  12. package/cpp/api/JsiSkPathFactory.h +274 -3
  13. package/cpp/api/recorder/DataTypes.h +1 -1
  14. package/cpp/api/recorder/Drawings.h +6 -2
  15. package/cpp/rnskia/RNDawnContext.h +21 -0
  16. package/cpp/rnskia/RNDawnUtils.h +115 -113
  17. package/lib/commonjs/animation/functions/interpolatePaths.d.ts +1 -1
  18. package/lib/commonjs/animation/functions/interpolatePaths.js +5 -4
  19. package/lib/commonjs/animation/functions/interpolatePaths.js.map +1 -1
  20. package/lib/commonjs/external/reanimated/interpolators.d.ts +11 -2
  21. package/lib/commonjs/external/reanimated/interpolators.js +21 -4
  22. package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
  23. package/lib/commonjs/skia/types/Path/PathBuilder.d.ts +201 -0
  24. package/lib/commonjs/skia/types/Path/PathBuilder.js +6 -0
  25. package/lib/commonjs/skia/types/Path/PathBuilder.js.map +1 -0
  26. package/lib/commonjs/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  27. package/lib/commonjs/skia/types/Path/PathBuilderFactory.js +6 -0
  28. package/lib/commonjs/skia/types/Path/PathBuilderFactory.js.map +1 -0
  29. package/lib/commonjs/skia/types/Path/PathFactory.d.ts +87 -1
  30. package/lib/commonjs/skia/types/Path/PathFactory.js.map +1 -1
  31. package/lib/commonjs/skia/types/Path/index.d.ts +2 -0
  32. package/lib/commonjs/skia/types/Path/index.js +22 -0
  33. package/lib/commonjs/skia/types/Path/index.js.map +1 -1
  34. package/lib/commonjs/skia/types/Skia.d.ts +2 -1
  35. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  36. package/lib/commonjs/skia/web/Host.js +1 -3
  37. package/lib/commonjs/skia/web/Host.js.map +1 -1
  38. package/lib/commonjs/skia/web/JsiSkCanvas.js +6 -2
  39. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  40. package/lib/commonjs/skia/web/JsiSkContourMeasure.js +4 -1
  41. package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
  42. package/lib/commonjs/skia/web/JsiSkPath.d.ts +42 -30
  43. package/lib/commonjs/skia/web/JsiSkPath.js +302 -111
  44. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  45. package/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +45 -0
  46. package/lib/commonjs/skia/web/JsiSkPathBuilder.js +192 -0
  47. package/lib/commonjs/skia/web/JsiSkPathBuilder.js.map +1 -0
  48. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  49. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.js +26 -0
  50. package/lib/commonjs/skia/web/JsiSkPathBuilderFactory.js.map +1 -0
  51. package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js +6 -2
  52. package/lib/commonjs/skia/web/JsiSkPathEffectFactory.js.map +1 -1
  53. package/lib/commonjs/skia/web/JsiSkPathFactory.d.ts +13 -1
  54. package/lib/commonjs/skia/web/JsiSkPathFactory.js +140 -5
  55. package/lib/commonjs/skia/web/JsiSkPathFactory.js.map +1 -1
  56. package/lib/commonjs/skia/web/JsiSkia.js +8 -1
  57. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  58. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +18 -6
  59. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  60. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  61. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js +2 -3
  62. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  63. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +2 -2
  64. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +2 -3
  65. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +1 -1
  66. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +2 -0
  67. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +1 -1
  68. package/lib/module/animation/functions/interpolatePaths.d.ts +1 -1
  69. package/lib/module/animation/functions/interpolatePaths.js +5 -4
  70. package/lib/module/animation/functions/interpolatePaths.js.map +1 -1
  71. package/lib/module/external/reanimated/interpolators.d.ts +11 -2
  72. package/lib/module/external/reanimated/interpolators.js +21 -4
  73. package/lib/module/external/reanimated/interpolators.js.map +1 -1
  74. package/lib/module/skia/types/Path/PathBuilder.d.ts +201 -0
  75. package/lib/module/skia/types/Path/PathBuilder.js +2 -0
  76. package/lib/module/skia/types/Path/PathBuilder.js.map +1 -0
  77. package/lib/module/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  78. package/lib/module/skia/types/Path/PathBuilderFactory.js +2 -0
  79. package/lib/module/skia/types/Path/PathBuilderFactory.js.map +1 -0
  80. package/lib/module/skia/types/Path/PathFactory.d.ts +87 -1
  81. package/lib/module/skia/types/Path/PathFactory.js.map +1 -1
  82. package/lib/module/skia/types/Path/index.d.ts +2 -0
  83. package/lib/module/skia/types/Path/index.js +2 -0
  84. package/lib/module/skia/types/Path/index.js.map +1 -1
  85. package/lib/module/skia/types/Skia.d.ts +2 -1
  86. package/lib/module/skia/types/Skia.js.map +1 -1
  87. package/lib/module/skia/web/Host.js +1 -3
  88. package/lib/module/skia/web/Host.js.map +1 -1
  89. package/lib/module/skia/web/JsiSkCanvas.js +6 -2
  90. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkContourMeasure.js +4 -1
  92. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  93. package/lib/module/skia/web/JsiSkPath.d.ts +42 -30
  94. package/lib/module/skia/web/JsiSkPath.js +300 -110
  95. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  96. package/lib/module/skia/web/JsiSkPathBuilder.d.ts +45 -0
  97. package/lib/module/skia/web/JsiSkPathBuilder.js +186 -0
  98. package/lib/module/skia/web/JsiSkPathBuilder.js.map +1 -0
  99. package/lib/module/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  100. package/lib/module/skia/web/JsiSkPathBuilderFactory.js +19 -0
  101. package/lib/module/skia/web/JsiSkPathBuilderFactory.js.map +1 -0
  102. package/lib/module/skia/web/JsiSkPathEffectFactory.js +6 -2
  103. package/lib/module/skia/web/JsiSkPathEffectFactory.js.map +1 -1
  104. package/lib/module/skia/web/JsiSkPathFactory.d.ts +13 -1
  105. package/lib/module/skia/web/JsiSkPathFactory.js +141 -6
  106. package/lib/module/skia/web/JsiSkPathFactory.js.map +1 -1
  107. package/lib/module/skia/web/JsiSkia.js +8 -1
  108. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  109. package/lib/module/sksg/Recorder/commands/Drawing.js +18 -6
  110. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  111. package/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  112. package/lib/module/specs/SkiaPictureViewNativeComponent.js +1 -1
  113. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  114. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +2 -2
  115. package/lib/module/specs/WebGPUViewNativeComponent.js +2 -2
  116. package/lib/module/specs/WebGPUViewNativeComponent.js.map +1 -1
  117. package/lib/module/specs/WebGPUViewNativeComponent.web.js +2 -0
  118. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +1 -1
  119. package/lib/typescript/lib/commonjs/animation/functions/interpolatePaths.d.ts +1 -1
  120. package/lib/typescript/lib/commonjs/external/reanimated/interpolators.d.ts +1 -1
  121. package/lib/typescript/lib/commonjs/skia/types/Path/PathBuilder.d.ts +1 -0
  122. package/lib/typescript/lib/commonjs/skia/types/Path/PathBuilderFactory.d.ts +1 -0
  123. package/lib/typescript/lib/commonjs/skia/web/JsiSkPath.d.ts +33 -25
  124. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathBuilder.d.ts +46 -0
  125. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathBuilderFactory.d.ts +7 -0
  126. package/lib/typescript/lib/commonjs/skia/web/JsiSkPathFactory.d.ts +12 -0
  127. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +2 -0
  128. package/lib/typescript/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +2 -1
  129. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +2 -1
  130. package/lib/typescript/lib/module/animation/functions/interpolatePaths.d.ts +1 -1
  131. package/lib/typescript/lib/module/external/reanimated/interpolators.d.ts +1 -1
  132. package/lib/typescript/lib/module/mock/index.d.ts +1 -1
  133. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  134. package/lib/typescript/lib/module/skia/types/Path/PathBuilder.d.ts +1 -0
  135. package/lib/typescript/lib/module/skia/types/Path/PathBuilderFactory.d.ts +1 -0
  136. package/lib/typescript/lib/module/skia/types/Path/index.d.ts +2 -0
  137. package/lib/typescript/lib/module/skia/web/JsiSkPath.d.ts +38 -25
  138. package/lib/typescript/lib/module/skia/web/JsiSkPathBuilder.d.ts +45 -0
  139. package/lib/typescript/lib/module/skia/web/JsiSkPathBuilderFactory.d.ts +6 -0
  140. package/lib/typescript/lib/module/skia/web/JsiSkPathFactory.d.ts +12 -0
  141. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +2 -0
  142. package/lib/typescript/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +1 -1
  143. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +1 -1
  144. package/lib/typescript/src/animation/functions/interpolatePaths.d.ts +1 -1
  145. package/lib/typescript/src/external/reanimated/interpolators.d.ts +11 -2
  146. package/lib/typescript/src/skia/types/Path/PathBuilder.d.ts +201 -0
  147. package/lib/typescript/src/skia/types/Path/PathBuilderFactory.d.ts +13 -0
  148. package/lib/typescript/src/skia/types/Path/PathFactory.d.ts +87 -1
  149. package/lib/typescript/src/skia/types/Path/index.d.ts +2 -0
  150. package/lib/typescript/src/skia/types/Skia.d.ts +2 -1
  151. package/lib/typescript/src/skia/web/JsiSkPath.d.ts +42 -30
  152. package/lib/typescript/src/skia/web/JsiSkPathBuilder.d.ts +45 -0
  153. package/lib/typescript/src/skia/web/JsiSkPathBuilderFactory.d.ts +9 -0
  154. package/lib/typescript/src/skia/web/JsiSkPathFactory.d.ts +13 -1
  155. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.d.ts +2 -2
  156. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +2 -2
  157. package/package.json +4 -3
  158. package/scripts/install-libs.js +16 -6
  159. package/src/animation/functions/interpolatePaths.ts +5 -6
  160. package/src/external/reanimated/interpolators.ts +25 -5
  161. package/src/skia/types/Path/PathBuilder.ts +303 -0
  162. package/src/skia/types/Path/PathBuilderFactory.ts +15 -0
  163. package/src/skia/types/Path/PathFactory.ts +108 -1
  164. package/src/skia/types/Path/index.ts +2 -0
  165. package/src/skia/types/Skia.ts +2 -1
  166. package/src/skia/web/Host.ts +7 -1
  167. package/src/skia/web/JsiSkCanvas.ts +6 -6
  168. package/src/skia/web/JsiSkContourMeasure.ts +4 -4
  169. package/src/skia/web/JsiSkPath.ts +451 -168
  170. package/src/skia/web/JsiSkPathBuilder.ts +293 -0
  171. package/src/skia/web/JsiSkPathBuilderFactory.ts +32 -0
  172. package/src/skia/web/JsiSkPathEffectFactory.ts +6 -2
  173. package/src/skia/web/JsiSkPathFactory.ts +231 -8
  174. package/src/skia/web/JsiSkia.ts +11 -8
  175. package/src/sksg/Recorder/commands/Drawing.ts +20 -7
  176. package/src/specs/SkiaPictureViewNativeComponent.ts +1 -2
  177. package/src/specs/WebGPUViewNativeComponent.ts +3 -3
  178. package/src/specs/WebGPUViewNativeComponent.web.ts +2 -0
@@ -5,24 +5,24 @@ import com.facebook.react.uimanager.ThemedReactContext;
5
5
  import com.facebook.react.uimanager.annotations.ReactProp;
6
6
  import com.facebook.react.views.view.ReactViewGroup;
7
7
  import com.facebook.react.views.view.ReactViewManager;
8
- import com.facebook.react.viewmanagers.WebGPUViewManagerDelegate;
9
- import com.facebook.react.viewmanagers.WebGPUViewManagerInterface;
8
+ import com.facebook.react.viewmanagers.SkiaWebGPUViewManagerDelegate;
9
+ import com.facebook.react.viewmanagers.SkiaWebGPUViewManagerInterface;
10
10
 
11
11
  import androidx.annotation.NonNull;
12
12
  import androidx.annotation.Nullable;
13
13
 
14
14
  @ReactModule(name = WebGPUViewManager.NAME)
15
- public class WebGPUViewManager extends ReactViewManager implements WebGPUViewManagerInterface<WebGPUView> {
15
+ public class WebGPUViewManager extends ReactViewManager implements SkiaWebGPUViewManagerInterface<WebGPUView> {
16
16
 
17
- public static final String NAME = "WebGPUView";
17
+ public static final String NAME = "SkiaWebGPUView";
18
18
 
19
- protected WebGPUViewManagerDelegate mDelegate;
19
+ protected SkiaWebGPUViewManagerDelegate mDelegate;
20
20
 
21
21
  public WebGPUViewManager() {
22
- mDelegate = new WebGPUViewManagerDelegate(this);
22
+ mDelegate = new SkiaWebGPUViewManagerDelegate(this);
23
23
  }
24
24
 
25
- protected WebGPUViewManagerDelegate getDelegate() {
25
+ protected SkiaWebGPUViewManagerDelegate getDelegate() {
26
26
  return mDelegate;
27
27
  }
28
28
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  NS_ASSUME_NONNULL_BEGIN
14
14
 
15
- @interface WebGPUView : RCTViewComponentView
15
+ @interface SkiaWebGPUView : RCTViewComponentView
16
16
  @end
17
17
 
18
18
  NS_ASSUME_NONNULL_END
@@ -1,6 +1,6 @@
1
1
  #ifdef RCT_NEW_ARCH_ENABLED
2
2
 
3
- #import "WebGPUView.h"
3
+ #import "SkiaWebGPUView.h"
4
4
 
5
5
  #import <react/renderer/components/rnskia/ComponentDescriptors.h>
6
6
  #import <react/renderer/components/rnskia/EventEmitters.h>
@@ -12,18 +12,18 @@
12
12
 
13
13
  using namespace facebook::react;
14
14
 
15
- @implementation WebGPUView
15
+ @implementation SkiaWebGPUView
16
16
 
17
17
  - (instancetype)initWithFrame:(CGRect)frame {
18
18
  if (self = [super initWithFrame:frame]) {
19
- static const auto defaultProps = std::make_shared<const WebGPUViewProps>();
19
+ static const auto defaultProps = std::make_shared<const SkiaWebGPUViewProps>();
20
20
  _props = defaultProps;
21
21
  }
22
22
  return self;
23
23
  }
24
24
 
25
25
  + (ComponentDescriptorProvider)componentDescriptorProvider {
26
- return concreteComponentDescriptorProvider<WebGPUViewComponentDescriptor>();
26
+ return concreteComponentDescriptorProvider<SkiaWebGPUViewComponentDescriptor>();
27
27
  }
28
28
 
29
29
  - (void)prepareForRecycle {
@@ -46,9 +46,9 @@ using namespace facebook::react;
46
46
  - (void)updateProps:(const Props::Shared &)props
47
47
  oldProps:(const Props::Shared &)oldProps {
48
48
  const auto &oldViewProps =
49
- *std::static_pointer_cast<const WebGPUViewProps>(_props);
49
+ *std::static_pointer_cast<const SkiaWebGPUViewProps>(_props);
50
50
  const auto &newViewProps =
51
- *std::static_pointer_cast<const WebGPUViewProps>(props);
51
+ *std::static_pointer_cast<const SkiaWebGPUViewProps>(props);
52
52
 
53
53
  if (newViewProps.contextId != oldViewProps.contextId) {
54
54
  /*
@@ -72,6 +72,6 @@ using namespace facebook::react;
72
72
 
73
73
  @end
74
74
 
75
- Class<RCTComponentViewProtocol> WebGPUViewCls(void) { return WebGPUView.class; }
75
+ Class<RCTComponentViewProtocol> SkiaWebGPUViewCls(void) { return SkiaWebGPUView.class; }
76
76
 
77
77
  #endif // RCT_NEW_ARCH_ENABLED
@@ -1,6 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include "include/core/SkBlender.h"
4
+ #include "include/core/SkPaint.h"
4
5
  #include "include/core/SkString.h"
5
6
  #include "include/effects/SkRuntimeEffect.h"
6
7
 
@@ -34,6 +34,8 @@
34
34
  #include "JsiSkParagraphBuilder.h"
35
35
  #include "JsiSkParagraphBuilderFactory.h"
36
36
  #include "JsiSkPath.h"
37
+ #include "JsiSkPathBuilder.h"
38
+ #include "JsiSkPathBuilderFactory.h"
37
39
  #include "JsiSkPathEffect.h"
38
40
  #include "JsiSkPathEffectFactory.h"
39
41
  #include "JsiSkPathFactory.h"
@@ -116,6 +118,8 @@ public:
116
118
  std::make_shared<JsiSkPathEffectFactory>(context));
117
119
  installReadonlyProperty("Path",
118
120
  std::make_shared<JsiSkPathFactory>(context));
121
+ installReadonlyProperty("PathBuilder",
122
+ std::make_shared<JsiSkPathBuilderFactory>(context));
119
123
  installReadonlyProperty("ColorFilter",
120
124
  std::make_shared<JsiSkColorFilterFactory>(context));
121
125
  installReadonlyProperty("MaskFilter",
@@ -352,7 +352,7 @@ public:
352
352
  auto path = JsiSkPath::fromValue(runtime, arguments[0]);
353
353
  auto paint = JsiSkPaint::fromValue(runtime, arguments[1]);
354
354
 
355
- _canvas->drawPath(*path, *paint);
355
+ _canvas->drawPath(path->snapshot(), *paint);
356
356
 
357
357
  return jsi::Value::undefined();
358
358
  }
@@ -439,7 +439,7 @@ public:
439
439
  auto path = JsiSkPath::fromValue(runtime, arguments[0]);
440
440
  auto op = (SkClipOp)arguments[1].asNumber();
441
441
  auto doAntiAlias = arguments[2].getBool();
442
- _canvas->clipPath(*path, op, doAntiAlias);
442
+ _canvas->clipPath(path->snapshot(), op, doAntiAlias);
443
443
  return jsi::Value::undefined();
444
444
  }
445
445
 
@@ -69,7 +69,7 @@ public:
69
69
  auto resScale = arguments[2].asNumber();
70
70
  // Return the newly constructed object
71
71
  auto iter = std::make_shared<JsiSkContourMeasureIter>(
72
- std::move(context), *path, forceClosed, resScale);
72
+ std::move(context), path->snapshot(), forceClosed, resScale);
73
73
  return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, iter,
74
74
  context);
75
75
  };