Skip to content

Commit

Permalink
chore: update usvg dep
Browse files Browse the repository at this point in the history
  • Loading branch information
flxzt committed Feb 17, 2024
1 parent 86c1259 commit 0d98bc9
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 97 deletions.
97 changes: 24 additions & 73 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ same-file = "1"
unicode-segmentation = "1"
roxmltree = "0.19"
xmlwriter = "0.1"
usvg = "0.36"
usvg = "0.40"
svg = "0.15.1"
image = "0.24"
kurbo = "0.10"
Expand All @@ -76,7 +76,7 @@ glib-build-tools = "0.19.0"
gio = "0.19.0"
cairo-rs = { version = "0.19.1", features = ["v1_18", "png", "svg", "pdf"] }
# once a new librsvg (current v2.57.1) is released that includes updated cairo,
# this can be replaced by a crates-io dep.
# this can be replaced by the version on crates-io.
librsvg = { git = "https://gitlab.gnome.org/GNOME/librsvg", rev = "3a497b56fe581ab4fda1a80ac19352bfb91676b6" }
poppler-rs = { version = "0.23.0", features = ["v22_2"] }
gtk4 = { version = "0.8.0", features = ["v4_12"] }
Expand Down
19 changes: 9 additions & 10 deletions crates/rnote-engine/src/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use rnote_compose::transform::Transformable;
use serde::{Deserialize, Serialize};
use std::io::{self, Cursor};
use svg::Node;
use usvg::{TreeParsing, TreeTextToPath, TreeWriting};

/// Usvg font database
pub static USVG_FONTDB: Lazy<usvg::fontdb::Database> = Lazy::new(|| {
Expand Down Expand Up @@ -420,15 +419,14 @@ impl Svg {
const COORDINATES_PREC: u8 = 3;
const TRANSFORMS_PREC: u8 = 4;

let xml_options = usvg::XmlOptions {
let xml_options = usvg::WriteOptions {
id_prefix: Some(rnote_compose::utils::svg_random_id_prefix()),
preserve_text: true,
coordinates_precision: COORDINATES_PREC,
transforms_precision: TRANSFORMS_PREC,
writer_opts: xmlwriter::Options {
use_single_quote: false,
indent: xmlwriter::Indent::None,
attributes_indent: xmlwriter::Indent::None,
},
use_single_quote: false,
indent: xmlwriter::Indent::None,
attributes_indent: xmlwriter::Indent::None,
};
let bounds_simplified = Aabb::new(na::point![0.0, 0.0], self.bounds.extents().into());
let svg_data_wrapped = rnote_compose::utils::wrap_svg_root(
Expand All @@ -438,9 +436,10 @@ impl Svg {
false,
);

let mut usvg_tree = usvg::Tree::from_str(&svg_data_wrapped, &usvg::Options::default())?;
usvg_tree.convert_text(&USVG_FONTDB);
self.svg_data = rnote_compose::utils::remove_xml_header(&usvg_tree.to_string(&xml_options));
let usvg_tree =
usvg::Tree::from_str(&svg_data_wrapped, &usvg::Options::default(), &USVG_FONTDB)?;

self.svg_data = usvg_tree.to_string(&xml_options);
self.bounds = bounds_simplified;

Ok(())
Expand Down
24 changes: 12 additions & 12 deletions crates/rnote-engine/src/strokes/vectorimage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ use rnote_compose::transform::Transform;
use rnote_compose::transform::Transformable;
use serde::{Deserialize, Serialize};
use std::ops::Range;
use usvg::{TreeParsing, TreeTextToPath, TreeWriting};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default, rename = "vectorimage")]
Expand Down Expand Up @@ -143,21 +142,22 @@ impl VectorImage {
const COORDINATES_PREC: u8 = 3;
const TRANSFORMS_PREC: u8 = 4;

let xml_options = usvg::XmlOptions {
let xml_options = usvg::WriteOptions {
id_prefix: Some(rnote_compose::utils::svg_random_id_prefix()),
preserve_text: true,
coordinates_precision: COORDINATES_PREC,
transforms_precision: TRANSFORMS_PREC,
writer_opts: xmlwriter::Options {
use_single_quote: false,
indent: xmlwriter::Indent::None,
attributes_indent: xmlwriter::Indent::None,
},
use_single_quote: false,
indent: xmlwriter::Indent::None,
attributes_indent: xmlwriter::Indent::None,
};
let mut svg_tree = usvg::Tree::from_str(svg_data, &usvg::Options::default())?;
svg_tree.convert_text(&render::USVG_FONTDB);
let svg_tree =
usvg::Tree::from_str(svg_data, &usvg::Options::default(), &render::USVG_FONTDB)?;

let intrinsic_size =
na::vector![svg_tree.size.width() as f64, svg_tree.size.height() as f64];
let intrinsic_size = na::vector![
svg_tree.size().width() as f64,
svg_tree.size().height() as f64
];
let svg_data = svg_tree.to_string(&xml_options);
let rectangle = if let Some(size) = size {
Rectangle {
Expand All @@ -175,7 +175,7 @@ impl VectorImage {
};

Ok(Self {
svg_data: svg_data.to_string(),
svg_data,
intrinsic_size,
rectangle,
})
Expand Down

0 comments on commit 0d98bc9

Please sign in to comment.