Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
9267170
Draft `vello_cpu` renderer
hecrj Jan 27, 2026
fd7219c
Remove leftover `tiny-skia` literals
hecrj Jan 27, 2026
fb48bbf
Draft `Paragraph` rendering in `vello_cpu`
hecrj Jan 27, 2026
fcd20b9
Avoid `Pixmap` blit in `vello_cpu` renderer
hecrj Jan 31, 2026
bcca356
Add `wrapping` and `ellipsis` to `cache::Key`
hecrj Mar 27, 2026
01393e8
Update `vello_cpu` to `0.7`
hecrj Mar 27, 2026
9abbdac
Enable `multithreading` for `vello_cpu`
hecrj Mar 27, 2026
90af5e3
Draw `Text::Cached` in `vello_cpu` backend
hecrj Mar 28, 2026
e4f2274
Draw `Text::Editor` in `vello_cpu` backend
hecrj Mar 30, 2026
6604173
Draw `Text::Raw` in `vello_cpu` backend
hecrj Mar 30, 2026
83c6485
Implement `raster` image rendering for `vello_cpu` backend
hecrj Apr 1, 2026
9621951
Implement headless `screenshot` for `vello_cpu` backend
hecrj Apr 1, 2026
d6178f2
Draw `Gradient` background in `vello_cpu` backend
hecrj Apr 2, 2026
1cc9e18
Implement `vector` image rendering for `vello_cpu` backend
hecrj Apr 4, 2026
1d7ce56
Implement `geometry` rendering for `vello_cpu` backend
hecrj Apr 6, 2026
d55ff20
Draw quad shadows in `vello_cpu` backend
hecrj Apr 15, 2026
9b3e065
Draw rounded corners for images in `vello_cpu` backend
hecrj Apr 15, 2026
3c2deb0
Enable `vello_cpu` when `software` backend name is used
hecrj Apr 16, 2026
a144b75
Merge branch 'master' into vello_cpu
hecrj Apr 16, 2026
32553a4
Avoid `vello_cpu` dependency when not explicitly enabled
hecrj Apr 18, 2026
6f95d3d
Merge branch 'master' into vello_cpu
hecrj Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/document.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
-p iced_highlighter \
-p iced_renderer \
-p iced_runtime \
-p iced_tiny_skia \
-p iced_vello_cpu \
-p iced_wgpu \
-p iced_widget \
-p iced_winit \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: --deny warnings
ICED_TEST_BACKEND: tiny-skia
ICED_TEST_BACKEND: vello_cpu
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
Expand Down
142 changes: 120 additions & 22 deletions Cargo.lock

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

15 changes: 9 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,15 @@ all-features = true
maintenance = { status = "actively-developed" }

[features]
default = ["wgpu", "tiny-skia", "crisp", "hinting", "web-colors", "thread-pool", "linux-theme-detection", "x11", "wayland"]
default = ["wgpu", "vello-cpu", "crisp", "hinting", "web-colors", "thread-pool", "linux-theme-detection", "x11", "wayland"]
# Enables the `wgpu` GPU-accelerated renderer with all its default features (Vulkan, Metal, DX12, OpenGL, and WebGPU)
wgpu = ["wgpu-bare", "iced_renderer/wgpu"]
# Enables the `wgpu` GPU-accelerated renderer with the minimum required features (no backends!)
wgpu-bare = ["iced_renderer/wgpu-bare", "iced_widget/wgpu"]
# Enables the `tiny-skia` software renderer
tiny-skia = ["iced_renderer/tiny-skia"]
# Enables the `vello-cpu` software renderer
vello-cpu = ["iced_renderer/vello-cpu"]
# Enables multithreading in the `vello-cpu` software renderer
vello-cpu-multithreading = ["iced_renderer/vello-cpu-multithreading"]
# Enables the `image` widget and image clipboard support
image = ["image-without-codecs", "image/default", "iced_winit/image"]
# Enables the `image` widget, without any built-in codecs of the `image` crate
Expand Down Expand Up @@ -155,7 +157,7 @@ members = [
"selector",
"test",
"tester",
"tiny_skia",
"vello_cpu",
"wgpu",
"widget",
"winit",
Expand Down Expand Up @@ -188,7 +190,7 @@ iced_runtime = { version = "0.15.0-dev", path = "runtime" }
iced_selector = { version = "0.15.0-dev", path = "selector" }
iced_test = { version = "0.15.0-dev", path = "test" }
iced_tester = { version = "0.15.0-dev", path = "tester" }
iced_tiny_skia = { version = "0.15.0-dev", path = "tiny_skia", default-features = false }
iced_vello_cpu = { version = "0.15.0-dev", path = "vello_cpu", default-features = false }
iced_wgpu = { version = "0.15.0-dev", path = "wgpu", default-features = false }
iced_widget = { version = "0.15.0-dev", path = "widget" }
iced_winit = { version = "0.15.0-dev", path = "winit", default-features = false }
Expand Down Expand Up @@ -232,12 +234,13 @@ smol_str = "0.2"
softbuffer = { version = "0.4", default-features = false }
sysinfo = "0.33"
thiserror = "2"
tiny-skia = { version = "0.11", default-features = false, features = ["std", "simd"] }
tokio = "1.0"
tracing = "0.1"
two-face = { version = "0.4", default-features = false, features = ["syntect-default-fancy"] }
unicode-segmentation = "1.0"
url = "2.5"
vello_cpu = { version = "0.0.7", default-features = false, features = ["std", "u8_pipeline"] }
vello_common = { version = "0.0.7", default-features = false }
wasm-bindgen-futures = "0.4"
wasmtimer = "0.4.2"
web-sys = "=0.3.85"
Expand Down
4 changes: 1 addition & 3 deletions examples/clock/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ use iced::widget::canvas::{Cache, Geometry, LineCap, Path, Stroke, stroke};
use iced::widget::{canvas, container, text};
use iced::{
Degrees, Element, Fill, Font, Point, Radians, Rectangle, Renderer, Size, Subscription, Theme,
Vector,
};

pub fn main() -> iced::Result {
Expand Down Expand Up @@ -85,7 +84,6 @@ impl<Message> canvas::Program<Message> for Clock {
frame.fill(&background, palette.secondary.strong.color);

let short_hand = Path::line(Point::ORIGIN, Point::new(0.0, -0.5 * radius));

let long_hand = Path::line(Point::ORIGIN, Point::new(0.0, -0.8 * radius));

let width = radius / 100.0;
Expand All @@ -108,7 +106,7 @@ impl<Message> canvas::Program<Message> for Clock {
}
};

frame.translate(Vector::new(center.x, center.y));
frame.translate(center - Point::ORIGIN);
let minutes_portion = Radians::from(hand_rotation(self.now.minute(), 60)) / 12.0;
let hour_hand_angle =
Radians::from(hand_rotation(self.now.hour(), 12)) + minutes_portion;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
9af92d4906e8fa4abe11155dd9b2a934b6075d3cd8d9f07f6cb2ec6e0be887be

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
208deb1d2783d5b8aabd1708e971247dca5198d26e6f9b77734d382e5a311945

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5871ceb7153cb9501e207532e7a37d975c52889259a2b49f5ad3eed9c54c334a
Loading
Loading