diff --git a/CHANGELOG.md b/CHANGELOG.md index be012a6c..692645a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,36 @@ This changelog also contains important changes in dependencies. ## [Unreleased] +## [2.6.0] - 2023-10-20 + +πŸš€ Up to **115x faster** for very large SVG files + +Now resvg has been upgraded from v0.29.0 to [v0.34.0](https://github.com/RazrFalcon/resvg/blob/master/CHANGELOG.md#user-content-0340---2023-05-27), bringing with it a host of new SVG features and performance improvements. + +- Support SVG2 `mask-type` property. +- Allows quadratic BΓ©zier curves: text might render slightly differently (better?). This is because TrueType fonts contain only quadratic curves and we were converting them to cubic before. + +- Clipping and masking is up to 20% faster. +- Reduces the peak memory usages for SVGs with large paths (in terms of the number of segments). +- A new rendering algorithm.
+ When rendering [isolated groups](https://razrfalcon.github.io/notes-on-svg-parsing/isolated-groups.html), + aka layers, we have to know the layer bounding box beforehand, which is ridiculously hard in SVG.
+ Previously, resvg would simply use the canvas size for all the layers. + Meaning that to render a 10x10px layer on a 1000x1000px canvas, we would have to allocate and then blend + a 1000x1000px layer, which is just a waste of CPU cycles.
+ The new rendering algorithm is able to calculate layer bounding boxes, which dramatically improves + performance when rendering a lot of tiny layers on a large canvas.
+ Moreover, it makes performance more linear with a canvas size increase.
+ The [paris-30k.svg](https://github.com/google/forma/blob/681e8bfd348caa61aab47437e7d857764c2ce522/assets/svgs/paris-30k.svg) + sample from [google/forma](https://github.com/google/forma) is rendered _115 times_ faster on M1 Pro now. + From ~33760ms down to ~290ms. 5269x3593px canvas.
+ If we restrict the canvas to 1000x1000px, which would contain only the actual `paris-30k.svg` content, + then we're _13 times_ faster. From ~3252ms down to ~253ms. + +### Added + +- feat: upgrade to usvg/resvg 0.34.0. [#268](https://github.com/yisibl/resvg-js/pull/268) Thanks to @zimond + ## [2.5.0] - 2023-10-16 ### Added @@ -20,7 +50,7 @@ In addition, we implemented smarter default font family fallback. the `defaultFo ```html