@shopify/react-native-skia 0.1.154 → 0.1.156

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. package/android/cpp/jni/JniLoad.cpp +5 -5
  2. package/android/cpp/jni/JniPlatformContext.cpp +107 -119
  3. package/android/cpp/jni/JniSkiaManager.cpp +18 -20
  4. package/android/cpp/jni/include/JniPlatformContext.h +41 -45
  5. package/android/cpp/jni/include/JniSkiaBaseView.h +52 -55
  6. package/android/cpp/jni/include/JniSkiaDrawView.h +72 -77
  7. package/android/cpp/jni/include/JniSkiaManager.h +51 -53
  8. package/android/cpp/jni/include/JniSkiaPictureView.h +74 -78
  9. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +36 -45
  10. package/android/cpp/rnskia-android/RNSkAndroidView.h +87 -92
  11. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +62 -65
  12. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.h +20 -17
  13. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +257 -313
  14. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +107 -110
  15. package/cpp/api/JsiSkApi.h +66 -62
  16. package/cpp/api/JsiSkCanvas.h +38 -30
  17. package/cpp/api/JsiSkColor.h +58 -56
  18. package/cpp/api/JsiSkColorFilter.h +5 -3
  19. package/cpp/api/JsiSkColorFilterFactory.h +23 -21
  20. package/cpp/api/JsiSkContourMeasure.h +74 -85
  21. package/cpp/api/JsiSkContourMeasureIter.h +68 -75
  22. package/cpp/api/JsiSkData.h +16 -22
  23. package/cpp/api/JsiSkDataFactory.h +86 -79
  24. package/cpp/api/JsiSkFont.h +286 -311
  25. package/cpp/api/JsiSkHostObjects.h +15 -16
  26. package/cpp/api/JsiSkImage.h +107 -103
  27. package/cpp/api/JsiSkImageFactory.h +34 -36
  28. package/cpp/api/JsiSkImageFilter.h +5 -3
  29. package/cpp/api/JsiSkImageFilterFactory.h +71 -68
  30. package/cpp/api/JsiSkImageInfo.h +41 -38
  31. package/cpp/api/JsiSkMaskFilter.h +5 -3
  32. package/cpp/api/JsiSkMaskFilterFactory.h +2 -3
  33. package/cpp/api/JsiSkMatrix.h +26 -36
  34. package/cpp/api/JsiSkPaint.h +20 -13
  35. package/cpp/api/JsiSkPath.h +70 -85
  36. package/cpp/api/JsiSkPathEffect.h +5 -3
  37. package/cpp/api/JsiSkPathEffectFactory.h +33 -28
  38. package/cpp/api/JsiSkPathFactory.h +68 -67
  39. package/cpp/api/JsiSkPicture.h +28 -22
  40. package/cpp/api/JsiSkPictureFactory.h +13 -12
  41. package/cpp/api/JsiSkPictureRecorder.h +21 -19
  42. package/cpp/api/JsiSkPoint.h +6 -8
  43. package/cpp/api/JsiSkRRect.h +11 -7
  44. package/cpp/api/JsiSkRSXform.h +82 -85
  45. package/cpp/api/JsiSkRect.h +9 -9
  46. package/cpp/api/JsiSkRuntimeEffect.h +182 -186
  47. package/cpp/api/JsiSkRuntimeEffectFactory.h +10 -11
  48. package/cpp/api/JsiSkRuntimeShaderBuilder.h +64 -61
  49. package/cpp/api/JsiSkSVG.h +4 -5
  50. package/cpp/api/JsiSkSVGFactory.h +28 -27
  51. package/cpp/api/JsiSkShader.h +3 -2
  52. package/cpp/api/JsiSkShaderFactory.h +37 -25
  53. package/cpp/api/JsiSkSurface.h +44 -40
  54. package/cpp/api/JsiSkSurfaceFactory.h +22 -22
  55. package/cpp/api/JsiSkTextBlob.h +28 -31
  56. package/cpp/api/JsiSkTextBlobFactory.h +88 -87
  57. package/cpp/api/JsiSkTypeface.h +6 -5
  58. package/cpp/api/JsiSkTypefaceFactory.h +22 -21
  59. package/cpp/api/JsiSkVertices.h +137 -124
  60. package/cpp/api/third_party/CSSColorParser.cpp +161 -174
  61. package/cpp/api/third_party/CSSColorParser.h +172 -96
  62. package/cpp/jsi/JsiHostObject.cpp +11 -9
  63. package/cpp/jsi/JsiHostObject.h +31 -24
  64. package/cpp/jsi/JsiSimpleValueWrapper.h +74 -83
  65. package/cpp/jsi/JsiValueWrapper.h +52 -54
  66. package/cpp/rnskia/RNSkAnimation.h +26 -29
  67. package/cpp/rnskia/RNSkDispatchQueue.cpp +50 -61
  68. package/cpp/rnskia/RNSkDispatchQueue.h +3 -1
  69. package/cpp/rnskia/RNSkInfoParameter.h +12 -12
  70. package/cpp/rnskia/RNSkJsView.cpp +82 -81
  71. package/cpp/rnskia/RNSkJsView.h +45 -41
  72. package/cpp/rnskia/RNSkJsiViewApi.h +99 -89
  73. package/cpp/rnskia/RNSkManager.cpp +8 -7
  74. package/cpp/rnskia/RNSkManager.h +8 -6
  75. package/cpp/rnskia/RNSkPictureView.h +44 -37
  76. package/cpp/rnskia/RNSkPlatformContext.h +39 -28
  77. package/cpp/rnskia/RNSkValueApi.h +33 -34
  78. package/cpp/rnskia/RNSkView.h +108 -93
  79. package/cpp/rnskia/values/RNSkClockValue.h +63 -64
  80. package/cpp/rnskia/values/RNSkComputedValue.h +32 -30
  81. package/cpp/rnskia/values/RNSkReadonlyValue.h +60 -59
  82. package/cpp/rnskia/values/RNSkValue.h +38 -40
  83. package/cpp/utils/RNSkLog.h +9 -7
  84. package/cpp/utils/RNSkMeasureTime.h +7 -7
  85. package/cpp/utils/RNSkTimingInfo.h +27 -24
  86. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +8 -9
  87. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +24 -23
  88. package/ios/RNSkia-iOS/RNSkiOSView.h +16 -13
  89. package/ios/RNSkia-iOS/SkiaUIView.h +9 -8
  90. package/lib/commonjs/dom/nodes/JsiSkDOM.js +6 -0
  91. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  92. package/lib/commonjs/dom/nodes/LayerNode.js +43 -0
  93. package/lib/commonjs/dom/nodes/LayerNode.js.map +1 -0
  94. package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
  95. package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
  96. package/lib/commonjs/dom/types/NodeType.js +1 -0
  97. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  98. package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
  99. package/lib/commonjs/renderer/HostComponents.js +3 -0
  100. package/lib/commonjs/renderer/HostComponents.js.map +1 -1
  101. package/lib/commonjs/renderer/components/Group.js +19 -4
  102. package/lib/commonjs/renderer/components/Group.js.map +1 -1
  103. package/lib/commonjs/renderer/components/Paint.js +6 -1
  104. package/lib/commonjs/renderer/components/Paint.js.map +1 -1
  105. package/lib/commonjs/views/SkiaPictureView.js +3 -2
  106. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  107. package/lib/commonjs/views/SkiaView.js +6 -3
  108. package/lib/commonjs/views/SkiaView.js.map +1 -1
  109. package/lib/module/dom/nodes/JsiSkDOM.js +5 -0
  110. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  111. package/lib/module/dom/nodes/LayerNode.js +32 -0
  112. package/lib/module/dom/nodes/LayerNode.js.map +1 -0
  113. package/lib/module/dom/nodes/RenderNode.js +1 -1
  114. package/lib/module/dom/nodes/RenderNode.js.map +1 -1
  115. package/lib/module/dom/types/NodeType.js +1 -0
  116. package/lib/module/dom/types/NodeType.js.map +1 -1
  117. package/lib/module/dom/types/SkDOM.js.map +1 -1
  118. package/lib/module/renderer/HostComponents.js +3 -0
  119. package/lib/module/renderer/HostComponents.js.map +1 -1
  120. package/lib/module/renderer/components/Group.js +16 -3
  121. package/lib/module/renderer/components/Group.js.map +1 -1
  122. package/lib/module/renderer/components/Paint.js +7 -1
  123. package/lib/module/renderer/components/Paint.js.map +1 -1
  124. package/lib/module/views/SkiaPictureView.js +2 -2
  125. package/lib/module/views/SkiaPictureView.js.map +1 -1
  126. package/lib/module/views/SkiaView.js +4 -2
  127. package/lib/module/views/SkiaView.js.map +1 -1
  128. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +2 -0
  129. package/lib/typescript/src/dom/nodes/LayerNode.d.ts +8 -0
  130. package/lib/typescript/src/dom/types/NodeType.d.ts +1 -0
  131. package/lib/typescript/src/dom/types/SkDOM.d.ts +1 -0
  132. package/lib/typescript/src/renderer/HostComponents.d.ts +2 -1
  133. package/lib/typescript/src/renderer/components/Group.d.ts +5 -1
  134. package/lib/typescript/src/views/SkiaView.d.ts +3 -0
  135. package/libs/android/arm64-v8a/libskottie.a +0 -0
  136. package/libs/android/arm64-v8a/libsksg.a +0 -0
  137. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  138. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  139. package/libs/android/x86/libskottie.a +0 -0
  140. package/libs/android/x86/libsksg.a +0 -0
  141. package/libs/android/x86_64/libskottie.a +0 -0
  142. package/libs/android/x86_64/libsksg.a +0 -0
  143. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  144. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  145. package/libs/ios/libskottie.xcframework/Info.plist +42 -0
  146. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  147. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  148. package/libs/ios/libsksg.xcframework/Info.plist +42 -0
  149. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  150. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  151. package/libs/ios/libskshaper.xcframework/Info.plist +5 -5
  152. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  153. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  154. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  155. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  156. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  157. package/package.json +3 -1
  158. package/src/dom/nodes/JsiSkDOM.ts +5 -0
  159. package/src/dom/nodes/LayerNode.ts +35 -0
  160. package/src/dom/nodes/RenderNode.ts +4 -3
  161. package/src/dom/types/NodeType.ts +1 -0
  162. package/src/dom/types/SkDOM.ts +1 -0
  163. package/src/renderer/HostComponents.ts +3 -0
  164. package/src/renderer/components/Group.tsx +16 -3
  165. package/src/renderer/components/Paint.tsx +7 -1
  166. package/src/views/SkiaPictureView.tsx +2 -3
  167. package/src/views/SkiaView.tsx +2 -2
