Update egui/wgpu one major version

This commit is contained in:
Simon Gellis 2025-08-03 14:11:33 -04:00
parent 052e3e5c03
commit 43288fc71f
5 changed files with 162 additions and 102 deletions

158
Cargo.lock generated
View File

@ -187,12 +187,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55f533f8e0af236ffe5eb979b99381df3258853f00ba2e44b6e1955292c75227" checksum = "55f533f8e0af236ffe5eb979b99381df3258853f00ba2e44b6e1955292c75227"
dependencies = [ dependencies = [
"clipboard-win", "clipboard-win",
"image",
"log", "log",
"objc2 0.6.1", "objc2 0.6.1",
"objc2-app-kit 0.3.1", "objc2-app-kit 0.3.1",
"objc2-core-foundation",
"objc2-core-graphics",
"objc2-foundation 0.3.1", "objc2-foundation 0.3.1",
"parking_lot", "parking_lot",
"percent-encoding", "percent-encoding",
"windows-sys 0.59.0",
"x11rb", "x11rb",
] ]
@ -630,12 +634,6 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
[[package]]
name = "cfg_aliases"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
[[package]] [[package]]
name = "cfg_aliases" name = "cfg_aliases"
version = "0.2.1" version = "0.2.1"
@ -950,9 +948,9 @@ dependencies = [
[[package]] [[package]]
name = "ecolor" name = "ecolor"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d72e9c39f6e11a2e922d04a34ec5e7ef522ea3f5a1acfca7a19d16ad5fe50f5" checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"emath", "emath",
@ -961,12 +959,13 @@ dependencies = [
[[package]] [[package]]
name = "egui" name = "egui"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "252d52224d35be1535d7fd1d6139ce071fb42c9097773e79f7665604f5596b5e" checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3"
dependencies = [ dependencies = [
"accesskit", "accesskit",
"ahash", "ahash",
"bitflags 2.9.1",
"emath", "emath",
"epaint", "epaint",
"log", "log",
@ -977,17 +976,18 @@ dependencies = [
[[package]] [[package]]
name = "egui-toast" name = "egui-toast"
version = "0.15.0" version = "0.17.0"
source = "git+https://github.com/urholaukkarinen/egui-toast.git?rev=d0bcf97#d0bcf97cffbf9e580f609ccae27e8cd635047c53" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "366a31eb8c905835c85a36baff26d7a003a9fd6631a04b1f15f42d9cb20d11ad"
dependencies = [ dependencies = [
"egui", "egui",
] ]
[[package]] [[package]]
name = "egui-wgpu" name = "egui-wgpu"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26c1e821d2d8921ef6ce98b258c7e24d9d6aab2ca1f9cdf374eca997e7f67f59" checksum = "d319dfef570f699b6e9114e235e862a2ddcf75f0d1a061de9e1328d92146d820"
dependencies = [ dependencies = [
"ahash", "ahash",
"bytemuck", "bytemuck",
@ -1005,12 +1005,13 @@ dependencies = [
[[package]] [[package]]
name = "egui-winit" name = "egui-winit"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e84c2919cd9f3a38a91e8f84ac6a245c19251fd95226ed9fae61d5ea564fce3" checksum = "7d9dfbb78fe4eb9c3a39ad528b90ee5915c252e77bbab9d4ebc576541ab67e13"
dependencies = [ dependencies = [
"ahash", "ahash",
"arboard", "arboard",
"bytemuck",
"egui", "egui",
"log", "log",
"profiling", "profiling",
@ -1023,9 +1024,9 @@ dependencies = [
[[package]] [[package]]
name = "egui_extras" name = "egui_extras"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7a8198c088b1007108cb2d403bc99a5e370999b200db4f14559610d7330126" checksum = "624659a2e972a46f4d5f646557906c55f1cd5a0836eddbe610fdf1afba1b4226"
dependencies = [ dependencies = [
"ahash", "ahash",
"egui", "egui",
@ -1044,9 +1045,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]] [[package]]
name = "emath" name = "emath"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4fe73c1207b864ee40aa0b0c038d6092af1030744678c60188a05c28553515d" checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b"
dependencies = [ dependencies = [
"bytemuck", "bytemuck",
"serde", "serde",
@ -1113,9 +1114,9 @@ dependencies = [
[[package]] [[package]]
name = "epaint" name = "epaint"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5666f8d25236293c966fbb3635eac18b04ad1914e3bab55bc7d44b9980cafcac" checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562"
dependencies = [ dependencies = [
"ab_glyph", "ab_glyph",
"ahash", "ahash",
@ -1132,9 +1133,9 @@ dependencies = [
[[package]] [[package]]
name = "epaint_default_fonts" name = "epaint_default_fonts"
version = "0.30.0" version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "66f6ddac3e6ac6fd4c3d48bb8b1943472f8da0f43a4303bcd8a18aa594401c80" checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f"
[[package]] [[package]]
name = "equivalent" name = "equivalent"
@ -1426,9 +1427,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
[[package]] [[package]]
name = "glow" name = "glow"
version = "0.14.2" version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08"
dependencies = [ dependencies = [
"js-sys", "js-sys",
"slotmap", "slotmap",
@ -1656,6 +1657,7 @@ dependencies = [
"byteorder-lite", "byteorder-lite",
"num-traits", "num-traits",
"png", "png",
"tiff",
] ]
[[package]] [[package]]
@ -1771,6 +1773,12 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "jpeg-decoder"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07"
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.77" version = "0.3.77"
@ -1976,9 +1984,9 @@ dependencies = [
[[package]] [[package]]
name = "metal" name = "metal"
version = "0.29.0" version = "0.31.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"block", "block",
@ -2036,22 +2044,23 @@ dependencies = [
[[package]] [[package]]
name = "naga" name = "naga"
version = "23.1.0" version = "24.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bit-set", "bit-set",
"bitflags 2.9.1", "bitflags 2.9.1",
"cfg_aliases 0.1.1", "cfg_aliases",
"codespan-reporting", "codespan-reporting",
"hexf-parse", "hexf-parse",
"indexmap", "indexmap",
"log", "log",
"rustc-hash 1.1.0", "rustc-hash 1.1.0",
"spirv", "spirv",
"strum",
"termcolor", "termcolor",
"thiserror 1.0.69", "thiserror 2.0.12",
"unicode-xid", "unicode-xid",
] ]
@ -2116,7 +2125,7 @@ checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"cfg-if", "cfg-if",
"cfg_aliases 0.2.1", "cfg_aliases",
"libc", "libc",
] ]
@ -2128,7 +2137,7 @@ checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"cfg-if", "cfg-if",
"cfg_aliases 0.2.1", "cfg_aliases",
"libc", "libc",
"memoffset", "memoffset",
] ]
@ -2564,6 +2573,15 @@ dependencies = [
"libredox", "libredox",
] ]
[[package]]
name = "ordered-float"
version = "4.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
dependencies = [
"num-traits",
]
[[package]] [[package]]
name = "ordered-stream" name = "ordered-stream"
version = "0.2.0" version = "0.2.0"
@ -3330,6 +3348,28 @@ version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
[[package]]
name = "strum"
version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
"heck",
"proc-macro2",
"quote",
"rustversion",
"syn",
]
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.104" version = "2.0.104"
@ -3437,6 +3477,17 @@ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]]
name = "tiff"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
dependencies = [
"flate2",
"jpeg-decoder",
"weezl",
]
[[package]] [[package]]
name = "tiny-skia" name = "tiny-skia"
version = "0.11.4" version = "0.11.4"
@ -3975,13 +4026,20 @@ dependencies = [
] ]
[[package]] [[package]]
name = "wgpu" name = "weezl"
version = "23.0.1" version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3"
[[package]]
name = "wgpu"
version = "24.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b0b3436f0729f6cdf2e6e9201f3d39dc95813fad61d826c1ed07918b4539353"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"cfg_aliases 0.1.1", "bitflags 2.9.1",
"cfg_aliases",
"document-features", "document-features",
"js-sys", "js-sys",
"log", "log",
@ -4001,14 +4059,14 @@ dependencies = [
[[package]] [[package]]
name = "wgpu-core" name = "wgpu-core"
version = "23.0.1" version = "24.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" checksum = "7f0aa306497a238d169b9dc70659105b4a096859a34894544ca81719242e1499"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bit-vec", "bit-vec",
"bitflags 2.9.1", "bitflags 2.9.1",
"cfg_aliases 0.1.1", "cfg_aliases",
"document-features", "document-features",
"indexmap", "indexmap",
"log", "log",
@ -4019,16 +4077,16 @@ dependencies = [
"raw-window-handle", "raw-window-handle",
"rustc-hash 1.1.0", "rustc-hash 1.1.0",
"smallvec", "smallvec",
"thiserror 1.0.69", "thiserror 2.0.12",
"wgpu-hal", "wgpu-hal",
"wgpu-types", "wgpu-types",
] ]
[[package]] [[package]]
name = "wgpu-hal" name = "wgpu-hal"
version = "23.0.1" version = "24.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" checksum = "f112f464674ca69f3533248508ee30cb84c67cf06c25ff6800685f5e0294e259"
dependencies = [ dependencies = [
"android_system_properties", "android_system_properties",
"arrayvec", "arrayvec",
@ -4037,7 +4095,7 @@ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"block", "block",
"bytemuck", "bytemuck",
"cfg_aliases 0.1.1", "cfg_aliases",
"core-graphics-types", "core-graphics-types",
"glow", "glow",
"glutin_wgl_sys", "glutin_wgl_sys",
@ -4054,6 +4112,7 @@ dependencies = [
"ndk-sys 0.5.0+25.2.9519653", "ndk-sys 0.5.0+25.2.9519653",
"objc", "objc",
"once_cell", "once_cell",
"ordered-float",
"parking_lot", "parking_lot",
"profiling", "profiling",
"range-alloc", "range-alloc",
@ -4061,7 +4120,7 @@ dependencies = [
"renderdoc-sys", "renderdoc-sys",
"rustc-hash 1.1.0", "rustc-hash 1.1.0",
"smallvec", "smallvec",
"thiserror 1.0.69", "thiserror 2.0.12",
"wasm-bindgen", "wasm-bindgen",
"web-sys", "web-sys",
"wgpu-types", "wgpu-types",
@ -4071,12 +4130,13 @@ dependencies = [
[[package]] [[package]]
name = "wgpu-types" name = "wgpu-types"
version = "23.0.0" version = "24.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c"
dependencies = [ dependencies = [
"bitflags 2.9.1", "bitflags 2.9.1",
"js-sys", "js-sys",
"log",
"web-sys", "web-sys",
] ]
@ -4674,7 +4734,7 @@ dependencies = [
"block2 0.5.1", "block2 0.5.1",
"bytemuck", "bytemuck",
"calloop", "calloop",
"cfg_aliases 0.2.1", "cfg_aliases",
"concurrent-queue", "concurrent-queue",
"core-foundation 0.9.4", "core-foundation 0.9.4",
"core-graphics", "core-graphics",

View File

@ -16,11 +16,11 @@ bytemuck = { version = "1", features = ["derive"] }
clap = { version = "4", features = ["derive"] } clap = { version = "4", features = ["derive"] }
cpal = { git = "https://github.com/sidit77/cpal.git", rev = "66ed6be" } cpal = { git = "https://github.com/sidit77/cpal.git", rev = "66ed6be" }
directories = "6" directories = "6"
egui = { version = "0.30", features = ["serde"] } egui = { version = "0.31", features = ["serde"] }
egui_extras = { version = "0.30", features = ["image"] } egui_extras = { version = "0.31", features = ["image"] }
egui-toast = { git = "https://github.com/urholaukkarinen/egui-toast.git", rev = "d0bcf97" } egui-toast = "0.17"
egui-winit = "0.30" egui-winit = "0.31"
egui-wgpu = { version = "0.30", features = ["winit"] } egui-wgpu = { version = "0.31", features = ["winit"] }
fixed = { version = "1.28", features = ["num-traits"] } fixed = { version = "1.28", features = ["num-traits"] }
gilrs = { version = "0.11", features = ["serde-serialize"] } gilrs = { version = "0.11", features = ["serde-serialize"] }
hex = "0.4" hex = "0.4"
@ -39,7 +39,7 @@ thread-priority = "1"
tokio = { version = "1", features = ["io-util", "macros", "net", "rt", "sync", "time"] } tokio = { version = "1", features = ["io-util", "macros", "net", "rt", "sync", "time"] }
tracing = { version = "0.1", features = ["release_max_level_info"] } tracing = { version = "0.1", features = ["release_max_level_info"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] }
wgpu = "23" wgpu = "24"
winit = { version = "0.30", features = ["serde"] } winit = { version = "0.30", features = ["serde"] }
[target.'cfg(windows)'.dependencies] [target.'cfg(windows)'.dependencies]

View File

@ -298,10 +298,10 @@ impl ApplicationHandler<UserEvent> for Application {
} }
struct WgpuState { struct WgpuState {
instance: Arc<wgpu::Instance>, instance: wgpu::Instance,
adapter: Arc<wgpu::Adapter>, adapter: wgpu::Adapter,
device: Arc<wgpu::Device>, device: wgpu::Device,
queue: Arc<wgpu::Queue>, queue: wgpu::Queue,
} }
impl WgpuState { impl WgpuState {
@ -309,21 +309,21 @@ impl WgpuState {
#[allow(unused_variables)] #[allow(unused_variables)]
let egui_wgpu::WgpuConfiguration { let egui_wgpu::WgpuConfiguration {
wgpu_setup: wgpu_setup:
egui_wgpu::WgpuSetup::CreateNew { egui_wgpu::WgpuSetup::CreateNew(egui_wgpu::WgpuSetupCreateNew {
supported_backends, instance_descriptor: wgpu::InstanceDescriptor { backends, .. },
device_descriptor, device_descriptor,
.. ..
}, }),
.. ..
} = egui_wgpu::WgpuConfiguration::default() } = egui_wgpu::WgpuConfiguration::default()
else { else {
panic!("required fields not found") panic!("required fields not found")
}; };
#[cfg(windows)] #[cfg(windows)]
let supported_backends = wgpu::util::backend_bits_from_env() let backends = wgpu::Backends::from_env()
.unwrap_or((wgpu::Backends::PRIMARY | wgpu::Backends::GL) - wgpu::Backends::VULKAN); .unwrap_or((wgpu::Backends::PRIMARY | wgpu::Backends::GL) - wgpu::Backends::VULKAN);
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
backends: supported_backends, backends,
..wgpu::InstanceDescriptor::default() ..wgpu::InstanceDescriptor::default()
}); });
@ -341,10 +341,10 @@ impl WgpuState {
)) ))
.expect("could not request device"); .expect("could not request device");
Self { Self {
instance: Arc::new(instance), instance,
adapter: Arc::new(adapter), adapter,
device: Arc::new(device), device,
queue: Arc::new(queue), queue,
} }
} }
} }
@ -382,24 +382,30 @@ impl Viewport {
ctx.set_fonts(fonts); ctx.set_fonts(fonts);
ctx.style_mut(|s| { ctx.style_mut(|s| {
s.wrap_mode = Some(TextWrapMode::Extend); s.wrap_mode = Some(TextWrapMode::Extend);
s.visuals.menu_rounding = Default::default(); s.visuals.menu_corner_radius = Default::default();
s.spacing.scroll = ScrollStyle::thin(); s.spacing.scroll = ScrollStyle::thin();
}); });
egui_extras::install_image_loaders(&ctx); egui_extras::install_image_loaders(&ctx);
let wgpu_config = egui_wgpu::WgpuConfiguration { let wgpu_config = egui_wgpu::WgpuConfiguration {
present_mode: wgpu::PresentMode::AutoNoVsync, present_mode: wgpu::PresentMode::AutoNoVsync,
wgpu_setup: egui_wgpu::WgpuSetup::Existing { wgpu_setup: egui_wgpu::WgpuSetup::Existing(egui_wgpu::WgpuSetupExisting {
instance: wgpu.instance.clone(), instance: wgpu.instance.clone(),
adapter: wgpu.adapter.clone(), adapter: wgpu.adapter.clone(),
device: wgpu.device.clone(), device: wgpu.device.clone(),
queue: wgpu.queue.clone(), queue: wgpu.queue.clone(),
}, }),
..egui_wgpu::WgpuConfiguration::default() ..egui_wgpu::WgpuConfiguration::default()
}; };
let mut painter = let mut painter = pollster::block_on(egui_wgpu::winit::Painter::new(
egui_wgpu::winit::Painter::new(ctx.clone(), wgpu_config, 1, None, false, true); ctx.clone(),
wgpu_config,
1,
None,
false,
true,
));
let mut info = ViewportInfo::default(); let mut info = ViewportInfo::default();
let mut builder = app.initial_viewport(); let mut builder = app.initial_viewport();

View File

@ -10,7 +10,7 @@ use std::{
use anyhow::{Result, bail}; use anyhow::{Result, bail};
use itertools::Itertools as _; use itertools::Itertools as _;
use wgpu::{ use wgpu::{
Device, Extent3d, ImageCopyTexture, ImageDataLayout, Origin3d, Queue, Texture, Device, Extent3d, Origin3d, Queue, TexelCopyBufferLayout, TexelCopyTextureInfo, Texture,
TextureDescriptor, TextureFormat, TextureUsages, TextureView, TextureViewDescriptor, TextureDescriptor, TextureFormat, TextureUsages, TextureView, TextureViewDescriptor,
}; };
@ -21,7 +21,7 @@ pub struct TextureSink {
} }
impl TextureSink { impl TextureSink {
pub fn new(device: &Device, queue: Arc<Queue>) -> (Self, TextureView) { pub fn new(device: &Device, queue: Queue) -> (Self, TextureView) {
let texture = Self::create_texture(device); let texture = Self::create_texture(device);
let view = texture.create_view(&TextureViewDescriptor::default()); let view = texture.create_view(&TextureViewDescriptor::default());
let buffers = Arc::new(BufferPool::new()); let buffers = Arc::new(BufferPool::new());
@ -72,7 +72,7 @@ impl TextureSink {
} }
fn write_texture(queue: &Queue, texture: &Texture, bytes: &[u8]) { fn write_texture(queue: &Queue, texture: &Texture, bytes: &[u8]) {
let texture = ImageCopyTexture { let texture = TexelCopyTextureInfo {
texture, texture,
mip_level: 0, mip_level: 0,
origin: Origin3d::ZERO, origin: Origin3d::ZERO,
@ -83,7 +83,7 @@ impl TextureSink {
height: 224, height: 224,
depth_or_array_layers: 1, depth_or_array_layers: 1,
}; };
let data_layout = ImageDataLayout { let data_layout = TexelCopyBufferLayout {
offset: 0, offset: 0,
bytes_per_row: Some(384 * 2), bytes_per_row: Some(384 * 2),
rows_per_image: Some(224), rows_per_image: Some(224),

View File

@ -6,8 +6,8 @@ use std::{
use atoi::FromRadix16; use atoi::FromRadix16;
use egui::{ use egui::{
Align, Color32, CursorIcon, Event, Frame, Key, Layout, Margin, Rect, Response, RichText, Align, Color32, CornerRadius, CursorIcon, Event, Frame, Key, Layout, Margin, Rect, Response,
Rounding, Sense, Shape, Stroke, TextEdit, Ui, UiBuilder, Vec2, Widget, WidgetText, RichText, Sense, Shape, Stroke, StrokeKind, TextEdit, Ui, UiBuilder, Vec2, Widget, WidgetText,
ecolor::HexColor, ecolor::HexColor,
}; };
use num_traits::{CheckedAdd, CheckedSub, One}; use num_traits::{CheckedAdd, CheckedSub, One};
@ -37,8 +37,8 @@ impl UiExt for Ui {
fn section(&mut self, title: impl Into<String>, add_contents: impl FnOnce(&mut Ui)) { fn section(&mut self, title: impl Into<String>, add_contents: impl FnOnce(&mut Ui)) {
let title: String = title.into(); let title: String = title.into();
let mut frame = Frame::group(self.style()); let mut frame = Frame::group(self.style());
frame.outer_margin.top += 10.0; frame.outer_margin.top += 10;
frame.inner_margin.top += 2.0; frame.inner_margin.top += 2;
let res = self.push_id(&title, |ui| { let res = self.push_id(&title, |ui| {
frame.show(ui, |ui| { frame.show(ui, |ui| {
ui.set_max_width(ui.available_width()); ui.set_max_width(ui.available_width());
@ -73,7 +73,8 @@ impl UiExt for Ui {
self.painter().rect_filled(right_rect, 0.0, right); self.painter().rect_filled(right_rect, 0.0, right);
let style = self.style().interact(&response); let style = self.style().interact(&response);
self.painter().rect_stroke(rect, 0.0, style.fg_stroke); self.painter()
.rect_stroke(rect, 0.0, style.fg_stroke, StrokeKind::Inside);
response response
} }
@ -265,10 +266,10 @@ impl<T: Number> Widget for NumberEdit<'_, T> {
.id(id) .id(id)
.desired_width(desired_width) .desired_width(desired_width)
.margin(Margin { .margin(Margin {
left: 4.0, left: 4,
right: if self.arrows { 20.0 } else { 4.0 }, right: if self.arrows { 20 } else { 4 },
top: 2.0, top: 2,
bottom: 2.0, bottom: 2,
}); });
let mut res = if valid { let mut res = if valid {
ui.add(text) ui.add(text)
@ -337,7 +338,7 @@ impl<T: Number> Widget for NumberEdit<'_, T> {
} }
str = to_string(self.value); str = to_string(self.value);
stale = true; stale = true;
} else if res.changed { } else if res.changed() {
if let Some(new_value) = from_string(&str).filter(in_range) { if let Some(new_value) = from_string(&str).filter(in_range) {
if *self.value != new_value { if *self.value != new_value {
res.mark_changed(); res.mark_changed();
@ -355,27 +356,20 @@ impl<T: Number> Widget for NumberEdit<'_, T> {
fn draw_arrow(ui: &mut Ui, rect: Rect, up: bool) -> Response { fn draw_arrow(ui: &mut Ui, rect: Rect, up: bool) -> Response {
let arrow_res = ui let arrow_res = ui
.allocate_rect( .allocate_rect(rect, Sense::all())
rect,
Sense {
click: true,
drag: true,
focusable: false,
},
)
.on_hover_cursor(CursorIcon::Default); .on_hover_cursor(CursorIcon::Default);
let visuals = ui.style().visuals.widgets.style(&arrow_res); let visuals = ui.style().visuals.widgets.style(&arrow_res);
let painter = ui.painter_at(arrow_res.rect); let painter = ui.painter_at(arrow_res.rect);
let rounding = if up { let rounding = if up {
Rounding { CornerRadius {
ne: 2.0, ne: 2,
..Rounding::ZERO ..CornerRadius::ZERO
} }
} else { } else {
Rounding { CornerRadius {
se: 2.0, se: 2,
..Rounding::ZERO ..CornerRadius::ZERO
} }
}; };
painter.rect_filled(arrow_res.rect, rounding, visuals.bg_fill); painter.rect_filled(arrow_res.rect, rounding, visuals.bg_fill);