Transform components order. Affects only usvg SVG output and C API.
[0.34.0] - 2023-05-27
Changed
usvg uses tiny-skia geometry primitives now, including the Path container.
The main difference compared to the old usvg primitives
is that tiny-skia uses f32 instead of f64.
So while in theory we could loose some precision, in practice, f32 is used mainly
as a storage type and precise math operations are still done using f64.
tiny-skia primitives are move robust, strict and have a nicer API.
More importantly, this change reduces the peak memory usages for SVGs with large paths
(in terms of the number of segments).
And removes the need to convert usvg::PathData into tiny-skia::Path before rendering.
Which was just a useless reallocation.
All numbers are stored as f32 instead of f64 now.
Because we use tiny-skia::Path now, we allow quadratic curves as well.
This includes usvg CLI output.
Because we allow quadratic curves now, text might render slightly differently (better?).
This is because TrueType fonts contain only quadratic curves
and we were converting them to cubic before.
usvg::Path no longer implements Default. Use usvg::Path::new instead.
Replace usvg::Rect with tiny_skia::NonZeroRect.
Replace usvg::PathBbox with tiny_skia::Rect.
Unlike the old usvg::PathBbox, tiny_skia::Rect allows both width and height to be zero.
This is not an error.
usvg::filter::Turbulence::base_frequency was split into base_frequency_x and base_frequency_y.
usvg::NodeExt::calculate_bbox no longer includes stroke bbox.
(c-api) Use float instead of double everywhere.
The svgfilters crate was merged into resvg.
The rosvgtree crate was merged into usvg-parser.
usvg::Group::filter_fill moved to usvg::filter::Filter::fill_paint.
usvg::Group::filter_stroke moved to usvg::filter::Filter::stroke_paint.
Remove
usvg::Point. Use tiny_skia::Point instead.
usvg::FuzzyEq. Use usvg::ApproxEqUlps instead.
usvg::FuzzyZero. Use usvg::ApproxZeroUlps instead.
(c-api) resvg_path_bbox. Use resvg_rect instead.
svgfilters crate.
rosvgtree crate.
Fixed
Write transform on clipPath children in usvg SVG output.
Do not duplicate marker children IDs.
Previously, each element resolved for a marker would preserve its ID.
Affects only usvg SVG output and doesn't affect rendering.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps resvg from 0.31.0 to 0.34.1.
Release notes
Sourced from resvg's releases.
Changelog
Sourced from resvg's changelog.
... (truncated)
Commits
341c979
Version bump.39ac8dd
Update readme.c5e7eab
Fix transform components order.0070ccb
Add missing files.8fa74a1
Version bump.c4cdbc9
Sync tests.c804272
Move filter paints from Group to Filter.d00189c
Do not duplicate marker children IDs.f3ca15d
Fixes bogus warnings when parsing rendering modes.279b914
Clarify output color space in the docs.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)