版本发布 8
**[Crates.io](https://crates.io/crates/vello/0.7.0) | [Docs](https://docs.rs/vello/0.7.0/vello/)** This release has an [MSRV][] of 1.88. ### Changed - Breaking change: wgpu has been updated to wgpu 27. (#1280 by @theoparis) This has been chosen to match the version used by the upcoming Bevy 0.18. (Note that we do not guarantee that our latest release will always match Bevy's wgpu version.) - Breaking change: Allow setting `Scene` layer clip shape drawing style, adding even-odd filled path clipping and stroked path clipping to the various scene layer methods (`Scene::{push_layer, push_luminance_mask_layer, push_clip_layer}`). (#1332 by @waywardmonkeys, #1342 by @tomcur) When pushing a layer, you should use `Fill::NonZero` as the clip draw style to achieve the same behavior as previous versions. - Breaking change: Updated Peniko to [v0.6.0](https://github.com/linebender/peniko/releases/tag/v0.6.0). (#1349 by @DJMcNab) - This also updates Kurbo to [v0.13.0](https://github.com/linebender/kurbo/releases/tag/v0.13.0). ### Fixed - Bitmap emoji displayed at an incorrect position when scaled. (#1273 by @ArthurCose) - Miter joins for path segments with near-parallel endpoint tangents no longer cause rendering artifacts. (#1323 by @Cupnfish and @tomcur) --- This release also coincides with the release of v0.7.0 of Vello Shaders: **[Crates.io](https://crates.io/crates/vello_shaders/0.7.0) | [Docs](https://docs.rs/vello_shaders/0.7.0/vello_shaders/)** and Vello Encoding: **[Crates.io](https://crates.io/crates/vello_encoding/0.7.0) | [Docs](https://docs.rs/vello_encoding/0.7.0/vello_encoding/)** ## New Contributors * @ArthurCose made their first contribution in https://github.com/linebender/vello/pull/1273 * @theoparis made their first contribution in https://github.com/linebender/vello/pull/1280 * @Cupnfish made their first contribution in https://github.com/linebender/vello/pull/1323 **Full Changelog**: https://github.com/linebender/vello/compare/v0.6.0...v0.7.0 [MSRV]: README.md#minimum-supported-rust-version-msrv
The third alpha version of the Vello Sparse Strips renderers (version 0.0.3) has been released. We expect to follow-up with v0.1.0 in the near future. You can track this in [#vello > Vello CPU v0.1 release](https://xi.zulipchat.com/#narrow/channel/197075-vello/topic/Vello.20CPU.20v0.2E1.20release/with/539811881). This release has an [MSRV] of 1.86. ### Vello CPU This release contains only Vello CPU, which runs entirely on the CPU. The imaging model exposed by Vello CPU is very similar to that of current Vello. **[Crates.io](https://crates.io/crates/vello_cpu/0.0.3) | [Docs](https://docs.rs/vello_cpu/0.0.3/vello_cpu/)** This implementation is now broadly usable, with a reasonably complete imaging model and competitive performance. It does not however have any API stability guarantees, as we intend to redesign the API to be consistent across the Vello renderers. Performance information can be seen at https://laurenzv.github.io/vello_chart/ (although note that this URL is not "time-locked", so might shows results from a slightly newer or older version than this tag). ### Vello Common This release also coincides with the release of Vello Common, a support crate used by Vello CPU: **[Crates.io](https://crates.io/crates/vello_common/0.0.3) | [Docs](https://docs.rs/vello_common/0.0.3/vello_common/)** Vello Common itself does not currently have any stable API surface, as it is only an implementation detail of Vello CPU. We have not been maintaining a CHANGELOG for the sparse strips packages whilst they are in alpha, but you can follow the [roadmap](https://docs.google.com/document/d/1ZquH-53j2OedTbgEKCJBKTh4WLE11UveM10mNdnVARY/edit?tab=t.0#heading=h.j3duh9pgdm94), or follow progress [on Zulip](https://xi.zulipchat.com/#narrow/channel/197075-vello). **Full Changelog**: https://github.com/linebender/vello/compare/sparse-stips-v0.0.2...sparse-strips-v0.0.3 [MSRV]: README.md#minimum-supported-rust-version-msrv
The first alpha version of the Vello Sparse Strips renderers (version 0.0.1) has been released. This is a new implementation strategy for Vello which has wider hardware compatibility, and resolves some performance cliffs. This release has an [MSRV] of 1.85. ### Vello CPU This initial release contains only Vello CPU, which runs entirely on the CPU. The imaging model exposed by Vello CPU is very similar to that of current Vello. **[Crates.io](https://crates.io/crates/vello_cpu/0.0.1) | [Docs](https://docs.rs/vello_cpu/0.0.1/vello_cpu/)** This implementation is in very early stages, and does not have any API stability guarantees. ### Vello Common This release also coincides with the release of Vello Common, a support crate used by Vello CPU: **[Crates.io](https://crates.io/crates/vello_common/0.0.1) | [Docs](https://docs.rs/vello_common/0.0.1/vello_common/)** Vello Common itself does not currently have any stable API surface, as it is only an implementation detail of Vello CPU. We will not be maintaining a CHANGELOG for the sparse strips packages whilst they are in alpha, but you can follow the [roadmap](https://docs.google.com/document/d/1ZquH-53j2OedTbgEKCJBKTh4WLE11UveM10mNdnVARY/edit?tab=t.0#heading=h.j3duh9pgdm94), or follow progress [on Zulip](https://xi.zulipchat.com/#narrow/channel/197075-vello). [MSRV]: README.md#minimum-supported-rust-version-msrv
**[Crates.io](https://crates.io/crates/vello/0.5.0) | [Docs](https://docs.rs/vello/0.5.0/vello/)** This release has an [MSRV] of 1.85. ## Added - Breaking: Support for pipeline caches. (#524 by @DJMcNab) - Implement `Default` for `RendererOptions`. (#524 by @DJMcNab) ```diff RendererOptions { // ... + ..Default::default() } ``` ## Removed - Breaking: `Renderer::render_to_surface` has been removed. (#803 by @DJMcNab) This API was not fit for purpose, as it assumed that you would only ever use a single window. The new recommended way to use Vello to render to a surface is to use `Renderer::render_to_texture` to render to an intermediate texture, then blit from that to the surface yourself. We suggest using the [`TextureBlitter`](https://docs.rs/wgpu/latest/wgpu/util/struct.TextureBlitter.html) utility from `wgpu`. For users of the `util` module, it has been updated to create a suitable blit pipeline and intermediate texture for each surface. ```diff +let target_view = /* cached: device.create_texture(/* size of surface*/).create_view(...) */; - device.render_to_surface(..., &surface_texture, ...); + device.render_to_texture(..., &target_view, ...); +let mut encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor { + label: Some("Surface Blit"), +}); +blitter.copy( + &device, + &mut encoder, + &target_view, + &surface_texture.create_view(&wgpu::TextureViewDescriptor::default()), +); +queue.submit([encoder.finish()]); ``` ## Changed - Breaking: wgpu has been updated to wgpu 24. (#791 by @songhuaixu) This has been chosen to match the version used by Bevy 0.16. (Note that we do not guarantee that our latest release will always match Bevy's wgpu version) - Breaking: `override_image` has been updated to remove its use of `Arc`, as `wgpu::Texture`s are now internally reference counted. (#802 by @DJMcNab) This release also coincides with the release of v0.5.0 of Vello Shaders: **[Crates.io](https://crates.io/crates/vello_shaders/0.5.0) | [Docs](https://docs.rs/vello_shaders/0.5.0/vello_shaders/)** and Vello Encoding: **[Crates.io](https://crates.io/crates/vello_encoding/0.5.0) | [Docs](https://docs.rs/vello_encoding/0.5.0/vello_encoding/)** [MSRV]: README.md#minimum-supported-rust-version-msrv ## New Contributors * @songhuaixu made their first contribution in https://github.com/linebender/vello/pull/791 * @grebmeg made their first contribution in https://github.com/linebender/vello/pull/826 * @LaurenzV made their first contribution in https://github.com/linebender/vello/pull/827 * @taj-p made their first contribution in https://github.com/linebender/vello/pull/864 * @spirali made their first contribution in https://github.com/linebender/vello/pull/892 * @sagudev made their first contribution in https://github.com/linebender/vello/pull/973 **Full Changelog**: https://github.com/linebender/vello/compare/v0.4.0...v0.5.0
**[Crates.io](https://crates.io/crates/vello/0.4.1) | [Docs](https://docs.rs/vello/0.4.1/vello/index.html)** This release has an [MSRV][] of 1.82. ## Fixed - Incorrect COLR Emoji Rendering (#841 by @dfrg) This release also coincides with the release of v0.4.1 of [Vello Shaders](https://crates.io/crates/vello_shaders) and [Vello Encoding](https://crates.io/crates/vello_encoding). **Full Changelog**: https://github.com/linebender/vello/compare/v0.4.0...v0.4.1 [MSRV]: README.md#minimum-supported-rust-version-msrv
**[Crates.io](https://crates.io/crates/vello/0.4.0) | [Docs](https://docs.rs/vello/0.4.0/vello/)** This release has an MSRV of 1.82. ## Highlights As part of an initiative to improve color handling across the ecosystem (and especially within Linebender crates), Vello is now using the new `color` crate. This is the first step towards providing richer color functionality, better handling of color interpolation, and more. This release intentionally uses `wgpu` 23.0.1 rather than 24.0.0 so that it can match the version used in Bevy 0.15. ## Changed - Breaking: Updated `wgpu` to 23.0.1 (#735, #743 by @waywardmonkeys) - Breaking: Updated to new `peniko` and `color` is now used for all colors (#742 by @waywardmonkeys) - Breaking: As part of the update to `color`, the byte order of `vello_encoding::DrawColor` is changed (#758 by @waywardmonkeys, #796 by @tomcur). - Breaking: The `full` feature is no longer present as the full pipeline is now always built (#754 by @waywardmonkeys) - The `r8` permutation of the shaders is no longer available (#756 by @waywardmonkeys) - Breaking: The `buffer_labels` feature is no longer present as the labels are always configured (#757 by @waywardmonkeys) - Breaking: Use a type alias for `i16` rather than `skrifa::NormalizedCoord` in the public API (#747 by @nicoburns) ## Fixed - Offset in image rendering, and sampling outside correct atlas area (#722 by @dfrg) - Inference conflict when using Kurbo's `schemars` feature (#733 by @ratmice) - Detection of PNG format bitmap fonts, primarily for Apple systems (#740 by @LaurenzV) - Support image extend modes, nearest-neighbor sampling and alpha (#766 by @dfrg) - Correct vertical offset for Apple Color Emoji (#792 by @dfrg) ## New Contributors * @tomcur made their first contribution in #796 This release also coincides with the release of v0.4.0 of [Vello Shaders](https://crates.io/crates/vello_shaders) and [Vello Encoding](https://crates.io/crates/vello_encoding). **Full Changelog**: https://github.com/linebender/vello/compare/v0.3.0...v0.4.0
[Vello](https://crates.io/crates/vello) v0.3.0 is here! ### Highlights - Support for most Emoji ([#615][], [#641][] by [@DJMcNab]) - [GPU Friendly Stroke Expansion][stroke-expansion], which documents key parts of how Vello works, was released (by [@raphlinus], [@armansito]) - Blurred rounded rectangles are now supported, which can be used for box shadows ([#665][] by [@msiglreith][]) - Vello is no longer considered experimental 🎉 ([#691][] by [@waywardmonkeys]) Note that Vello is still an alpha, but we believe that the direction has been proven. Read [the changelog](https://github.com/linebender/vello/blob/main/CHANGELOG.md#030---2024-10-04) for full details. This release also coincides with the release of v0.2.1 of [Vello Shaders](https://crates.io/crates/vello_shaders) and [Vello Encoding](https://crates.io/crates/vello_encoding). [@raphlinus]: https://github.com/raphlinus [@armansito]: https://github.com/armansito [@DJMcNab]: https://github.com/DJMcNab [@msiglreith]: https://github.com/msiglreith [@waywardmonkeys]: https://github.com/waywardmonkeys [#615]: https://github.com/linebender/vello/pull/615 [#641]: https://github.com/linebender/vello/pull/641 [#665]: https://github.com/linebender/vello/pull/665 [#691]: https://github.com/linebender/vello/pull/691 [stroke-expansion]: https://linebender.org/gpu-stroke-expansion-paper/
[Vello](https://crates.io/crates/vello) v0.2.1 is here! This release is a patch to resolve #291, which is a crash when attempting to render an empty scene. We now also require wgpu v0.20.1, as wgpu 0.20.0 was yanked. Read [the changelog](https://github.com/linebender/vello/blob/main/CHANGELOG.md#021---2024-07-16) for full details. This release also coincides with the release of v0.2.1 of [Vello Shaders](https://crates.io/crates/vello_shaders) and [Vello Encoding](https://crates.io/crates/vello_encoding).