@@ -3,90 +3,97 @@
3
3
  #include <memory>
4
4
  #include <utility>
5
5
 
6
- #include <jsi/jsi.h>
7
6
  #include <ReactCommon/TurboModuleUtils.h>
7
+ #include <jsi/jsi.h>
8
8
 
9
- #include "JsiSkData.h"
9
+ #include <SkBase64.h>
10
10
 
11
+ #include "JsiSkData.h"
11
12
 
12
13
  namespace RNSkia {
13
14
 
14
- using namespace facebook;
15
-
16
- class JsiSkDataFactory : public JsiSkHostObject {
17
- public:
18
- JSI_HOST_FUNCTION(fromURI) {
19
- auto jsiLocalUri = arguments[0].asString(runtime);
20
- auto localUri = jsiLocalUri.utf8(runtime);
21
- auto context = getContext();
22
- return react::createPromiseAsJSIValue(
23
- runtime,
24
- [context = std::move(context), localUri = std::move(localUri)](jsi::Runtime &runtime,
25
- std::shared_ptr<react::Promise> promise) -> void {
26
- // Create a stream operation - this will be run in a
27
- // separate thread
28
- context->performStreamOperation(
29
- localUri,
30
- [&runtime, context = std::move(context), promise = std::move(promise)](
31
- std::unique_ptr<SkStreamAsset> stream) -> void {
32
- // Schedule drawCallback on the Javascript thread
33
- auto result = SkData::MakeFromStream(stream.get(), stream->getLength());
34
- context->runOnJavascriptThread([&runtime, context = std::move(context), promise = std::move(promise),
35
- result = std::move(result)]() {
36
- promise->resolve(jsi::Object::createFromHostObject(
37
- runtime,
38
- std::make_shared<JsiSkData>(std::move(context),
39
- std::move(result))));
40
- });
41
- });
42
- });
43
- };
44
-
45
- JSI_HOST_FUNCTION(fromBytes) {
46
- auto array = arguments[0].asObject(runtime);
47
- jsi::ArrayBuffer buffer = array
48
- .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
49
- .asObject(runtime)
50
- .getArrayBuffer(runtime);
51
-
52
- auto data = SkData::MakeWithCopy(buffer.data(runtime), buffer.size(runtime));
53
- return jsi::Object::createFromHostObject(runtime,
54
- std::make_shared<JsiSkData>(
55
- getContext(), std::move(data)));
56
- }
57
-
58
- JSI_HOST_FUNCTION(fromBase64) {
59
- auto base64 = arguments[0].asString(runtime);
60
- auto base64Str = base64.utf8(runtime);
61
- auto size = base64Str.size();
62
-
63
- // Calculate length
64
- size_t len;
65
- auto err = SkBase64::Decode(&base64.utf8(runtime).c_str()[0], size, nullptr, &len);
66
- if(err != SkBase64::Error::kNoError) {
67
- throw jsi::JSError(runtime, "Error decoding base64 string");
68
- return jsi::Value::undefined();
69
- }
70
-
71
- // Create data object and decode
72
- auto data = SkData::MakeUninitialized(len);
73
- err = SkBase64::Decode(&base64.utf8(runtime).c_str()[0], size, data->writable_data(), &len);
74
- if(err != SkBase64::Error::kNoError) {
75
- throw jsi::JSError(runtime, "Error decoding base64 string");
76
- return jsi::Value::undefined();
77
- }
78
-
79
- return jsi::Object::createFromHostObject(runtime,
80
- std::make_shared<JsiSkData>(
81
- getContext(), std::move(data)));
82
- }
83
-
84
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkDataFactory, fromURI),
85
- JSI_EXPORT_FUNC(JsiSkDataFactory, fromBytes),
86
- JSI_EXPORT_FUNC(JsiSkDataFactory, fromBase64))
87
-
88
- JsiSkDataFactory(std::shared_ptr<RNSkPlatformContext> context)
89
- : JsiSkHostObject(std::move(context)) {}
90
- };
15
+ namespace jsi = facebook::jsi;
16
+ namespace react = facebook::react;
17
+
18
+ class JsiSkDataFactory : public JsiSkHostObject {
19
+ public:
20
+ JSI_HOST_FUNCTION(fromURI) {
21
+ auto jsiLocalUri = arguments[0].asString(runtime);
22
+ auto localUri = jsiLocalUri.utf8(runtime);
23
+ auto context = getContext();
24
+ return react::createPromiseAsJSIValue(
25
+ runtime,
26
+ [context = std::move(context), localUri = std::move(localUri)](
27
+ jsi::Runtime &runtime,
28
+ std::shared_ptr<react::Promise> promise) -> void {
29
+ // Create a stream operation - this will be run in a
30
+ // separate thread
31
+ context->performStreamOperation(
32
+ localUri,
33
+ [&runtime, context = std::move(context),
34
+ promise = std::move(promise)](
35
+ std::unique_ptr<SkStreamAsset> stream) -> void {
36
+ // Schedule drawCallback on the Javascript thread
37
+ auto result =
38
+ SkData::MakeFromStream(stream.get(), stream->getLength());
39
+ context->runOnJavascriptThread([&runtime,
40
+ context = std::move(context),
41
+ promise = std::move(promise),
42
+ result = std::move(result)]() {
43
+ promise->resolve(jsi::Object::createFromHostObject(
44
+ runtime, std::make_shared<JsiSkData>(std::move(context),
45
+ std::move(result))));
46
+ });
47
+ });
48
+ });
49
+ };
50
+
51
+ JSI_HOST_FUNCTION(fromBytes) {
52
+ auto array = arguments[0].asObject(runtime);
53
+ jsi::ArrayBuffer buffer =
54
+ array.getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
55
+ .asObject(runtime)
56
+ .getArrayBuffer(runtime);
57
+
58
+ auto data =
59
+ SkData::MakeWithCopy(buffer.data(runtime), buffer.size(runtime));
60
+ return jsi::Object::createFromHostObject(
61
+ runtime, std::make_shared<JsiSkData>(getContext(), std::move(data)));
62
+ }
63
+
64
+ JSI_HOST_FUNCTION(fromBase64) {
65
+ auto base64 = arguments[0].asString(runtime);
66
+ auto base64Str = base64.utf8(runtime);
67
+ auto size = base64Str.size();
68
+
69
+ // Calculate length
70
+ size_t len;
71
+ auto err =
72
+ SkBase64::Decode(&base64.utf8(runtime).c_str()[0], size, nullptr, &len);
73
+ if (err != SkBase64::Error::kNoError) {
74
+ throw jsi::JSError(runtime, "Error decoding base64 string");
75
+ return jsi::Value::undefined();
76
+ }
77
+
78
+ // Create data object and decode
79
+ auto data = SkData::MakeUninitialized(len);
80
+ err = SkBase64::Decode(&base64.utf8(runtime).c_str()[0], size,
81
+ data->writable_data(), &len);
82
+ if (err != SkBase64::Error::kNoError) {
83
+ throw jsi::JSError(runtime, "Error decoding base64 string");
84
+ return jsi::Value::undefined();
85
+ }
86
+
87
+ return jsi::Object::createFromHostObject(
88
+ runtime, std::make_shared<JsiSkData>(getContext(), std::move(data)));
89
+ }
90
+
91
+ JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkDataFactory, fromURI),
92
+ JSI_EXPORT_FUNC(JsiSkDataFactory, fromBytes),
93
+ JSI_EXPORT_FUNC(JsiSkDataFactory, fromBase64))
94
+
95
+ explicit JsiSkDataFactory(std::shared_ptr<RNSkPlatformContext> context)
96
+ : JsiSkHostObject(std::move(context)) {}
97
+ };
91
98
 
92
99
  } // namespace RNSkia