From 04c9527a24f6379075ddefa8ae17ed0f1a1f0ef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=B8=9D?= Date: Fri, 20 Oct 2023 22:11:24 +0800 Subject: [PATCH] 2.6.0 --- CHANGELOG.md | 55 ++++++++++++++++++++++------ README.md | 42 ++++++++++----------- npm/android-arm-eabi/package.json | 2 +- npm/android-arm64/package.json | 2 +- npm/darwin-arm64/package.json | 2 +- npm/darwin-x64/package.json | 2 +- npm/linux-arm-gnueabihf/package.json | 2 +- npm/linux-arm64-gnu/package.json | 2 +- npm/linux-arm64-musl/package.json | 2 +- npm/linux-x64-gnu/package.json | 2 +- npm/linux-x64-musl/package.json | 2 +- npm/win32-arm64-msvc/package.json | 2 +- npm/win32-ia32-msvc/package.json | 2 +- npm/win32-x64-msvc/package.json | 2 +- package.json | 2 +- wasm/package.json | 2 +- 16 files changed, 78 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be012a6c..7db7c8ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,34 @@ This changelog also contains important changes in dependencies. ## [Unreleased] +## [2.6.0] - 2023-10-20 + +Now resvg has been upgraded from v0.29.0 to v0.34.0, 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 +48,7 @@ In addition, we implemented smarter default font family fallback. the `defaultFo ```html