@shopify/react-native-skia 2.2.20 → 2.3.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.
- package/apple/SkiaCVPixelBufferUtils.mm +4 -8
- package/cpp/api/JsiSkCanvas.h +3 -0
- package/cpp/api/JsiSkImage.h +12 -2
- package/cpp/api/JsiSkSVG.h +4 -1
- package/cpp/api/JsiSkSVGFactory.h +127 -8
- package/lib/commonjs/skia/core/SVG.web.d.ts +2 -2
- package/lib/commonjs/skia/core/SVG.web.js +23 -14
- package/lib/commonjs/skia/core/SVG.web.js.map +1 -1
- package/lib/commonjs/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/lib/commonjs/skia/types/SVG/SVGFactory.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js +7 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/skia/core/SVG.web.d.ts +2 -2
- package/lib/module/skia/core/SVG.web.js +23 -14
- package/lib/module/skia/core/SVG.web.js.map +1 -1
- package/lib/module/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/lib/module/skia/types/SVG/SVGFactory.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/module/skia/web/JsiSkCanvas.js +7 -1
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/core/SVG.web.d.ts +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/lib/module/skia/core/SVG.web.d.ts +1 -1
- package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/src/skia/core/SVG.web.d.ts +2 -2
- package/lib/typescript/src/skia/types/SVG/SVGFactory.d.ts +3 -2
- package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -1
- package/libs/apple/libpathops.xcframework/Info.plist +26 -9
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/ios-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/ios-arm64_x86_64-maccatalyst/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/macos-arm64_x86_64/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e/libpathops.a +0 -0
- package/libs/apple/libpathops.xcframework/tvos-arm64_arm64e_x86_64-simulator/libpathops.a +0 -0
- package/libs/apple/libskia.xcframework/Info.plist +24 -7
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/ios-arm64_x86_64-maccatalyst/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskottie.xcframework/Info.plist +32 -15
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/ios-arm64_x86_64-maccatalyst/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskparagraph.xcframework/Info.plist +31 -14
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/ios-arm64_x86_64-maccatalyst/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libsksg.xcframework/Info.plist +26 -9
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/ios-arm64_x86_64-maccatalyst/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libskshaper.xcframework/Info.plist +28 -11
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/ios-arm64_x86_64-maccatalyst/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/Info.plist +25 -8
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_x86_64-maccatalyst/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +27 -10
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_x86_64-maccatalyst/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libsvg.xcframework/Info.plist +29 -12
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/ios-arm64_x86_64-maccatalyst/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +1 -1
- package/src/skia/core/SVG.web.ts +35 -25
- package/src/skia/types/SVG/SVGFactory.ts +11 -2
- package/src/skia/web/JsiSkCanvas.ts +3 -1
@@ -30,16 +30,12 @@
|
|
30
30
|
#include <TargetConditionals.h>
|
31
31
|
#if TARGET_RT_BIG_ENDIAN
|
32
32
|
#define FourCC2Str(fourcc) \
|
33
|
-
(const char[])
|
34
|
-
|
35
|
-
*(((char *)&fourcc) + 3), 0 \
|
36
|
-
}
|
33
|
+
(const char[]){*((char *)&fourcc), *(((char *)&fourcc) + 1), \
|
34
|
+
*(((char *)&fourcc) + 2), *(((char *)&fourcc) + 3), 0}
|
37
35
|
#else
|
38
36
|
#define FourCC2Str(fourcc) \
|
39
|
-
(const char[])
|
40
|
-
|
41
|
-
*(((char *)&fourcc) + 1), *(((char *)&fourcc) + 0), 0 \
|
42
|
-
}
|
37
|
+
(const char[]){*(((char *)&fourcc) + 3), *(((char *)&fourcc) + 2), \
|
38
|
+
*(((char *)&fourcc) + 1), *(((char *)&fourcc) + 0), 0}
|
43
39
|
#endif
|
44
40
|
|
45
41
|
// pragma MARK: TextureHolder
|
package/cpp/api/JsiSkCanvas.h
CHANGED
package/cpp/api/JsiSkImage.h
CHANGED
@@ -17,6 +17,8 @@
|
|
17
17
|
#if defined(SK_GRAPHITE)
|
18
18
|
#include "RNDawnContext.h"
|
19
19
|
#include "include/gpu/graphite/Context.h"
|
20
|
+
#else
|
21
|
+
#include "include/gpu/ganesh/GrDirectContext.h"
|
20
22
|
#endif
|
21
23
|
|
22
24
|
#pragma clang diagnostic push
|
@@ -241,7 +243,15 @@ public:
|
|
241
243
|
auto rasterImage = DawnContext::getInstance().MakeRasterImage(getObject());
|
242
244
|
#else
|
243
245
|
auto grContext = getContext()->getDirectContext();
|
244
|
-
auto
|
246
|
+
auto image = getObject();
|
247
|
+
if (!grContext) {
|
248
|
+
throw jsi::JSError(runtime, "No GPU context available");
|
249
|
+
}
|
250
|
+
if (image && !image->isValid(grContext->asRecorder())) {
|
251
|
+
throw jsi::JSError(runtime, "invoked makeNonTextureImage() on an image "
|
252
|
+
"that does not belong to this context");
|
253
|
+
}
|
254
|
+
auto rasterImage = image->makeRasterImage(grContext);
|
245
255
|
#endif
|
246
256
|
auto hostObjectInstance =
|
247
257
|
std::make_shared<JsiSkImage>(getContext(), std::move(rasterImage));
|
@@ -312,4 +322,4 @@ public:
|
|
312
322
|
}
|
313
323
|
};
|
314
324
|
|
315
|
-
} // namespace RNSkia
|
325
|
+
} // namespace RNSkia
|
package/cpp/api/JsiSkSVG.h
CHANGED
@@ -20,10 +20,13 @@ namespace jsi = facebook::jsi;
|
|
20
20
|
|
21
21
|
class JsiSkSVG : public JsiSkWrappingSkPtrHostObject<SkSVGDOM> {
|
22
22
|
public:
|
23
|
-
JsiSkSVG(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkSVGDOM> svgdom
|
23
|
+
JsiSkSVG(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkSVGDOM> svgdom,
|
24
|
+
sk_sp<skresources::ResourceProvider> resourceProvider = nullptr)
|
24
25
|
: JsiSkWrappingSkPtrHostObject<SkSVGDOM>(std::move(context),
|
25
26
|
std::move(svgdom)) {}
|
26
27
|
|
28
|
+
~JsiSkSVG() = default;
|
29
|
+
|
27
30
|
EXPORT_JSI_API_TYPENAME(JsiSkSVG, SVG)
|
28
31
|
|
29
32
|
JSI_HOST_FUNCTION(width) {
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#pragma once
|
2
2
|
|
3
3
|
#include <memory>
|
4
|
+
#include <unordered_map>
|
4
5
|
#include <utility>
|
5
6
|
|
6
7
|
#include <jsi/jsi.h>
|
@@ -14,6 +15,7 @@
|
|
14
15
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
15
16
|
|
16
17
|
#include "include/core/SkStream.h"
|
18
|
+
#include "modules/skresources/include/SkResources.h"
|
17
19
|
|
18
20
|
#pragma clang diagnostic pop
|
19
21
|
|
@@ -21,24 +23,141 @@ namespace RNSkia {
|
|
21
23
|
|
22
24
|
namespace jsi = facebook::jsi;
|
23
25
|
|
26
|
+
class SVGAssetProvider : public skresources::ResourceProvider {
|
27
|
+
public:
|
28
|
+
using AssetMap = std::unordered_map<std::string, sk_sp<SkData>>;
|
29
|
+
|
30
|
+
static sk_sp<SVGAssetProvider>
|
31
|
+
Make(AssetMap assets, skresources::ImageDecodeStrategy strategy =
|
32
|
+
skresources::ImageDecodeStrategy::kPreDecode) {
|
33
|
+
return sk_sp<SVGAssetProvider>(
|
34
|
+
new SVGAssetProvider(std::move(assets), strategy));
|
35
|
+
}
|
36
|
+
|
37
|
+
// Override loadImageAsset() to handle image loading
|
38
|
+
sk_sp<skresources::ImageAsset>
|
39
|
+
loadImageAsset(const char[] /*path*/, const char name[],
|
40
|
+
const char[] /*id*/) const override {
|
41
|
+
// Identify resources by name only
|
42
|
+
auto it = fAssets.find(name);
|
43
|
+
if (it != fAssets.end()) {
|
44
|
+
// Create ImageAsset from SkData
|
45
|
+
return skresources::MultiFrameImageAsset::Make(it->second, fStrategy);
|
46
|
+
}
|
47
|
+
return nullptr;
|
48
|
+
}
|
49
|
+
|
50
|
+
private:
|
51
|
+
explicit SVGAssetProvider(AssetMap assets,
|
52
|
+
skresources::ImageDecodeStrategy strategy)
|
53
|
+
: fAssets(std::move(assets)), fStrategy(strategy) {}
|
54
|
+
const AssetMap fAssets;
|
55
|
+
const skresources::ImageDecodeStrategy fStrategy;
|
56
|
+
};
|
57
|
+
|
24
58
|
class JsiSkSVGFactory : public JsiSkHostObject {
|
25
59
|
public:
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
60
|
+
// Helper function to parse asset map from JS object
|
61
|
+
static SVGAssetProvider::AssetMap parseAssetMap(jsi::Runtime &runtime,
|
62
|
+
const jsi::Value &jsValue) {
|
63
|
+
SVGAssetProvider::AssetMap assets;
|
64
|
+
|
65
|
+
if (!jsValue.isObject()) {
|
66
|
+
return assets;
|
67
|
+
}
|
68
|
+
|
69
|
+
auto jsAssetMap = jsValue.asObject(runtime);
|
70
|
+
|
71
|
+
// Convert JS object to C++ AssetMap
|
72
|
+
auto propertyNames = jsAssetMap.getPropertyNames(runtime);
|
73
|
+
size_t propertyCount = propertyNames.size(runtime);
|
74
|
+
|
75
|
+
for (size_t i = 0; i < propertyCount; i++) {
|
76
|
+
auto propertyName =
|
77
|
+
propertyNames.getValueAtIndex(runtime, i).asString(runtime);
|
78
|
+
auto key = propertyName.utf8(runtime);
|
79
|
+
auto jsValue = jsAssetMap.getProperty(runtime, propertyName);
|
80
|
+
|
81
|
+
// Skip null or undefined values
|
82
|
+
if (jsValue.isNull() || jsValue.isUndefined()) {
|
83
|
+
continue;
|
84
|
+
}
|
85
|
+
|
86
|
+
if (jsValue.isObject()) {
|
87
|
+
auto jsObject = jsValue.asObject(runtime);
|
88
|
+
if (jsObject.isHostObject(runtime)) {
|
89
|
+
auto hostObject = jsObject.getHostObject(runtime);
|
90
|
+
auto skData = std::dynamic_pointer_cast<JsiSkData>(hostObject);
|
91
|
+
if (skData) {
|
92
|
+
assets[key] = skData->getObject();
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
return assets;
|
99
|
+
}
|
100
|
+
|
101
|
+
private:
|
102
|
+
jsi::Value makeSVGFromStream(jsi::Runtime &runtime,
|
103
|
+
std::unique_ptr<SkMemoryStream> stream,
|
104
|
+
sk_sp<SkFontMgr> fontMgr,
|
105
|
+
SVGAssetProvider::AssetMap assets) {
|
106
|
+
auto builder = SkSVGDOM::Builder();
|
107
|
+
|
108
|
+
if (fontMgr) {
|
109
|
+
builder.setFontManager(fontMgr);
|
110
|
+
}
|
111
|
+
|
112
|
+
auto baseProvider = SVGAssetProvider::Make(
|
113
|
+
std::move(assets), skresources::ImageDecodeStrategy::kPreDecode);
|
114
|
+
auto provider = skresources::DataURIResourceProviderProxy::Make(
|
115
|
+
std::move(baseProvider), skresources::ImageDecodeStrategy::kPreDecode,
|
116
|
+
fontMgr);
|
117
|
+
|
118
|
+
// TODO: this sk_sp subclassing issue needs to be fixed.
|
119
|
+
provider->ref();
|
120
|
+
builder.setResourceProvider(provider);
|
121
|
+
|
122
|
+
auto svg_dom = builder.make(*stream);
|
30
123
|
auto svg = std::make_shared<JsiSkSVG>(getContext(), std::move(svg_dom));
|
31
124
|
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, svg,
|
32
125
|
getContext());
|
33
126
|
}
|
34
127
|
|
128
|
+
public:
|
129
|
+
JSI_HOST_FUNCTION(MakeFromData) {
|
130
|
+
auto data = JsiSkData::fromValue(runtime, arguments[0]);
|
131
|
+
auto stream = SkMemoryStream::Make(data);
|
132
|
+
|
133
|
+
// Parse fontMgr (second parameter)
|
134
|
+
auto fontMgr = count > 1 && arguments[1].isObject()
|
135
|
+
? JsiSkFontMgr::fromValue(runtime, arguments[1])
|
136
|
+
: nullptr;
|
137
|
+
|
138
|
+
// Parse assets map (third parameter)
|
139
|
+
auto assets = count > 2 ? parseAssetMap(runtime, arguments[2])
|
140
|
+
: SVGAssetProvider::AssetMap();
|
141
|
+
|
142
|
+
return makeSVGFromStream(runtime, std::move(stream), fontMgr,
|
143
|
+
std::move(assets));
|
144
|
+
}
|
145
|
+
|
35
146
|
JSI_HOST_FUNCTION(MakeFromString) {
|
36
147
|
auto svgText = arguments[0].asString(runtime).utf8(runtime);
|
37
148
|
auto stream = SkMemoryStream::MakeDirect(svgText.c_str(), svgText.size());
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
149
|
+
|
150
|
+
// Parse fontMgr (second parameter)
|
151
|
+
auto fontMgr = count > 1 && arguments[1].isObject()
|
152
|
+
? JsiSkFontMgr::fromValue(runtime, arguments[1])
|
153
|
+
: nullptr;
|
154
|
+
|
155
|
+
// Parse assets map (third parameter)
|
156
|
+
auto assets = count > 2 ? parseAssetMap(runtime, arguments[2])
|
157
|
+
: SVGAssetProvider::AssetMap();
|
158
|
+
|
159
|
+
return makeSVGFromStream(runtime, std::move(stream), fontMgr,
|
160
|
+
std::move(assets));
|
42
161
|
}
|
43
162
|
|
44
163
|
size_t getMemoryPressure() const override { return 512; }
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import type { DataSourceParam } from "../types";
|
2
|
-
export declare const useSVG: (source: DataSourceParam, onError?: (err: Error) => void) =>
|
1
|
+
import type { DataSourceParam, SkSVG } from "../types";
|
2
|
+
export declare const useSVG: (source: DataSourceParam, onError?: (err: Error) => void) => SkSVG | null;
|
@@ -4,25 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.useSVG = void 0;
|
7
|
+
var _react = require("react");
|
7
8
|
var _Skia = require("../Skia");
|
8
9
|
const useSVG = (source, onError) => {
|
10
|
+
const [svg, setSVG] = (0, _react.useState)(null);
|
9
11
|
if (source === null || source === undefined) {
|
10
12
|
throw new Error(`Invalid svg data source. Got: ${source}`);
|
11
13
|
}
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
(0, _react.useEffect)(() => {
|
15
|
+
(async () => {
|
16
|
+
let src;
|
17
|
+
if (typeof source === "string") {
|
18
|
+
src = source;
|
19
|
+
} else if (typeof source === "object" && "default" in source && typeof source.default === "string") {
|
20
|
+
src = source.default;
|
21
|
+
} else if (typeof source === "object" && "uri" in source) {
|
22
|
+
src = source.uri;
|
23
|
+
} else {
|
24
|
+
throw new Error(`Invalid svg data source. Make sure that the source resolves to a string. Got: ${JSON.stringify(source, null, 2)}`);
|
25
|
+
}
|
26
|
+
const result = await fetch(src);
|
27
|
+
const svgStr = await result.text();
|
28
|
+
const newSvg = _Skia.Skia.SVG.MakeFromString(svgStr);
|
29
|
+
setSVG(newSvg);
|
30
|
+
if (newSvg === null && onError !== undefined) {
|
31
|
+
onError(new Error("Failed to create SVG from source."));
|
32
|
+
}
|
33
|
+
})();
|
34
|
+
}, [onError, source]);
|
26
35
|
return svg;
|
27
36
|
};
|
28
37
|
exports.useSVG = useSVG;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["_react","require","_Skia","useSVG","source","onError","svg","setSVG","useState","undefined","Error","useEffect","src","default","uri","JSON","stringify","result","fetch","svgStr","text","newSvg","Skia","SVG","MakeFromString","exports"],"sources":["SVG.web.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { DataSourceParam, SkSVG } from \"../types\";\n\nexport const useSVG = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => {\n const [svg, setSVG] = useState<SkSVG | null>(null);\n if (source === null || source === undefined) {\n throw new Error(`Invalid svg data source. Got: ${source}`);\n }\n useEffect(() => {\n (async () => {\n let src: string;\n if (typeof source === \"string\") {\n src = source;\n } else if (\n typeof source === \"object\" &&\n \"default\" in source &&\n typeof source.default === \"string\"\n ) {\n src = source.default;\n } else if (typeof source === \"object\" && \"uri\" in source) {\n src = source.uri;\n } else {\n throw new Error(\n `Invalid svg data source. Make sure that the source resolves to a string. Got: ${JSON.stringify(\n source,\n null,\n 2\n )}`\n );\n }\n const result = await fetch(src);\n const svgStr = await result.text();\n const newSvg = Skia.SVG.MakeFromString(svgStr);\n setSVG(newSvg);\n if (newSvg === null && onError !== undefined) {\n onError(new Error(\"Failed to create SVG from source.\"));\n }\n })();\n }, [onError, source]);\n return svg;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAGO,MAAME,MAAM,GAAGA,CACpBC,MAAuB,EACvBC,OAA8B,KAC3B;EACH,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAC,eAAQ,EAAe,IAAI,CAAC;EAClD,IAAIJ,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKK,SAAS,EAAE;IAC3C,MAAM,IAAIC,KAAK,CAAC,iCAAiCN,MAAM,EAAE,CAAC;EAC5D;EACA,IAAAO,gBAAS,EAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAIC,GAAW;MACf,IAAI,OAAOR,MAAM,KAAK,QAAQ,EAAE;QAC9BQ,GAAG,GAAGR,MAAM;MACd,CAAC,MAAM,IACL,OAAOA,MAAM,KAAK,QAAQ,IAC1B,SAAS,IAAIA,MAAM,IACnB,OAAOA,MAAM,CAACS,OAAO,KAAK,QAAQ,EAClC;QACAD,GAAG,GAAGR,MAAM,CAACS,OAAO;MACtB,CAAC,MAAM,IAAI,OAAOT,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAIA,MAAM,EAAE;QACxDQ,GAAG,GAAGR,MAAM,CAACU,GAAG;MAClB,CAAC,MAAM;QACL,MAAM,IAAIJ,KAAK,CACb,iFAAiFK,IAAI,CAACC,SAAS,CAC7FZ,MAAM,EACN,IAAI,EACJ,CACF,CAAC,EACH,CAAC;MACH;MACA,MAAMa,MAAM,GAAG,MAAMC,KAAK,CAACN,GAAG,CAAC;MAC/B,MAAMO,MAAM,GAAG,MAAMF,MAAM,CAACG,IAAI,CAAC,CAAC;MAClC,MAAMC,MAAM,GAAGC,UAAI,CAACC,GAAG,CAACC,cAAc,CAACL,MAAM,CAAC;MAC9CZ,MAAM,CAACc,MAAM,CAAC;MACd,IAAIA,MAAM,KAAK,IAAI,IAAIhB,OAAO,KAAKI,SAAS,EAAE;QAC5CJ,OAAO,CAAC,IAAIK,KAAK,CAAC,mCAAmC,CAAC,CAAC;MACzD;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACL,OAAO,EAAED,MAAM,CAAC,CAAC;EACrB,OAAOE,GAAG;AACZ,CAAC;AAACmB,OAAA,CAAAtB,MAAA,GAAAA,MAAA","ignoreList":[]}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { SkData } from "../Data";
|
2
|
+
import type { SkFontMgr } from "../Font/FontMgr";
|
2
3
|
import type { SkSVG } from "./SVG";
|
3
4
|
export interface SVGFactory {
|
4
|
-
MakeFromData(data: SkData): SkSVG | null;
|
5
|
-
MakeFromString(str: string): SkSVG | null;
|
5
|
+
MakeFromData(data: SkData, fontMgr?: SkFontMgr | null, assets?: Record<string, SkData | null>): SkSVG | null;
|
6
|
+
MakeFromString(str: string, fontMgr?: SkFontMgr | null, assets?: Record<string, SkData | null>): SkSVG | null;
|
6
7
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["SVGFactory.ts"],"sourcesContent":["import type { SkData } from \"../Data\";\n\nimport type { SkSVG } from \"./SVG\";\n\nexport interface SVGFactory {\n MakeFromData(data: SkData): SkSVG | null;\n MakeFromString(str: string): SkSVG | null;\n}\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["SVGFactory.ts"],"sourcesContent":["import type { SkData } from \"../Data\";\nimport type { SkFontMgr } from \"../Font/FontMgr\";\n\nimport type { SkSVG } from \"./SVG\";\n\nexport interface SVGFactory {\n MakeFromData(\n data: SkData,\n fontMgr?: SkFontMgr | null,\n assets?: Record<string, SkData | null>\n ): SkSVG | null;\n MakeFromString(\n str: string,\n fontMgr?: SkFontMgr | null,\n assets?: Record<string, SkData | null>\n ): SkSVG | null;\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -26,7 +26,7 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
|
|
26
26
|
drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont): void;
|
27
27
|
drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint): void;
|
28
28
|
drawGlyphs(glyphs: number[], positions: SkPoint[], x: number, y: number, font: SkFont, paint: SkPaint): void;
|
29
|
-
drawSvg(svg: SkSVG,
|
29
|
+
drawSvg(svg: SkSVG, width?: number, height?: number): void;
|
30
30
|
save(): number;
|
31
31
|
saveLayer(paint?: SkPaint, bounds?: SkRect | null, backdrop?: SkImageFilter | null, flags?: SaveLayerFlag): number;
|
32
32
|
restore(): void;
|
@@ -98,7 +98,13 @@ class JsiSkCanvas extends _Host.HostObject {
|
|
98
98
|
drawGlyphs(glyphs, positions, x, y, font, paint) {
|
99
99
|
this.ref.drawGlyphs(glyphs, positions.map(p => [p.x, p.y]).flat(), x, y, _JsiSkFont.JsiSkFont.fromValue(font), _JsiSkPaint.JsiSkPaint.fromValue(paint));
|
100
100
|
}
|
101
|
-
drawSvg(svg,
|
101
|
+
drawSvg(svg, width, height) {
|
102
|
+
const ctm = this.ref.getLocalToDevice();
|
103
|
+
console.log({
|
104
|
+
ctm,
|
105
|
+
width,
|
106
|
+
height
|
107
|
+
});
|
102
108
|
const image = this.CanvasKit.MakeImageFromCanvasImageSource(svg.ref);
|
103
109
|
this.ref.drawImage(image, 0, 0);
|
104
110
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_types","require","_Host","_JsiSkPaint","_JsiSkRect","_JsiSkRRect","_JsiSkImage","_JsiSkVertices","_JsiSkPath","_JsiSkFont","_JsiSkTextBlob","_JsiSkPicture","_JsiSkMatrix","_JsiSkImageFilter","_JsiSkPoint","_JsiSkRSXform","JsiSkCanvas","HostObject","constructor","CanvasKit","ref","drawRect","rect","paint","JsiSkRect","fromValue","JsiSkPaint","drawImage","image","x","y","JsiSkImage","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","getEnum","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","JsiSkVertices","drawPatch","cubics","colors","texs","map","flat","flatMap","p","JsiSkPoint","undefined","restoreToCount","saveCount","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","JsiSkRRect","drawDRRect","outer","inner","drawOval","drawPath","path","JsiSkPath","drawText","str","font","JsiSkFont","drawTextBlob","blob","JsiSkTextBlob","drawGlyphs","glyphs","positions","drawSvg","svg","_width","_height","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","JsiSkImageFilter","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","JsiSkMatrix","drawPicture","skp","JsiSkPicture","drawAtlas","atlas","srcs","dsts","sampling","s","dst","JsiSkRSXform","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","isCubicSampling","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","width","height","colorSpace","ColorSpace","SRGB","alphaType","colorType","exports"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, _width?: number, _height?: number) {\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_types","require","_Host","_JsiSkPaint","_JsiSkRect","_JsiSkRRect","_JsiSkImage","_JsiSkVertices","_JsiSkPath","_JsiSkFont","_JsiSkTextBlob","_JsiSkPicture","_JsiSkMatrix","_JsiSkImageFilter","_JsiSkPoint","_JsiSkRSXform","JsiSkCanvas","HostObject","constructor","CanvasKit","ref","drawRect","rect","paint","JsiSkRect","fromValue","JsiSkPaint","drawImage","image","x","y","JsiSkImage","drawImageRect","img","src","dest","fastSample","drawImageCubic","left","top","B","C","drawImageOptions","fm","mm","getEnum","drawImageNine","center","filter","Array","from","drawImageRectCubic","drawImageRectOptions","drawPaint","drawLine","x0","y0","x1","y1","drawCircle","cx","cy","radius","drawVertices","verts","mode","JsiSkVertices","drawPatch","cubics","colors","texs","map","flat","flatMap","p","JsiSkPoint","undefined","restoreToCount","saveCount","drawPoints","points","drawArc","oval","startAngle","sweepAngle","useCenter","drawRRect","rrect","JsiSkRRect","drawDRRect","outer","inner","drawOval","drawPath","path","JsiSkPath","drawText","str","font","JsiSkFont","drawTextBlob","blob","JsiSkTextBlob","drawGlyphs","glyphs","positions","drawSvg","svg","width","height","ctm","getLocalToDevice","console","log","MakeImageFromCanvasImageSource","save","saveLayer","bounds","backdrop","flags","JsiSkImageFilter","restore","rotate","rotationInDegrees","rx","ry","scale","sx","sy","skew","translate","dx","dy","drawColor","color","blendMode","clear","clipPath","op","doAntiAlias","clipRect","clipRRect","concat","m","isArray","JsiSkMatrix","drawPicture","skp","JsiSkPicture","drawAtlas","atlas","srcs","dsts","sampling","s","dst","JsiSkRSXform","cls","Uint32Array","length","i","r","g","b","a","ColorAsInt","ckSampling","FilterMode","Linear","mipmap","MipmapMode","None","isCubicSampling","BlendMode","DstOver","readPixels","srcX","srcY","imageInfo","pxInfo","colorSpace","ColorSpace","SRGB","alphaType","colorType","exports"],"sources":["JsiSkCanvas.ts"],"sourcesContent":["import type {\n Canvas,\n CanvasKit,\n CubicResampler as CKCubicResampler,\n FilterOptions as CKFilterOptions,\n} from \"canvaskit-wasm\";\n\nimport {\n type BlendMode,\n type ClipOp,\n type FilterMode,\n type MipmapMode,\n type PointMode,\n type SaveLayerFlag,\n type ImageInfo,\n type SkCanvas,\n type SkColor,\n type SkFont,\n type SkImage,\n type SkImageFilter,\n type SkMatrix,\n type SkPaint,\n type SkPath,\n type SkPicture,\n type SkPoint,\n type SkRect,\n type InputRRect,\n type SkSVG,\n type SkTextBlob,\n type SkVertices,\n type SkRSXform,\n type CubicResampler,\n type FilterOptions,\n isCubicSampling,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkVertices } from \"./JsiSkVertices\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { JsiSkTextBlob } from \"./JsiSkTextBlob\";\nimport { JsiSkPicture } from \"./JsiSkPicture\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkImageFilter } from \"./JsiSkImageFilter\";\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport type { JsiSkSVG } from \"./JsiSkSVG\";\n\nexport class JsiSkCanvas\n extends HostObject<Canvas, \"Canvas\">\n implements SkCanvas\n{\n constructor(CanvasKit: CanvasKit, ref: Canvas) {\n super(CanvasKit, ref, \"Canvas\");\n }\n\n drawRect(rect: SkRect, paint: SkPaint) {\n this.ref.drawRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawImage(image: SkImage, x: number, y: number, paint?: SkPaint) {\n this.ref.drawImage(\n JsiSkImage.fromValue(image),\n x,\n y,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRect(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n paint: SkPaint,\n fastSample?: boolean\n ) {\n this.ref.drawImageRect(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n JsiSkPaint.fromValue(paint),\n fastSample\n );\n }\n\n drawImageCubic(\n img: SkImage,\n left: number,\n top: number,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageCubic(\n JsiSkImage.fromValue(img),\n left,\n top,\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageOptions(\n img: SkImage,\n left: number,\n top: number,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageOptions(\n JsiSkImage.fromValue(img),\n left,\n top,\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageNine(\n img: SkImage,\n center: SkRect,\n dest: SkRect,\n filter: FilterMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageNine(\n JsiSkImage.fromValue(img),\n Array.from(JsiSkRect.fromValue(this.CanvasKit, center)),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", filter),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectCubic(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n B: number,\n C: number,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectCubic(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n B,\n C,\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawImageRectOptions(\n img: SkImage,\n src: SkRect,\n dest: SkRect,\n fm: FilterMode,\n mm: MipmapMode,\n paint?: SkPaint | null\n ) {\n this.ref.drawImageRectOptions(\n JsiSkImage.fromValue(img),\n JsiSkRect.fromValue(this.CanvasKit, src),\n JsiSkRect.fromValue(this.CanvasKit, dest),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n paint ? JsiSkPaint.fromValue(paint) : paint\n );\n }\n\n drawPaint(paint: SkPaint) {\n this.ref.drawPaint(JsiSkPaint.fromValue(paint));\n }\n\n drawLine(x0: number, y0: number, x1: number, y1: number, paint: SkPaint) {\n this.ref.drawLine(x0, y0, x1, y1, JsiSkPaint.fromValue(paint));\n }\n\n drawCircle(cx: number, cy: number, radius: number, paint: SkPaint) {\n this.ref.drawCircle(cx, cy, radius, JsiSkPaint.fromValue(paint));\n }\n\n drawVertices(verts: SkVertices, mode: BlendMode, paint: SkPaint) {\n this.ref.drawVertices(\n JsiSkVertices.fromValue(verts),\n getEnum(this.CanvasKit, \"BlendMode\", mode),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPatch(\n cubics: SkPoint[],\n colors?: SkColor[] | null,\n texs?: SkPoint[] | null,\n mode?: BlendMode | null,\n paint?: SkPaint\n ) {\n this.ref.drawPatch(\n cubics.map(({ x, y }) => [x, y]).flat(),\n colors,\n texs ? texs.flatMap((p) => Array.from(JsiSkPoint.fromValue(p))) : texs,\n mode ? getEnum(this.CanvasKit, \"BlendMode\", mode) : null,\n paint ? JsiSkPaint.fromValue(paint) : undefined\n );\n }\n\n restoreToCount(saveCount: number) {\n this.ref.restoreToCount(saveCount);\n }\n\n drawPoints(mode: PointMode, points: SkPoint[], paint: SkPaint) {\n this.ref.drawPoints(\n getEnum(this.CanvasKit, \"PointMode\", mode),\n points.map(({ x, y }) => [x, y]).flat(),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawArc(\n oval: SkRect,\n startAngle: number,\n sweepAngle: number,\n useCenter: boolean,\n paint: SkPaint\n ) {\n this.ref.drawArc(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n startAngle,\n sweepAngle,\n useCenter,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawRRect(rrect: InputRRect, paint: SkPaint) {\n this.ref.drawRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawDRRect(outer: InputRRect, inner: InputRRect, paint: SkPaint) {\n this.ref.drawDRRect(\n JsiSkRRect.fromValue(this.CanvasKit, outer),\n JsiSkRRect.fromValue(this.CanvasKit, inner),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawOval(oval: SkRect, paint: SkPaint) {\n this.ref.drawOval(\n JsiSkRect.fromValue(this.CanvasKit, oval),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawPath(path: SkPath, paint: SkPaint) {\n this.ref.drawPath(JsiSkPath.fromValue(path), JsiSkPaint.fromValue(paint));\n }\n\n drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont) {\n this.ref.drawText(\n str,\n x,\n y,\n JsiSkPaint.fromValue(paint),\n JsiSkFont.fromValue(font)\n );\n }\n\n drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint) {\n this.ref.drawTextBlob(\n JsiSkTextBlob.fromValue(blob),\n x,\n y,\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawGlyphs(\n glyphs: number[],\n positions: SkPoint[],\n x: number,\n y: number,\n font: SkFont,\n paint: SkPaint\n ) {\n this.ref.drawGlyphs(\n glyphs,\n positions.map((p) => [p.x, p.y]).flat(),\n x,\n y,\n JsiSkFont.fromValue(font),\n JsiSkPaint.fromValue(paint)\n );\n }\n\n drawSvg(svg: SkSVG, width?: number, height?: number) {\n const ctm = this.ref.getLocalToDevice();\n console.log({ ctm, width, height });\n const image = this.CanvasKit.MakeImageFromCanvasImageSource(\n (svg as JsiSkSVG).ref\n );\n this.ref.drawImage(image, 0, 0);\n }\n\n save() {\n return this.ref.save();\n }\n\n saveLayer(\n paint?: SkPaint,\n bounds?: SkRect | null,\n backdrop?: SkImageFilter | null,\n flags?: SaveLayerFlag\n ) {\n return this.ref.saveLayer(\n paint ? JsiSkPaint.fromValue(paint) : undefined,\n bounds ? JsiSkRect.fromValue(this.CanvasKit, bounds) : bounds,\n backdrop ? JsiSkImageFilter.fromValue(backdrop) : backdrop,\n flags\n );\n }\n\n restore() {\n this.ref.restore();\n }\n\n rotate(rotationInDegrees: number, rx: number, ry: number) {\n this.ref.rotate(rotationInDegrees, rx, ry);\n }\n\n scale(sx: number, sy: number) {\n this.ref.scale(sx, sy);\n }\n\n skew(sx: number, sy: number) {\n this.ref.skew(sx, sy);\n }\n\n translate(dx: number, dy: number) {\n this.ref.translate(dx, dy);\n }\n\n drawColor(color: SkColor, blendMode?: BlendMode) {\n this.ref.drawColor(\n color,\n blendMode ? getEnum(this.CanvasKit, \"BlendMode\", blendMode) : undefined\n );\n }\n\n clear(color: SkColor) {\n this.ref.clear(color);\n }\n\n clipPath(path: SkPath, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipPath(\n JsiSkPath.fromValue(path),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRect(rect: SkRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRect(\n JsiSkRect.fromValue(this.CanvasKit, rect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean) {\n this.ref.clipRRect(\n JsiSkRRect.fromValue(this.CanvasKit, rrect),\n getEnum(this.CanvasKit, \"PathOp\", op),\n doAntiAlias\n );\n }\n\n concat(m: SkMatrix | number[]) {\n this.ref.concat(Array.isArray(m) ? m : JsiSkMatrix.fromValue(m));\n }\n\n drawPicture(skp: SkPicture) {\n this.ref.drawPicture(JsiSkPicture.fromValue(skp));\n }\n\n drawAtlas(\n atlas: SkImage,\n srcs: SkRect[],\n dsts: SkRSXform[],\n paint: SkPaint,\n blendMode?: BlendMode,\n colors?: SkColor[],\n sampling?: CubicResampler | FilterOptions\n ) {\n const src = srcs.flatMap((s) =>\n Array.from(JsiSkRect.fromValue(this.CanvasKit, s))\n );\n const dst = dsts.flatMap((s) => Array.from(JsiSkRSXform.fromValue(s)));\n let cls: Uint32Array | undefined;\n if (colors) {\n cls = new Uint32Array(colors.length);\n for (let i = 0; i < colors.length; i++) {\n const [r, g, b, a] = colors[i];\n cls[i] = this.CanvasKit.ColorAsInt(r * 255, g * 255, b * 255, a * 255);\n }\n }\n let ckSampling: CKCubicResampler | CKFilterOptions = {\n filter: this.CanvasKit.FilterMode.Linear,\n mipmap: this.CanvasKit.MipmapMode.None,\n };\n if (sampling && isCubicSampling(sampling)) {\n ckSampling = sampling;\n } else if (sampling) {\n ckSampling = {\n filter: getEnum(this.CanvasKit, \"FilterMode\", sampling.filter),\n mipmap: sampling.mipmap\n ? getEnum(this.CanvasKit, \"MipmapMode\", sampling.mipmap)\n : this.CanvasKit.MipmapMode.None,\n };\n }\n this.ref.drawAtlas(\n JsiSkImage.fromValue(atlas),\n src,\n dst,\n JsiSkPaint.fromValue(paint),\n blendMode\n ? getEnum(this.CanvasKit, \"BlendMode\", blendMode)\n : this.CanvasKit.BlendMode.DstOver,\n cls,\n ckSampling\n );\n }\n\n readPixels(srcX: number, srcY: number, imageInfo: ImageInfo) {\n const pxInfo = {\n width: imageInfo.width,\n height: imageInfo.height,\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", imageInfo.alphaType),\n colorType: getEnum(this.CanvasKit, \"ColorType\", imageInfo.colorType),\n };\n return this.ref.readPixels(srcX, srcY, pxInfo);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
import type { DataSourceParam } from "../types";
|
2
|
-
export declare const useSVG: (source: DataSourceParam, onError?: (err: Error) => void) =>
|
1
|
+
import type { DataSourceParam, SkSVG } from "../types";
|
2
|
+
export declare const useSVG: (source: DataSourceParam, onError?: (err: Error) => void) => SkSVG | null;
|
@@ -1,22 +1,31 @@
|
|
1
|
+
import { useEffect, useState } from "react";
|
1
2
|
import { Skia } from "../Skia";
|
2
3
|
export const useSVG = (source, onError) => {
|
4
|
+
const [svg, setSVG] = useState(null);
|
3
5
|
if (source === null || source === undefined) {
|
4
6
|
throw new Error(`Invalid svg data source. Got: ${source}`);
|
5
7
|
}
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
8
|
+
useEffect(() => {
|
9
|
+
(async () => {
|
10
|
+
let src;
|
11
|
+
if (typeof source === "string") {
|
12
|
+
src = source;
|
13
|
+
} else if (typeof source === "object" && "default" in source && typeof source.default === "string") {
|
14
|
+
src = source.default;
|
15
|
+
} else if (typeof source === "object" && "uri" in source) {
|
16
|
+
src = source.uri;
|
17
|
+
} else {
|
18
|
+
throw new Error(`Invalid svg data source. Make sure that the source resolves to a string. Got: ${JSON.stringify(source, null, 2)}`);
|
19
|
+
}
|
20
|
+
const result = await fetch(src);
|
21
|
+
const svgStr = await result.text();
|
22
|
+
const newSvg = Skia.SVG.MakeFromString(svgStr);
|
23
|
+
setSVG(newSvg);
|
24
|
+
if (newSvg === null && onError !== undefined) {
|
25
|
+
onError(new Error("Failed to create SVG from source."));
|
26
|
+
}
|
27
|
+
})();
|
28
|
+
}, [onError, source]);
|
20
29
|
return svg;
|
21
30
|
};
|
22
31
|
//# sourceMappingURL=SVG.web.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Skia","useSVG","source","onError","undefined","Error","src","default","uri","JSON","stringify","
|
1
|
+
{"version":3,"names":["useEffect","useState","Skia","useSVG","source","onError","svg","setSVG","undefined","Error","src","default","uri","JSON","stringify","result","fetch","svgStr","text","newSvg","SVG","MakeFromString"],"sources":["SVG.web.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { DataSourceParam, SkSVG } from \"../types\";\n\nexport const useSVG = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => {\n const [svg, setSVG] = useState<SkSVG | null>(null);\n if (source === null || source === undefined) {\n throw new Error(`Invalid svg data source. Got: ${source}`);\n }\n useEffect(() => {\n (async () => {\n let src: string;\n if (typeof source === \"string\") {\n src = source;\n } else if (\n typeof source === \"object\" &&\n \"default\" in source &&\n typeof source.default === \"string\"\n ) {\n src = source.default;\n } else if (typeof source === \"object\" && \"uri\" in source) {\n src = source.uri;\n } else {\n throw new Error(\n `Invalid svg data source. Make sure that the source resolves to a string. Got: ${JSON.stringify(\n source,\n null,\n 2\n )}`\n );\n }\n const result = await fetch(src);\n const svgStr = await result.text();\n const newSvg = Skia.SVG.MakeFromString(svgStr);\n setSVG(newSvg);\n if (newSvg === null && onError !== undefined) {\n onError(new Error(\"Failed to create SVG from source.\"));\n }\n })();\n }, [onError, source]);\n return svg;\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAE3C,SAASC,IAAI,QAAQ,SAAS;AAG9B,OAAO,MAAMC,MAAM,GAAGA,CACpBC,MAAuB,EACvBC,OAA8B,KAC3B;EACH,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAGN,QAAQ,CAAe,IAAI,CAAC;EAClD,IAAIG,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAKI,SAAS,EAAE;IAC3C,MAAM,IAAIC,KAAK,CAAC,iCAAiCL,MAAM,EAAE,CAAC;EAC5D;EACAJ,SAAS,CAAC,MAAM;IACd,CAAC,YAAY;MACX,IAAIU,GAAW;MACf,IAAI,OAAON,MAAM,KAAK,QAAQ,EAAE;QAC9BM,GAAG,GAAGN,MAAM;MACd,CAAC,MAAM,IACL,OAAOA,MAAM,KAAK,QAAQ,IAC1B,SAAS,IAAIA,MAAM,IACnB,OAAOA,MAAM,CAACO,OAAO,KAAK,QAAQ,EAClC;QACAD,GAAG,GAAGN,MAAM,CAACO,OAAO;MACtB,CAAC,MAAM,IAAI,OAAOP,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAIA,MAAM,EAAE;QACxDM,GAAG,GAAGN,MAAM,CAACQ,GAAG;MAClB,CAAC,MAAM;QACL,MAAM,IAAIH,KAAK,CACb,iFAAiFI,IAAI,CAACC,SAAS,CAC7FV,MAAM,EACN,IAAI,EACJ,CACF,CAAC,EACH,CAAC;MACH;MACA,MAAMW,MAAM,GAAG,MAAMC,KAAK,CAACN,GAAG,CAAC;MAC/B,MAAMO,MAAM,GAAG,MAAMF,MAAM,CAACG,IAAI,CAAC,CAAC;MAClC,MAAMC,MAAM,GAAGjB,IAAI,CAACkB,GAAG,CAACC,cAAc,CAACJ,MAAM,CAAC;MAC9CV,MAAM,CAACY,MAAM,CAAC;MACd,IAAIA,MAAM,KAAK,IAAI,IAAId,OAAO,KAAKG,SAAS,EAAE;QAC5CH,OAAO,CAAC,IAAII,KAAK,CAAC,mCAAmC,CAAC,CAAC;MACzD;IACF,CAAC,EAAE,CAAC;EACN,CAAC,EAAE,CAACJ,OAAO,EAAED,MAAM,CAAC,CAAC;EACrB,OAAOE,GAAG;AACZ,CAAC","ignoreList":[]}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import type { SkData } from "../Data";
|
2
|
+
import type { SkFontMgr } from "../Font/FontMgr";
|
2
3
|
import type { SkSVG } from "./SVG";
|
3
4
|
export interface SVGFactory {
|
4
|
-
MakeFromData(data: SkData): SkSVG | null;
|
5
|
-
MakeFromString(str: string): SkSVG | null;
|
5
|
+
MakeFromData(data: SkData, fontMgr?: SkFontMgr | null, assets?: Record<string, SkData | null>): SkSVG | null;
|
6
|
+
MakeFromString(str: string, fontMgr?: SkFontMgr | null, assets?: Record<string, SkData | null>): SkSVG | null;
|
6
7
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["SVGFactory.ts"],"sourcesContent":["import type { SkData } from \"../Data\";\n\nimport type { SkSVG } from \"./SVG\";\n\nexport interface SVGFactory {\n MakeFromData(data: SkData): SkSVG | null;\n MakeFromString(str: string): SkSVG | null;\n}\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["SVGFactory.ts"],"sourcesContent":["import type { SkData } from \"../Data\";\nimport type { SkFontMgr } from \"../Font/FontMgr\";\n\nimport type { SkSVG } from \"./SVG\";\n\nexport interface SVGFactory {\n MakeFromData(\n data: SkData,\n fontMgr?: SkFontMgr | null,\n assets?: Record<string, SkData | null>\n ): SkSVG | null;\n MakeFromString(\n str: string,\n fontMgr?: SkFontMgr | null,\n assets?: Record<string, SkData | null>\n ): SkSVG | null;\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -26,7 +26,7 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
|
|
26
26
|
drawText(str: string, x: number, y: number, paint: SkPaint, font: SkFont): void;
|
27
27
|
drawTextBlob(blob: SkTextBlob, x: number, y: number, paint: SkPaint): void;
|
28
28
|
drawGlyphs(glyphs: number[], positions: SkPoint[], x: number, y: number, font: SkFont, paint: SkPaint): void;
|
29
|
-
drawSvg(svg: SkSVG,
|
29
|
+
drawSvg(svg: SkSVG, width?: number, height?: number): void;
|
30
30
|
save(): number;
|
31
31
|
saveLayer(paint?: SkPaint, bounds?: SkRect | null, backdrop?: SkImageFilter | null, flags?: SaveLayerFlag): number;
|
32
32
|
restore(): void;
|
@@ -92,7 +92,13 @@ export class JsiSkCanvas extends HostObject {
|
|
92
92
|
drawGlyphs(glyphs, positions, x, y, font, paint) {
|
93
93
|
this.ref.drawGlyphs(glyphs, positions.map(p => [p.x, p.y]).flat(), x, y, JsiSkFont.fromValue(font), JsiSkPaint.fromValue(paint));
|
94
94
|
}
|
95
|
-
drawSvg(svg,
|
95
|
+
drawSvg(svg, width, height) {
|
96
|
+
const ctm = this.ref.getLocalToDevice();
|
97
|
+
console.log({
|
98
|
+
ctm,
|
99
|
+
width,
|
100
|
+
height
|
101
|
+
});
|
96
102
|
const image = this.CanvasKit.MakeImageFromCanvasImageSource(svg.ref);
|
97
103
|
this.ref.drawImage(image, 0, 0);
|
98
104
|
}
|