@shopify/react-native-skia 2.3.14 → 2.4.1
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.
- package/cpp/api/JsiSkPictureFactory.h +24 -6
- package/cpp/api/recorder/Command.h +12 -0
- package/cpp/api/recorder/JsiRecorder.h +2 -1
- package/cpp/api/recorder/RNRecorder.h +434 -374
- package/lib/commonjs/dom/types/Common.d.ts +1 -0
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/skia/types/Recorder.d.ts +2 -2
- package/lib/commonjs/skia/types/Recorder.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Core.d.ts +2 -1
- package/lib/commonjs/sksg/Recorder/Core.js +0 -42
- package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Debug.d.ts +2 -0
- package/lib/commonjs/sksg/Recorder/Debug.js +86 -0
- package/lib/commonjs/sksg/Recorder/Debug.js.map +1 -0
- package/lib/commonjs/sksg/Recorder/Player.d.ts +1 -1
- package/lib/commonjs/sksg/Recorder/Player.js +51 -7
- package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +2 -2
- package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js +7 -2
- package/lib/commonjs/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Recorder.d.ts +2 -2
- package/lib/commonjs/sksg/Recorder/Recorder.js +7 -3
- package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Visitor.js +14 -6
- package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
- package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
- package/lib/module/dom/types/Common.d.ts +1 -0
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/skia/types/Recorder.d.ts +2 -2
- package/lib/module/skia/types/Recorder.js.map +1 -1
- package/lib/module/sksg/Recorder/Core.d.ts +2 -1
- package/lib/module/sksg/Recorder/Core.js +0 -42
- package/lib/module/sksg/Recorder/Core.js.map +1 -1
- package/lib/module/sksg/Recorder/Debug.d.ts +2 -0
- package/lib/module/sksg/Recorder/Debug.js +79 -0
- package/lib/module/sksg/Recorder/Debug.js.map +1 -0
- package/lib/module/sksg/Recorder/Player.d.ts +1 -1
- package/lib/module/sksg/Recorder/Player.js +50 -5
- package/lib/module/sksg/Recorder/Player.js.map +1 -1
- package/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +2 -2
- package/lib/module/sksg/Recorder/ReanimatedRecorder.js +7 -2
- package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
- package/lib/module/sksg/Recorder/Recorder.d.ts +2 -2
- package/lib/module/sksg/Recorder/Recorder.js +7 -3
- package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/module/sksg/Recorder/Visitor.js +14 -6
- package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
- package/lib/module/views/SkiaPictureView.js.map +1 -1
- package/lib/typescript/lib/commonjs/sksg/Recorder/Debug.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/ReanimatedRecorder.d.ts +1 -1
- package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +1 -1
- package/lib/typescript/lib/module/sksg/Recorder/Debug.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +1 -1
- package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +1 -1
- package/lib/typescript/src/dom/types/Common.d.ts +1 -0
- package/lib/typescript/src/skia/types/Recorder.d.ts +2 -2
- package/lib/typescript/src/sksg/Recorder/Core.d.ts +2 -1
- package/lib/typescript/src/sksg/Recorder/Debug.d.ts +2 -0
- package/lib/typescript/src/sksg/Recorder/Player.d.ts +1 -1
- package/lib/typescript/src/sksg/Recorder/ReanimatedRecorder.d.ts +2 -2
- package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +2 -2
- package/package.json +1 -1
- package/src/dom/types/Common.ts +3 -1
- package/src/skia/types/Recorder.ts +2 -1
- package/src/sksg/Recorder/Core.ts +2 -43
- package/src/sksg/Recorder/Debug.ts +87 -0
- package/src/sksg/Recorder/Player.ts +62 -7
- package/src/sksg/Recorder/ReanimatedRecorder.ts +8 -2
- package/src/sksg/Recorder/Recorder.ts +7 -2
- package/src/sksg/Recorder/Visitor.ts +18 -6
- package/src/views/SkiaPictureView.tsx +7 -1
|
@@ -23,7 +23,7 @@ class JsiSkPictureFactory : public JsiSkHostObject {
|
|
|
23
23
|
public:
|
|
24
24
|
JSI_HOST_FUNCTION(MakePicture) {
|
|
25
25
|
// Handle null case - create JsiSkPicture with nullptr
|
|
26
|
-
if (arguments[0].isNull()) {
|
|
26
|
+
if (arguments[0].isNull() || arguments[0].isUndefined()) {
|
|
27
27
|
auto hostObjectInstance =
|
|
28
28
|
std::make_shared<JsiSkPicture>(getContext(), nullptr);
|
|
29
29
|
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
@@ -33,11 +33,29 @@ public:
|
|
|
33
33
|
if (!arguments[0].isObject()) {
|
|
34
34
|
throw jsi::JSError(runtime, "Expected arraybuffer as first parameter");
|
|
35
35
|
}
|
|
36
|
-
auto
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
auto obj = arguments[0].asObject(runtime);
|
|
37
|
+
|
|
38
|
+
// Check if it's a JsiSkData object first
|
|
39
|
+
if (obj.isHostObject(runtime)) {
|
|
40
|
+
if (auto jsiData = obj.asHostObject<JsiSkData>(runtime)) {
|
|
41
|
+
auto data = jsiData->getObject();
|
|
42
|
+
auto picture = SkPicture::MakeFromData(data.get());
|
|
43
|
+
if (picture != nullptr) {
|
|
44
|
+
auto hostObjectInstance =
|
|
45
|
+
std::make_shared<JsiSkPicture>(getContext(), std::move(picture));
|
|
46
|
+
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
47
|
+
runtime, hostObjectInstance, getContext());
|
|
48
|
+
}
|
|
49
|
+
return jsi::Value::undefined();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Get ArrayBuffer - try buffer property first (Uint8Array, etc.), then direct ArrayBuffer
|
|
54
|
+
jsi::ArrayBuffer buffer = obj.hasProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
|
|
55
|
+
? obj.getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
|
|
56
|
+
.asObject(runtime)
|
|
57
|
+
.getArrayBuffer(runtime)
|
|
58
|
+
: obj.getArrayBuffer(runtime);
|
|
41
59
|
|
|
42
60
|
sk_sp<SkData> data =
|
|
43
61
|
SkData::MakeWithCopy(buffer.data(runtime), buffer.size(runtime));
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <optional>
|
|
5
|
+
#include <vector>
|
|
6
|
+
|
|
3
7
|
namespace RNSkia {
|
|
4
8
|
|
|
5
9
|
enum CommandType {
|
|
@@ -56,4 +60,12 @@ public:
|
|
|
56
60
|
virtual ~Command() = default;
|
|
57
61
|
};
|
|
58
62
|
|
|
63
|
+
class GroupCommand : public Command {
|
|
64
|
+
public:
|
|
65
|
+
std::optional<float> zIndex;
|
|
66
|
+
std::vector<std::unique_ptr<Command>> children;
|
|
67
|
+
|
|
68
|
+
GroupCommand() : Command(CommandType::Group) {}
|
|
69
|
+
};
|
|
70
|
+
|
|
59
71
|
} // namespace RNSkia
|