diff --git a/crates/canvas-svg/src/smil/mod.rs b/crates/canvas-svg/src/smil/mod.rs index fe5eceda..b16fa56c 100644 --- a/crates/canvas-svg/src/smil/mod.rs +++ b/crates/canvas-svg/src/smil/mod.rs @@ -64,16 +64,63 @@ impl TransformKind { } } - /// Identity: the start value for a transform animation with only `to` or `by`. - fn neutral(self) -> Value { + /// Identity: the start value for a transform animation with only `to` or `by`. It takes the + /// shape of `like`, the value animated towards, so the two interpolate instead of stepping + /// half way: a rotation keeps `like`'s centre, translate and scale match its arity. + fn neutral(self, like: &Value) -> Value { + let numbers = like.numbers().unwrap_or(&[]); + let values = match self { + TransformKind::Rotate if numbers.len() == 3 => vec![0.0, numbers[1], numbers[2]], + TransformKind::Scale => vec![1.0; numbers.len().clamp(1, 2)], + TransformKind::Translate => vec![0.0; numbers.len().clamp(1, 2)], + _ => vec![0.0], + }; Value::Numbers { - values: match self { - TransformKind::Scale => vec![1.0], - _ => vec![0.0], - }, + values, unit: String::new(), } } + + /// `a + b`, for `by` and `accumulate="sum"`. A rotation's centre is a point, not an amount: + /// the angles add and the centre stays put (`a`'s, else `b`'s). + pub(crate) fn add(self, a: &Value, b: &Value) -> Value { + if self == TransformKind::Rotate { + if let (Some(x), Some(y)) = (a.numbers(), b.numbers()) { + if !x.is_empty() && !y.is_empty() && (x.len() == 3 || y.len() == 3) { + let centre = if x.len() == 3 { &x[1..] } else { &y[1..] }; + return Value::Numbers { + values: vec![x[0] + y[0], centre[0], centre[1]], + unit: String::new(), + }; + } + } + } + a.add(b) + } + + /// Gives a bare angle in a rotate `values` list the list's centre, so `0; 90 50 50` + /// interpolates about (50, 50) instead of stepping between two shapes. + pub(crate) fn align(self, mut frames: Vec) -> Vec { + if self != TransformKind::Rotate { + return frames; + } + let centre = frames + .iter() + .filter_map(Value::numbers) + .find(|n| n.len() == 3) + .map(|n| (n[1], n[2])); + if let Some((cx, cy)) = centre { + for frame in &mut frames { + if let Some(&[angle]) = frame.numbers() { + *frame = Value::Numbers { + values: vec![angle, cx, cy], + unit: String::new(), + }; + } + } + } + frames + } } #[derive(Clone, Debug)] @@ -401,19 +448,32 @@ impl Animation { // A transform's base is the identity; `compose_transform` keeps the element's own // `transform` as a prefix instead. kind => { - let base = match kind { - Kind::Transform(transform) => Some(transform.neutral()), - _ => base.cloned(), + let transform = match kind { + Kind::Transform(transform) => Some(*transform), + _ => None, }; match &self.frames { Frames::Values(values) => self.evaluate(values, &sample), Frames::ToOnly(to) => { - let start = base.unwrap_or_else(|| to.clone()); + let start = match transform { + Some(transform) => transform.neutral(to), + None => base.cloned().unwrap_or_else(|| to.clone()), + }; self.evaluate(&[start, to.clone()], &sample) } Frames::ByOnly(by) => { - let start = base?; - let end = start.add(by); + let (start, end) = match transform { + Some(transform) => { + let start = transform.neutral(by); + let end = transform.add(&start, by); + (start, end) + } + None => { + let start = base?.clone(); + let end = start.add(by); + (start, end) + } + }; self.evaluate(&[start, end], &sample) } } @@ -431,7 +491,11 @@ impl Animation { let mut value = self.timing.interpolate(frames, sample.fraction); if self.timing.accumulate && sample.iteration > 0.0 { if let Some(last) = frames.last() { - value = value.add(&last.scale(sample.iteration)); + let repeats = last.scale(sample.iteration); + value = match &self.kind { + Kind::Transform(transform) => transform.add(&value, &repeats), + _ => value.add(&repeats), + }; } } value diff --git a/crates/canvas-svg/src/smil/parse.rs b/crates/canvas-svg/src/smil/parse.rs index f116730d..d9a27f67 100644 --- a/crates/canvas-svg/src/smil/parse.rs +++ b/crates/canvas-svg/src/smil/parse.rs @@ -435,7 +435,10 @@ fn build_frames( .map(Value::parse) .collect(); if !parsed.is_empty() { - return Some(Frames::Values(parsed)); + return Some(Frames::Values(match kind { + Kind::Transform(transform) => transform.align(parsed), + _ => parsed, + })); } } @@ -446,7 +449,11 @@ fn build_frames( ])), (Some(from), None, Some(by)) => { let start = Value::parse(from); - let end = start.add(&Value::parse(by)); + let by = Value::parse(by); + let end = match kind { + Kind::Transform(transform) => transform.add(&start, &by), + _ => start.add(&by), + }; Some(Frames::Values(vec![start, end])) } // Without a `from`, the animation starts from whatever the element already is, which diff --git a/crates/canvas-svg/tests/smil.rs b/crates/canvas-svg/tests/smil.rs index 5f51b5c0..a5729415 100644 --- a/crates/canvas-svg/tests/smil.rs +++ b/crates/canvas-svg/tests/smil.rs @@ -338,3 +338,140 @@ fn rocket_svg_animates_without_falling_over() { .count(); assert!(distinct > 0, "every frame was identical, nothing animated"); } + +/// The GitHub corner's octocat arm: a rotate with a centre point (`angle cx cy`) in +/// `values`, inside a viewBox scaled down to the view. +const OCTO_BODY: &str = "M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"; +const OCTO_ARM: &str = "M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"; + +fn github_corner(animation: &str) -> String { + format!( + r##" + + {animation} + +"## + ) +} + +fn render_80(doc: &mut SvgDocument, time: f64) -> Vec { + doc.set_container_size(80.0, 80.0); + doc.set_current_time(time); + let info = skia_safe::ImageInfo::new_n32_premul(skia_safe::ISize::new(80, 80), None); + let mut surface = skia_safe::surfaces::raster(&info, None, None).expect("raster surface"); + surface.canvas().clear(skia_safe::Color::TRANSPARENT); + doc.render_frame(surface.canvas(), 80, 80, 1.0); + let mut pixels = vec![0u8; 80 * 80 * 4]; + assert!(surface.image_snapshot().read_pixels( + &info, + &mut pixels, + 80 * 4, + skia_safe::IPoint::new(0, 0), + skia_safe::image::CachingHint::Disallow, + )); + pixels +} + +#[test] +fn a_rotate_with_a_centre_leaves_the_rest_of_the_drawing_alone() { + let wave = r#""#; + let still = render_80(&mut document(&github_corner("")), 0.0); + let mut animated = document(&github_corner(wave)); + + // Before `begin` nothing is written, and the frozen end is rotate(0 130 106): both + // must draw exactly what the document without the animation draws. + assert!( + render_80(&mut animated, 0.0) == still, + "frame before begin differs from the static drawing" + ); + assert!( + render_80(&mut animated, 1.2) == still, + "frozen identity rotation differs from the static drawing" + ); + // And in between, the arm does move: 0.4s + 0.2 * 0.56s is the -25° keyframe. + assert!( + render_80(&mut animated, 0.512) != still, + "the arm should be rotated mid-wave" + ); +} + +/// Asserts `id`'s transform is `rotate(angle cx cy)`, which Skia reads back as a matrix. +fn assert_rotation(doc: &mut SvgDocument, id: &str, angle: f32, cx: f32, cy: f32) { + let transform = attribute(doc, id, "transform").expect("transform"); + let numbers: Vec = transform + .trim_start_matches("matrix(") + .trim_end_matches(')') + .split(',') + .map(|n| n.trim().parse().expect("matrix component")) + .collect(); + let (sin, cos) = angle.to_radians().sin_cos(); + let expected = [ + cos, + sin, + -sin, + cos, + cx - cos * cx + sin * cy, + cy - sin * cx - cos * cy, + ]; + for (index, expected) in expected.iter().enumerate() { + assert!( + (numbers[index] - expected).abs() < 1e-3, + "component {index} of {transform}: expected rotate({angle} {cx} {cy})" + ); + } +} + +fn rotating(animation: &str) -> SvgDocument { + document(&format!( + r#"{animation}"# + )) +} + +#[test] +fn a_to_rotation_about_a_centre_interpolates_from_zero_about_that_centre() { + let mut doc = rotating( + r#""#, + ); + doc.set_current_time(0.5); + assert_rotation(&mut doc, "arm", 22.5, 50.0, 50.0); +} + +#[test] +fn a_by_rotation_about_a_centre_keeps_the_centre() { + let mut doc = rotating( + r#""#, + ); + doc.set_current_time(0.5); + assert_rotation(&mut doc, "arm", 22.5, 50.0, 50.0); +} + +#[test] +fn from_plus_by_adds_the_angles_not_the_centres() { + let mut doc = rotating( + r#""#, + ); + doc.set_current_time(1.0); + assert_rotation(&mut doc, "arm", 45.0, 50.0, 50.0); +} + +#[test] +fn accumulating_a_rotation_keeps_its_centre() { + let mut doc = rotating( + r#""#, + ); + // Half way through the second repeat: 45° on top of the first repeat's 90°. + doc.set_current_time(1.5); + assert_rotation(&mut doc, "arm", 135.0, 50.0, 50.0); +} + +#[test] +fn a_bare_angle_in_rotate_values_takes_the_lists_centre() { + let mut doc = rotating( + r#""#, + ); + doc.set_current_time(1.0); + assert_rotation(&mut doc, "arm", 45.0, 50.0, 50.0); +} diff --git a/packages/canvas-svg/NativeNode.ts b/packages/canvas-svg/NativeNode.ts index 779df261..e6787522 100644 --- a/packages/canvas-svg/NativeNode.ts +++ b/packages/canvas-svg/NativeNode.ts @@ -203,9 +203,20 @@ export class SvgDocumentWrapper { private __containerWidth = 0; private __containerHeight = 0; - constructor(src?: string) { + /** Parses `src`, or returns null when it is not a well-formed SVG document. */ + static parse(src: string): SvgDocumentWrapper | null { Helpers.initialize(); - this.__native = typeof src === 'string' ? SVGModule.createSVGDocument(src) : SVGModule.createSVGDocument(); + const native = SVGModule.createSVGDocument(src); + return native ? new SvgDocumentWrapper(undefined, native) : null; + } + + constructor(src?: string, native?: any) { + Helpers.initialize(); + this.__native = native ?? (typeof src === 'string' ? SVGModule.createSVGDocument(src) : SVGModule.createSVGDocument()); + if (!this.__native) { + // The native parse returns null for markup it can't read. + throw new Error('Svg: src is not a well-formed SVG document'); + } this.rootElement = new SvgNodeWrapper(this.__native.root(), this); } diff --git a/packages/canvas-svg/README.md b/packages/canvas-svg/README.md index bf6fe50f..ce12925d 100644 --- a/packages/canvas-svg/README.md +++ b/packages/canvas-svg/README.md @@ -103,6 +103,7 @@ For a document built with the DOM rather than `src`, only the `@keyframes` of `s | Event | When | | --- | --- | | `animationEnd` | Every animation in the document has finished. Never fires for one that repeats forever. | +| `error` | `src` could not be read or is not a well-formed SVG document. `args.error` says why; the view draws nothing. | | `contextLost` | The GPU context could not be rebuilt and drawing has moved to the CPU. | | `contextRestored` | A lost GPU context was rebuilt and GPU drawing has resumed. | diff --git a/packages/canvas-svg/common.ts b/packages/canvas-svg/common.ts index 39fdbf06..fd93d252 100644 --- a/packages/canvas-svg/common.ts +++ b/packages/canvas-svg/common.ts @@ -1,4 +1,5 @@ import { booleanConverter, colorProperty, CssProperty, CSSType, File, Http, knownFolders, path, Property, Style, Utils, View } from '@nativescript/core'; +import type { EventData } from '@nativescript/core'; import { ANIMATION_CHANGED, ANIMATION_RUNNING, SvgDocumentWrapper, SvgNodeWrapper } from './NativeNode'; declare const requestAnimationFrame: ((cb: () => void) => void) | undefined; @@ -210,13 +211,20 @@ export function readSrc(value: string, done: (source: string) => void, failed: ( File.fromPath(file).readText().then(done).catch(failed); } +/** Data for `SVGBase.errorEvent`. */ +export interface SvgErrorEventData extends EventData { + error: unknown; +} + const sharedSources = new Map(); /** One document and clock for every view showing the same `src` (Blink's `SVGImage`). */ class SharedSource { document: SvgDocumentWrapper | null = null; readonly holders = new Set(); - private waiting: Array<(document: SvgDocumentWrapper) => void> = []; + /** Why `src` could not be read or parsed; the source is then out of the cache. */ + error: unknown = null; + private waiting: Array<[(document: SvgDocumentWrapper) => void, (error: unknown) => void]> = []; private ticking = false; private start = 0; @@ -237,13 +245,15 @@ class SharedSource { } else { readSrc( src, - (markup) => source.ready(new SvgDocumentWrapper(withStylesheet(markup, css))), - (error) => { - console.error('Svg: could not load src', error); - if (sharedSources.get(key) === source) { - sharedSources.delete(key); + (markup) => { + const document = SvgDocumentWrapper.parse(withStylesheet(markup, css)); + if (document) { + source.ready(document); + } else { + source.fail(new Error('Svg: src is not a well-formed SVG document')); } }, + (error) => source.fail(error), ); } } @@ -260,11 +270,14 @@ class SharedSource { } } - whenReady(callback: (document: SvgDocumentWrapper) => void) { + /** Inline markup is read synchronously, so a source can already have failed when a view asks. */ + whenReady(callback: (document: SvgDocumentWrapper) => void, failed: (error: unknown) => void) { if (this.document) { callback(this.document); + } else if (this.error) { + failed(this.error); } else { - this.waiting.push(callback); + this.waiting.push([callback, failed]); } } @@ -274,11 +287,24 @@ class SharedSource { document.setFrameSharing(true); const waiting = this.waiting; this.waiting = []; - for (const callback of waiting) { + for (const [callback] of waiting) { callback(document); } } + /** Never cache a failure: the next view with this `src` tries again. */ + fail(error: unknown) { + this.error = error; + if (sharedSources.get(this.key) === this) { + sharedSources.delete(this.key); + } + const waiting = this.waiting; + this.waiting = []; + for (const [, failed] of waiting) { + failed(error); + } + } + // Node writes bypass the document, so its shared recordings are dropped here. __invalidate(node?: unknown, attribute?: string) { @@ -348,6 +374,9 @@ export class SVGBase extends View { /** Every SMIL animation in the document has finished. Never fires for one that repeats. */ public static animationEndEvent = 'animationEnd'; + + /** `src` could not be read or is not a well-formed SVG document; `error` says why. The view draws nothing. */ + public static errorEvent = 'error'; __document: SvgDocumentWrapper; __domElement: SvgNodeWrapper; __children = []; @@ -484,18 +513,29 @@ export class SVGBase extends View { this.__loadSource(withStylesheet(source, css)); } }, - (error) => console.error('Svg: could not load src', error), + (error) => { + if (this.__srcKey === value) { + this.__loadFailed(error); + } + }, ); } private __joinShared(src: string, existing?: SvgDocumentWrapper) { const source = SharedSource.acquire(src, this.__css, this, existing); this.__shared = source; - source.whenReady((document) => { - if (this.__shared === source) { - this.__adoptDocument(document); - } - }); + source.whenReady( + (document) => { + if (this.__shared === source) { + this.__adoptDocument(document); + } + }, + (error) => { + if (this.__shared === source) { + this.__loadFailed(error); + } + }, + ); } __releaseShared() { @@ -508,11 +548,24 @@ export class SVGBase extends View { * if it has any. */ __loadSource(source: string) { - const document = new SvgDocumentWrapper(source); + const document = SvgDocumentWrapper.parse(source); + if (!document) { + this.__loadFailed(new Error('Svg: src is not a well-formed SVG document')); + return; + } document.owner = this; this.__adoptDocument(document); } + /** `src` could not be read or parsed: draw nothing and report it, rather than throw. */ + __loadFailed(error: unknown) { + console.error('Svg: could not load src', error); + const empty = new SvgDocumentWrapper(); + empty.owner = this; + this.__adoptDocument(empty); + this.notify({ eventName: SVGBase.errorEvent, object: this, error }); + } + private __adoptDocument(document: SvgDocumentWrapper) { this.__document = document; this.__domElement = document.rootElement; diff --git a/packages/canvas-svg/platforms/android/canvassvg-release.aar b/packages/canvas-svg/platforms/android/canvassvg-release.aar index fd433fc6..47373c78 100644 Binary files a/packages/canvas-svg/platforms/android/canvassvg-release.aar and b/packages/canvas-svg/platforms/android/canvassvg-release.aar differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/Info.plist b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/Info.plist index 692564ea..f06449fc 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/Info.plist +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/Info.plist @@ -10,7 +10,7 @@ DebugSymbolsPath dSYMs LibraryIdentifier - tvos-arm64-simulator + ios-arm64 LibraryPath CanvasSVG.framework SupportedArchitectures @@ -18,9 +18,7 @@ arm64 SupportedPlatform - tvos - SupportedPlatformVariant - simulator + ios BinaryPath @@ -28,15 +26,18 @@ DebugSymbolsPath dSYMs LibraryIdentifier - ios-arm64 + ios-arm64_x86_64-simulator LibraryPath CanvasSVG.framework SupportedArchitectures arm64 + x86_64 SupportedPlatform ios + SupportedPlatformVariant + simulator BinaryPath @@ -44,16 +45,15 @@ DebugSymbolsPath dSYMs LibraryIdentifier - ios-arm64_x86_64-simulator + xros-arm64-simulator LibraryPath CanvasSVG.framework SupportedArchitectures arm64 - x86_64 SupportedPlatform - ios + xros SupportedPlatformVariant simulator @@ -63,7 +63,7 @@ DebugSymbolsPath dSYMs LibraryIdentifier - xros-arm64 + tvos-arm64 LibraryPath CanvasSVG.framework SupportedArchitectures @@ -71,7 +71,7 @@ arm64 SupportedPlatform - xros + tvos BinaryPath @@ -79,7 +79,7 @@ DebugSymbolsPath dSYMs LibraryIdentifier - xros-arm64-simulator + tvos-arm64-simulator LibraryPath CanvasSVG.framework SupportedArchitectures @@ -87,7 +87,7 @@ arm64 SupportedPlatform - xros + tvos SupportedPlatformVariant simulator @@ -97,7 +97,7 @@ DebugSymbolsPath dSYMs LibraryIdentifier - tvos-arm64 + xros-arm64 LibraryPath CanvasSVG.framework SupportedArchitectures @@ -105,7 +105,7 @@ arm64 SupportedPlatform - tvos + xros CFBundlePackageType diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/CanvasSVG index 1162ce9b..62819c88 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index f0479ce6..23d5785d 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index c307427d..73cbae07 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-iphoneos/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xB1AEA, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CF120, symSize: 0x0 } - - { offset: 0xB1B1F, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CF150, symSize: 0x0 } + - { offset: 0xB1AEA, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CF4C0, symSize: 0x0 } + - { offset: 0xB1B1F, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CF4F0, symSize: 0x0 } - { offset: 0xB1B5C, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 } - { offset: 0xB1B99, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 } - { offset: 0xB1C34, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x84, symBinAddr: 0x4084, symSize: 0x4C } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/CanvasSVG index 1f6c07ff..81984d2e 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index 5d5fa910..072c2033 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index 2bd3b4df..698344a5 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-iphonesimulator/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xAF8BD, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CDF00, symSize: 0x0 } - - { offset: 0xAF8F2, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CDF30, symSize: 0x0 } + - { offset: 0xAF8BD, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CE2C0, symSize: 0x0 } + - { offset: 0xAF8F2, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CE2F0, symSize: 0x0 } - { offset: 0xAF92F, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1738, symSize: 0x84 } - { offset: 0xAF96C, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1738, symSize: 0x84 } - { offset: 0xAFA07, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x84, symBinAddr: 0x17BC, symSize: 0x4C } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasSVG.yml index 812b01b3..128489b6 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/x86_64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'x86_64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-iphonesimulator/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xB22AC, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x65FB80, symSize: 0x0 } - - { offset: 0xB22E1, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x65FBB0, symSize: 0x0 } + - { offset: 0xB22AC, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x660180, symSize: 0x0 } + - { offset: 0xB22E1, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x6601B0, symSize: 0x0 } - { offset: 0xB231E, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x16D0, symSize: 0x86 } - { offset: 0xB235B, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x16D0, symSize: 0x86 } - { offset: 0xB2433, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x86, symBinAddr: 0x1756, symSize: 0x57 } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/CanvasSVG.framework/CanvasSVG index b9d10b14..387d04a1 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index b1700bed..50fd55e8 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index eba73c20..451c8b6e 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-appletvsimulator/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xADE02, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CDA00, symSize: 0x0 } - - { offset: 0xADE37, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CDA30, symSize: 0x0 } + - { offset: 0xADE02, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CDDC0, symSize: 0x0 } + - { offset: 0xADE37, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CDDF0, symSize: 0x0 } - { offset: 0xADE74, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1738, symSize: 0x84 } - { offset: 0xADEB1, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1738, symSize: 0x84 } - { offset: 0xADF4C, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x84, symBinAddr: 0x17BC, symSize: 0x4C } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/CanvasSVG.framework/CanvasSVG index e214286e..b6ed7972 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index 37619248..5d2c4381 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index e5cad0c6..d459cc0a 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/tvos-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-appletvos/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xB0016, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CEBE0, symSize: 0x0 } - - { offset: 0xB004B, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CEC10, symSize: 0x0 } + - { offset: 0xB0016, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CEFA0, symSize: 0x0 } + - { offset: 0xB004B, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CEFD0, symSize: 0x0 } - { offset: 0xB0088, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 } - { offset: 0xB00C5, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x84 } - { offset: 0xB0160, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x84, symBinAddr: 0x4084, symSize: 0x4C } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/CanvasSVG.framework/CanvasSVG index 00f9f7a0..e11fc6f1 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index e98ad76a..6b7c66e9 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index 55038da0..771a6de9 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64-simulator/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-xrsimulator/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xAF932, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CB8C0, symSize: 0x0 } - - { offset: 0xAF967, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CB8F0, symSize: 0x0 } + - { offset: 0xAF932, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5CBC80, symSize: 0x0 } + - { offset: 0xAF967, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5CBCB0, symSize: 0x0 } - { offset: 0xAF9A4, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1508, symSize: 0x7C } - { offset: 0xAF9E1, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x1508, symSize: 0x7C } - { offset: 0xAFA7C, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x7C, symBinAddr: 0x1584, symSize: 0x48 } diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/CanvasSVG.framework/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/CanvasSVG.framework/CanvasSVG index 3997eadb..ed923a9d 100755 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/CanvasSVG.framework/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/CanvasSVG.framework/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG index d584b8f8..4050acbd 100644 Binary files a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG and b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/DWARF/CanvasSVG differ diff --git a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml index 761790ec..097805b1 100644 --- a/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml +++ b/packages/canvas-svg/platforms/ios/CanvasSVG.xcframework/xros-arm64/dSYMs/CanvasSVG.framework.dSYM/Contents/Resources/Relocations/aarch64/CanvasSVG.yml @@ -2,8 +2,8 @@ triple: 'arm64-apple-darwin' binary-path: '/Users/triniwiz/Documents/GitHub/canvas/packages/canvas-svg/src-native/ios/dist/Release-xros/CanvasSVG.framework/CanvasSVG' relocations: - - { offset: 0xB1AE0, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5C33A0, symSize: 0x0 } - - { offset: 0xB1B15, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5C33D0, symSize: 0x0 } + - { offset: 0xB1AE0, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionString, symObjAddr: 0x0, symBinAddr: 0x5C3760, symSize: 0x0 } + - { offset: 0xB1B15, size: 0x8, addend: 0x0, symName: _CanvasSVGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5C3790, symSize: 0x0 } - { offset: 0xB1B52, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x7C } - { offset: 0xB1B8F, size: 0x8, addend: 0x0, symName: '+[CanvasSVGHelper drawFromString:size:width:height:svg:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x7C } - { offset: 0xB1C2A, size: 0x8, addend: 0x0, symName: _nscSVGNativeScale, symObjAddr: 0x7C, symBinAddr: 0x407C, symSize: 0x48 } diff --git a/packages/canvas-svg/platforms/windows/arm64/canvassvg.node b/packages/canvas-svg/platforms/windows/arm64/canvassvg.node index 7eb4cee0..16bea910 100644 Binary files a/packages/canvas-svg/platforms/windows/arm64/canvassvg.node and b/packages/canvas-svg/platforms/windows/arm64/canvassvg.node differ diff --git a/packages/canvas-svg/platforms/windows/x64/canvassvg.node b/packages/canvas-svg/platforms/windows/x64/canvassvg.node index bbbd8604..bb4b778b 100644 Binary files a/packages/canvas-svg/platforms/windows/x64/canvassvg.node and b/packages/canvas-svg/platforms/windows/x64/canvassvg.node differ diff --git a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/arm64-v8a/libcanvassvg.so b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/arm64-v8a/libcanvassvg.so index e87ca9f2..b6b5fdcb 100755 Binary files a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/arm64-v8a/libcanvassvg.so and b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/arm64-v8a/libcanvassvg.so differ diff --git a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/armeabi-v7a/libcanvassvg.so b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/armeabi-v7a/libcanvassvg.so index 33cbbe21..56d96d30 100755 Binary files a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/armeabi-v7a/libcanvassvg.so and b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/armeabi-v7a/libcanvassvg.so differ diff --git a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86/libcanvassvg.so b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86/libcanvassvg.so index 7024ff90..61362bc3 100755 Binary files a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86/libcanvassvg.so and b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86/libcanvassvg.so differ diff --git a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86_64/libcanvassvg.so b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86_64/libcanvassvg.so index 60ff91f9..4df4cd8a 100755 Binary files a/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86_64/libcanvassvg.so and b/packages/canvas-svg/src-native/android/canvassvg/src/main/jniLibs/x86_64/libcanvassvg.so differ