Desktop: Add taskbar icon on Windows (#3225)

* include icon as resource on windows

* load icon
This commit is contained in:
Timon
2025-09-26 14:30:01 +02:00
committed by Dennis Kobert
parent d06c8164e1
commit 4bb1d05fc3
5 changed files with 42 additions and 3 deletions
+4 -1
View File
@@ -48,7 +48,7 @@ serde = { workspace = true }
ash = { version = "0.38", optional = true }
# Windows-specific dependencies
[target.'cfg(windows)'.dependencies]
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.58.0", features = [
"Win32_Foundation",
"Win32_Graphics_Direct3D11",
@@ -72,3 +72,6 @@ core-foundation = { version = "0.9", optional = true }
# Linux-specific dependencies
[target.'cfg(target_os = "linux")'.dependencies]
libc = { version = "0.2", optional = true }
[target.'cfg(target_os = "windows")'.build-dependencies]
winres = "0.1"
Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

+8
View File
@@ -0,0 +1,8 @@
fn main() {
#[cfg(target_os = "windows")]
{
let mut res = winres::WindowsResource::new();
res.set_icon("assets/graphite-icon-color.ico");
res.compile().expect("Failed to compile Windows resources");
}
}
+9
View File
@@ -39,8 +39,17 @@ impl NativeWindowHandle {
} else {
let x11_window = WindowAttributesX11::default().with_name(APP_ID, APP_NAME);
window.with_platform_attributes(Box::new(x11_window))
};
}
#[cfg(target_os = "windows")]
{
if let Ok(win_icon) = winit::platform::windows::WinIcon::from_resource(1, None) {
let icon = winit::icon::Icon(std::sync::Arc::new(win_icon));
window = window.with_window_icon(Some(icon));
}
}
window
}
#[allow(unused_variables)]