diff --git a/crates/egui_demo_lib/Cargo.toml b/crates/egui_demo_lib/Cargo.toml
index 013e2d24..a86f3dcd 100644
--- a/crates/egui_demo_lib/Cargo.toml
+++ b/crates/egui_demo_lib/Cargo.toml
@@ -16,7 +16,7 @@ include = [
"../LICENSE-MIT",
"**/*.rs",
"Cargo.toml",
- "data/icon.png",
+ "data/*",
]
[lints]
@@ -43,7 +43,7 @@ syntect = ["egui_extras/syntect"]
[dependencies]
egui = { workspace = true, default-features = false, features = ["color-hex"] }
-egui_extras = { workspace = true, features = ["default"] }
+egui_extras = { workspace = true, features = ["default", "file", "svg"] }
unicode_names2 = { version = "0.6.0", default-features = false } # this old version has fewer dependencies
diff --git a/crates/egui_demo_lib/data/peace.svg b/crates/egui_demo_lib/data/peace.svg
new file mode 100644
index 00000000..4bf3e33a
--- /dev/null
+++ b/crates/egui_demo_lib/data/peace.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/crates/egui_demo_lib/src/demo/demo_app_windows.rs b/crates/egui_demo_lib/src/demo/demo_app_windows.rs
index 7b897278..892c6f40 100644
--- a/crates/egui_demo_lib/src/demo/demo_app_windows.rs
+++ b/crates/egui_demo_lib/src/demo/demo_app_windows.rs
@@ -100,6 +100,7 @@ impl Default for DemoGroups {
Box::::default(),
Box::::default(),
Box::::default(),
+ Box::::default(),
Box::::default(),
Box::::default(),
]),
diff --git a/crates/egui_demo_lib/src/demo/tests/mod.rs b/crates/egui_demo_lib/src/demo/tests/mod.rs
index d9fad538..dc69cca7 100644
--- a/crates/egui_demo_lib/src/demo/tests/mod.rs
+++ b/crates/egui_demo_lib/src/demo/tests/mod.rs
@@ -6,6 +6,7 @@ mod input_event_history;
mod input_test;
mod layout_test;
mod manual_layout_test;
+mod svg_test;
mod tessellation_test;
mod window_resize_test;
@@ -17,5 +18,6 @@ pub use input_event_history::InputEventHistory;
pub use input_test::InputTest;
pub use layout_test::LayoutTest;
pub use manual_layout_test::ManualLayoutTest;
+pub use svg_test::SvgTest;
pub use tessellation_test::TessellationTest;
pub use window_resize_test::WindowResizeTest;
diff --git a/crates/egui_demo_lib/src/demo/tests/svg_test.rs b/crates/egui_demo_lib/src/demo/tests/svg_test.rs
new file mode 100644
index 00000000..a75c29d7
--- /dev/null
+++ b/crates/egui_demo_lib/src/demo/tests/svg_test.rs
@@ -0,0 +1,32 @@
+pub struct SvgTest {
+ color: egui::Color32,
+}
+
+impl Default for SvgTest {
+ fn default() -> Self {
+ Self {
+ color: egui::Color32::LIGHT_RED,
+ }
+ }
+}
+
+impl crate::Demo for SvgTest {
+ fn name(&self) -> &'static str {
+ "SVG Test"
+ }
+
+ fn show(&mut self, ctx: &egui::Context, open: &mut bool) {
+ egui::Window::new(self.name()).open(open).show(ctx, |ui| {
+ use crate::View as _;
+ self.ui(ui);
+ });
+ }
+}
+
+impl crate::View for SvgTest {
+ fn ui(&mut self, ui: &mut egui::Ui) {
+ let Self { color } = self;
+ ui.color_edit_button_srgba(color);
+ ui.add(egui::Image::new(egui::include_image!("../../../data/peace.svg")).tint(*color));
+ }
+}
diff --git a/crates/egui_extras/src/image.rs b/crates/egui_extras/src/image.rs
index d7aa3126..fd97fb87 100644
--- a/crates/egui_extras/src/image.rs
+++ b/crates/egui_extras/src/image.rs
@@ -295,7 +295,7 @@ pub fn load_svg_bytes_with_size(
&mut pixmap.as_mut(),
);
- let image = egui::ColorImage::from_rgba_unmultiplied([w as _, h as _], pixmap.data());
+ let image = egui::ColorImage::from_rgba_premultiplied([w as _, h as _], pixmap.data());
Ok(image)
}