diff --git a/Cargo.lock b/Cargo.lock index cb0a2cf..e4f8192 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -54,9 +54,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "android-activity" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", "bitflags 2.6.0", @@ -68,7 +68,7 @@ dependencies = [ "log", "ndk", "ndk-context", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "thiserror", ] @@ -111,7 +111,7 @@ checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89" dependencies = [ "clipboard-win", "log", - "objc2 0.5.2", + "objc2", "objc2-app-kit", "objc2-foundation", "parking_lot", @@ -138,11 +138,11 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "ash" -version = "0.37.3+1.3.251" +version = "0.38.0+1.3.281" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" dependencies = [ - "libloading 0.7.4", + "libloading", ] [[package]] @@ -178,7 +178,16 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ - "bit-vec", + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-set" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0481a0e032742109b1133a095184ee93d88f3dc9e0d28a5d033dc77a073f44f" +dependencies = [ + "bit-vec 0.7.0", ] [[package]] @@ -187,6 +196,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit-vec" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c54ff287cfc0a34f38a6b832ea1bd8e448a330b3e40a50859e6488bee07f22" + [[package]] name = "bit_field" version = "0.10.2" @@ -211,32 +226,13 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" -dependencies = [ - "objc-sys", -] - -[[package]] -name = "block2" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" -dependencies = [ - "block-sys", - "objc2 0.4.1", -] - [[package]] name = "block2" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "objc2 0.5.2", + "objc2", ] [[package]] @@ -332,6 +328,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "cgmath" version = "0.18.0" @@ -534,12 +536,12 @@ checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" [[package]] name = "d3d12" -version = "0.20.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" +checksum = "bdbd1f579714e3c809ebd822c81ef148b1ceaeb3d535352afc73fd0c4c6a0017" dependencies = [ "bitflags 2.6.0", - "libloading 0.8.4", + "libloading", "winapi", ] @@ -564,14 +566,14 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.4", + "libloading", ] [[package]] name = "document-features" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" dependencies = [ "litrs", ] @@ -582,18 +584,25 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" + [[package]] name = "ecolor" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ "bytemuck", + "emath", ] [[package]] name = "egui" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ "ahash", "emath", @@ -604,9 +613,10 @@ dependencies = [ [[package]] name = "egui-wgpu" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ + "ahash", "bytemuck", "document-features", "egui", @@ -620,9 +630,10 @@ dependencies = [ [[package]] name = "egui-winit" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ + "ahash", "arboard", "egui", "log", @@ -641,8 +652,8 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "emath" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ "bytemuck", ] @@ -682,19 +693,25 @@ dependencies = [ [[package]] name = "epaint" -version = "0.27.2" -source = "git+https://github.com/emilk/egui.git?rev=ded8dbd45bc8616475c364878f6b8e2f7293d12c#ded8dbd45bc8616475c364878f6b8e2f7293d12c" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" dependencies = [ "ab_glyph", "ahash", "bytemuck", "ecolor", "emath", + "epaint_default_fonts", "log", "nohash-hasher", "parking_lot", ] +[[package]] +name = "epaint_default_fonts" +version = "0.28.1" +source = "git+https://github.com/emilk/egui.git?rev=d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6#d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" + [[package]] name = "equivalent" version = "1.0.1" @@ -739,7 +756,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" dependencies = [ - "bit-set", + "bit-set 0.5.3", "regex", ] @@ -981,9 +998,9 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" dependencies = [ "gl_generator", ] @@ -1009,9 +1026,9 @@ dependencies = [ [[package]] name = "gpu-allocator" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" +checksum = "fdd4240fc91d3433d5e5b0fc5b67672d771850dc19bbee03c1381e19322803d7" dependencies = [ "log", "presser", @@ -1069,7 +1086,7 @@ dependencies = [ "bitflags 2.6.0", "com", "libc", - "libloading 0.8.4", + "libloading", "thiserror", "widestring", "winapi", @@ -1108,17 +1125,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "icrate" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" -dependencies = [ - "block2 0.3.0", - "dispatch", - "objc2 0.4.1", -] - [[package]] name = "idna" version = "0.5.0" @@ -1250,7 +1256,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading 0.8.4", + "libloading", "pkg-config", ] @@ -1292,16 +1298,6 @@ version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libloading" version = "0.8.4" @@ -1417,9 +1413,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ "bitflags 2.6.0", "block", @@ -1454,18 +1450,18 @@ dependencies = [ [[package]] name = "naga" -version = "0.20.0" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" +checksum = "8bd5a652b6faf21496f2cfd88fc49989c8db0825d1f6746b1a71a6ede24a63ad" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.6.0", "bitflags 2.6.0", + "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", "indexmap", "log", - "num-traits", "rustc-hash", "spirv", "termcolor", @@ -1475,14 +1471,14 @@ dependencies = [ [[package]] name = "ndk" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ "bitflags 2.6.0", "jni-sys", "log", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "raw-window-handle", "thiserror", @@ -1503,6 +1499,15 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "nohash-hasher" version = "0.2.0" @@ -1578,16 +1583,6 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" -[[package]] -name = "objc2" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" -dependencies = [ - "objc-sys", - "objc2-encode 3.0.0", -] - [[package]] name = "objc2" version = "0.5.2" @@ -1595,7 +1590,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" dependencies = [ "objc-sys", - "objc2-encode 4.0.3", + "objc2-encode", ] [[package]] @@ -1605,15 +1600,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ "bitflags 2.6.0", - "block2 0.5.1", + "block2", "libc", - "objc2 0.5.2", + "objc2", "objc2-core-data", "objc2-core-image", "objc2-foundation", "objc2-quartz-core", ] +[[package]] +name = "objc2-cloud-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + +[[package]] +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + [[package]] name = "objc2-core-data" version = "0.2.2" @@ -1621,8 +1640,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ "bitflags 2.6.0", - "block2 0.5.1", - "objc2 0.5.2", + "block2", + "objc2", "objc2-foundation", ] @@ -1632,17 +1651,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", + "block2", + "objc2", "objc2-foundation", "objc2-metal", ] [[package]] -name = "objc2-encode" -version = "3.0.0" +name = "objc2-core-location" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", +] [[package]] name = "objc2-encode" @@ -1657,9 +1682,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.6.0", - "block2 0.5.1", + "block2", + "dispatch", "libc", - "objc2 0.5.2", + "objc2", +] + +[[package]] +name = "objc2-link-presentation" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +dependencies = [ + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] @@ -1669,8 +1707,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.6.0", - "block2 0.5.1", - "objc2 0.5.2", + "block2", + "objc2", "objc2-foundation", ] @@ -1681,12 +1719,67 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ "bitflags 2.6.0", - "block2 0.5.1", - "objc2 0.5.2", + "block2", + "objc2", "objc2-foundation", "objc2-metal", ] +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.6.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", +] + [[package]] name = "once_cell" version = "1.19.0" @@ -1746,6 +1839,26 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + [[package]] name = "pin-project-lite" version = "0.2.14" @@ -1773,7 +1886,7 @@ dependencies = [ "base64", "indexmap", "line-wrap", - "quick-xml", + "quick-xml 0.31.0", "serde", "time", ] @@ -1860,6 +1973,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "quick-xml" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4" +dependencies = [ + "memchr", +] + [[package]] name = "quote" version = "1.0.36" @@ -1901,15 +2023,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -2011,9 +2124,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550" +checksum = "7555fcb4f753d095d734fdefebb0ad8c98478a21db500492d87c55913d3b0086" dependencies = [ "ab_glyph", "log", @@ -2213,18 +2326,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", @@ -2510,9 +2623,9 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wayland-backend" -version = "0.3.4" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34e9e6b6d4a2bb4e7e69433e0b35c7923b95d4dc8503a84d25ec917a4bbfdf07" +checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993" dependencies = [ "cc", "downcast-rs", @@ -2524,9 +2637,9 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.3" +version = "0.31.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133" +checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943" dependencies = [ "bitflags 2.6.0", "rustix", @@ -2596,20 +2709,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.2" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67da50b9f80159dec0ea4c11c13e24ef9e7574bd6ce24b01860a175010cea565" +checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6" dependencies = [ "proc-macro2", - "quick-xml", + "quick-xml 0.34.0", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.2" +version = "0.31.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "105b1842da6554f91526c14a2a2172897b7f745a805d62af4ce698706be79c12" +checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148" dependencies = [ "dlib", "log", @@ -2629,9 +2742,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -2643,13 +2756,13 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "425ba64c1e13b1c6e8c5d2541c8fac10022ca584f33da781db01b5756aef1f4e" dependencies = [ - "block2 0.5.1", + "block2", "core-foundation", "home", "jni", "log", "ndk-context", - "objc2 0.5.2", + "objc2", "objc2-foundation", "url", "web-sys", @@ -2663,13 +2776,12 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu" -version = "0.20.1" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c" +checksum = "e1d1c4ba43f80542cf63a0a6ed3134629ae73e8ab51e4b765a67f3aa062eb433" dependencies = [ "arrayvec", - "cfg-if", - "cfg_aliases", + "cfg_aliases 0.1.1", "document-features", "js-sys", "log", @@ -2689,15 +2801,14 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.21.1" +version = "22.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39" +checksum = "0348c840d1051b8e86c3bcd31206080c5e71e5933dabd79be1ce732b0b2f089a" dependencies = [ "arrayvec", - "bit-vec", + "bit-vec 0.7.0", "bitflags 2.6.0", - "cfg_aliases", - "codespan-reporting", + "cfg_aliases 0.1.1", "document-features", "indexmap", "log", @@ -2709,24 +2820,23 @@ dependencies = [ "rustc-hash", "smallvec", "thiserror", - "web-sys", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.21.1" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" +checksum = "f6bbf4b4de8b2a83c0401d9e5ae0080a2792055f25859a02bf9be97952bbed4f" dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set", + "bit-set 0.6.0", "bitflags 2.6.0", "block", - "cfg_aliases", + "cfg_aliases 0.1.1", "core-graphics-types", "d3d12", "glow", @@ -2738,11 +2848,11 @@ dependencies = [ "js-sys", "khronos-egl", "libc", - "libloading 0.8.4", + "libloading", "log", "metal", "naga", - "ndk-sys", + "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", "parking_lot", @@ -2761,9 +2871,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.20.0" +version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" +checksum = "bc9d91f0e2c4b51434dfa6db77846f2793149d8e73f800fa2e41f52b8eac3c5d" dependencies = [ "bitflags 2.6.0", "js-sys", @@ -3033,37 +3143,41 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winit" -version = "0.29.15" +version = "0.30.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" +checksum = "1dc930d6cfbf53c4fe0b95689cdc2e17b8658c3f4214b9953298ccb5a1a15c90" dependencies = [ "ahash", "android-activity", "atomic-waker", "bitflags 2.6.0", + "block2", "bytemuck", "calloop", - "cfg_aliases", + "cfg_aliases 0.2.1", + "concurrent-queue", "core-foundation", "core-graphics", "cursor-icon", - "icrate", + "dpi", "js-sys", "libc", - "log", "memmap2", "ndk", - "ndk-sys", - "objc2 0.4.1", - "once_cell", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", "orbclient", "percent-encoding", + "pin-project", "raw-window-handle", - "redox_syscall 0.3.5", + "redox_syscall 0.4.1", "rustix", "sctk-adwaita", "smithay-client-toolkit", "smol_str", + "tracing", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", @@ -3073,7 +3187,7 @@ dependencies = [ "wayland-protocols-plasma", "web-sys", "web-time", - "windows-sys 0.48.0", + "windows-sys 0.52.0", "x11-dl", "x11rb", "xkbcommon-dl", @@ -3108,7 +3222,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.4", + "libloading", "once_cell", "rustix", "x11rb-protocol", diff --git a/Cargo.toml b/Cargo.toml index 6e2cfcb..821507b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,26 +9,26 @@ resolver = "2" [dependencies] image = "0.24" -winit = "0.29" +winit = "0.30" cgmath = "0.18" log = "0.4" futures = "0.3" bytemuck = { version = "1.5", features = ["derive"] } anyhow = "1.0" tobj = "3.0" -egui = "0.27" -egui-wgpu = "0.27" -wgpu = { version = "0.20", features = ["fragile-send-sync-non-atomic-wasm"] } +egui = "0.28" +egui-wgpu = "0.28" +wgpu = { version = "22.1.0", features = ["fragile-send-sync-non-atomic-wasm"] } syntect = { version = "5", default-features = false, features = ["default-fancy"] } enum-map = "2.6" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -egui-winit = "0.27" +egui-winit = "0.28" notify = "5.0" env_logger = "0.10" [target.'cfg(target_arch = "wasm32")'.dependencies] -egui-winit = { version = "0.27", default-features = false, features = ["links"] } +egui-winit = { version = "0.28", default-features = false, features = ["links"] } wasm-bindgen = "0.2.92" wasm-bindgen-futures = "0.4" web-sys = "0.3" @@ -39,6 +39,6 @@ getrandom = { version = "0.2", features = ["js"] } [features] [patch.crates-io] -egui = { git = "https://github.com/emilk/egui.git", rev = "ded8dbd45bc8616475c364878f6b8e2f7293d12c" } -egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "ded8dbd45bc8616475c364878f6b8e2f7293d12c" } -egui-winit = { git = "https://github.com/emilk/egui.git", rev = "ded8dbd45bc8616475c364878f6b8e2f7293d12c" } +egui = { git = "https://github.com/emilk/egui.git", rev = "d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" } +egui-wgpu = { git = "https://github.com/emilk/egui.git", rev = "d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" } +egui-winit = { git = "https://github.com/emilk/egui.git", rev = "d856f7b3a58fc65a81ff9657f5c6e1ab462b7bb6" } diff --git a/src/application.rs b/src/application.rs index 7666de2..d3135ec 100644 --- a/src/application.rs +++ b/src/application.rs @@ -1,4 +1,5 @@ use std::fmt::Display; +use std::sync::Arc; use crate::cornell_box as cbox; use crate::egui_wgpu::EguiWgpu; @@ -56,13 +57,13 @@ pub struct Application<'a> { } impl<'a> Application<'a> { - pub async fn new(window: &'a Window) -> Result { + pub async fn new(window: Arc) -> Result { let size = window.inner_size(); let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { backends: wgpu::Backends::all(), ..Default::default() }); - let surface = instance.create_surface(window)?; + let surface = instance.create_surface(window.clone())?; let adapter = instance .request_adapter(&wgpu::RequestAdapterOptions { power_preference: wgpu::PowerPreference::HighPerformance, @@ -81,6 +82,7 @@ impl<'a> Application<'a> { label: None, required_features: wgpu::Features::default(), required_limits: wgpu::Limits::default(), + memory_hints: wgpu::MemoryHints::default(), }, None, ) @@ -127,7 +129,7 @@ impl<'a> Application<'a> { mapped_at_creation: false, }); - let mut egui_wgpu = EguiWgpu::new(window, &device, surface_format); + let mut egui_wgpu = EguiWgpu::new(window.as_ref(), &device, surface_format); let main_view = MainView::new( &mut egui_wgpu.renderer, diff --git a/src/egui_wgpu.rs b/src/egui_wgpu.rs index 785416e..8efdaa8 100644 --- a/src/egui_wgpu.rs +++ b/src/egui_wgpu.rs @@ -24,7 +24,7 @@ impl EguiWgpu { Some(window.scale_factor() as f32), None, ), - renderer: egui_wgpu::Renderer::new(device, output_format, None, 1), + renderer: egui_wgpu::Renderer::new(device, output_format, None, 1, false), } } diff --git a/src/main.rs b/src/main.rs index 3ed9669..7f2825f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,18 +15,15 @@ use application::Application; #[cfg(not(target_arch = "wasm32"))] use notify::{RecommendedWatcher, RecursiveMode, Watcher}; use std::ffi::OsStr; -use std::rc::Rc; +use std::sync::mpsc::Receiver; #[cfg(not(target_arch = "wasm32"))] use std::sync::mpsc::{channel, Sender}; +use std::sync::Arc; +use winit::application::ApplicationHandler; use winit::dpi::LogicalSize; use winit::event::{ElementState, KeyEvent}; use winit::window::Fullscreen; -use winit::{ - event::{Event, WindowEvent}, - event_loop::EventLoop, - keyboard::Key, - window::{Window, WindowBuilder}, -}; +use winit::{event::WindowEvent, event_loop::EventLoop, keyboard::Key, window::Window}; #[cfg(not(target_arch = "wasm32"))] fn start_watcher(tx: Sender>) -> Result { @@ -37,184 +34,202 @@ fn start_watcher(tx: Sender>) -> Result, window: Rc) { - let app_window = window.clone(); - let mut app = Application::new(&app_window) - .await - .expect("creation of application failed"); - +struct ApplicationWindow<'a> { + app: Option>, + window: Option>, + close_requested: bool, #[cfg(not(target_arch = "wasm32"))] - let (rx, _watcher) = { - let (tx, rx) = channel::>(); - match start_watcher(tx) { - Ok(watcher) => { - println!("Watching shader main_view.wgsl for changes"); - (rx, Some(watcher)) - } - Err(e) => { - println!("Hot reloading disabled, watcher creation failed: {:?}", e); - (rx, None) - } + shader_rx: Receiver>, +} + +impl<'a> ApplicationHandler for ApplicationWindow<'a> { + fn resumed(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { + let window_attributes = Window::default_attributes() + .with_title("linon") + .with_inner_size(LogicalSize { + width: 1400, + height: 900, + }); + let window = Arc::new(event_loop.create_window(window_attributes).unwrap()); // needed for resize closure on web + + #[cfg(target_arch = "wasm32")] + { + use wasm_bindgen::JsCast; + use winit::platform::web::WindowExtWebSys; + console_log::init().expect("could not initialize logger"); + std::panic::set_hook(Box::new(console_error_panic_hook::hook)); + // On wasm, append the canvas to the document body + let window = window.clone(); + let canvas = window.canvas().expect("couldn't retrieve canvas"); + let web_window = web_sys::window().expect("couldn't retrieve website window"); + let body = web_window + .document() + .and_then(|doc| doc.body()) + .expect("couldn't retrieve document body"); + body.append_child(&web_sys::Element::from(canvas)) + .ok() + .expect("couldn't append canvas to body"); + let _ = window.request_inner_size(winit::dpi::LogicalSize::new( + body.client_width(), + body.client_height(), + )); + let resize_closure = + wasm_bindgen::closure::Closure::wrap(Box::new(move |_e: web_sys::Event| { + let _ = window.request_inner_size(winit::dpi::LogicalSize::new( + body.client_width(), + body.client_height(), + )); + }) as Box); + web_window + .add_event_listener_with_callback("resize", resize_closure.as_ref().unchecked_ref()) + .unwrap(); + resize_closure.forget(); + } + + self.app = Some(create_application(window.clone())); + self.window = Some(window); + } + + fn window_event( + &mut self, + _event_loop: &winit::event_loop::ActiveEventLoop, + _window_id: winit::window::WindowId, + event: WindowEvent, + ) { + let (Some(app), Some(window)) = (&mut self.app, &self.window) else { + return; + }; + if app.handle_event(&window, &event) { + return; } - }; - event_loop - .run(move |event, window_target| { - if let Event::WindowEvent { ref event, .. } = event { - if app.handle_event(&window, &event) { - return; + match event { + WindowEvent::DroppedFile(path) => { + println!("File dropped: {:?}", path); + if path.extension().and_then(OsStr::to_str) == Some("obj") { + println!("Loading object..."); + let (models, _) = tobj::load_obj( + &path, + &tobj::LoadOptions { + triangulate: true, + ..Default::default() + }, + ) + .expect("failed to load obj file"); + println!("Number of models: {}", models.len()); + println!("Loading first model..."); + let mesh = &models[0].mesh; + app.load_model(&mut mesh.positions.clone(), &mesh.indices); + println!("Finished loading"); } } - - match event { - Event::WindowEvent { - event: WindowEvent::DroppedFile(path), - .. - } => { - println!("File dropped: {:?}", path); - if path.extension().and_then(OsStr::to_str) == Some("obj") { - println!("Loading object..."); - let (models, _) = tobj::load_obj( - &path, - &tobj::LoadOptions { - triangulate: true, - ..Default::default() - }, - ) - .expect("failed to load obj file"); - println!("Number of models: {}", models.len()); - println!("Loading first model..."); - let mesh = &models[0].mesh; - app.load_model(&mut mesh.positions.clone(), &mesh.indices); - println!("Finished loading"); - } + WindowEvent::Resized(size) => app.resize(size.width, size.height), + WindowEvent::CloseRequested => { + self.close_requested = true; + } + WindowEvent::KeyboardInput { + event: + KeyEvent { + state: ElementState::Pressed, + logical_key: Key::Character(chr), + .. + }, + .. + } => match chr.as_str() { + "r" => { + app.load_default_model(); } - Event::WindowEvent { - event: WindowEvent::Resized(size), - .. - } => app.resize(size.width, size.height), - Event::WindowEvent { - event: WindowEvent::CloseRequested, - .. - } => { - window_target.exit(); + "f" => { + window.set_fullscreen(if window.fullscreen().is_some() { + None + } else { + Some(Fullscreen::Borderless(None)) + }); } - Event::WindowEvent { - event: - WindowEvent::KeyboardInput { - event: - KeyEvent { - state: ElementState::Pressed, - logical_key: Key::Character(chr), - .. - }, - .. - }, - .. - } => match chr.as_str() { - "r" => { - app.load_default_model(); - } - "f" => { - window.set_fullscreen(if window.fullscreen().is_some() { - None - } else { - Some(Fullscreen::Borderless(None)) - }); - } - _ => {} - }, - Event::WindowEvent { - event: WindowEvent::RedrawRequested, - .. - } => { - if let Err(e) = app.render(&window) { - if e == wgpu::SurfaceError::Outdated { - let size = window.inner_size(); - app.resize(size.width, size.height); - } else { - panic!("{}", e); - } + _ => {} + }, + WindowEvent::RedrawRequested => { + if let Err(e) = app.render(&window) { + if e == wgpu::SurfaceError::Outdated { + let size = window.inner_size(); + app.resize(size.width, size.height); + } else { + panic!("{}", e); } } - Event::AboutToWait => { - #[cfg(not(target_arch = "wasm32"))] - { - let mut reload_compute_shader = false; - for result in rx.try_iter() { - if let Ok(_event) = result { - reload_compute_shader = true; - } - } - if reload_compute_shader { - println!("Compute shader has changed"); - let source = std::fs::read_to_string("src/main_view.wgsl") - .expect("reading compute shader failed"); - if let Err(e) = app.reload_compute_shader(&source) { - println!("Shader reload failed: {:?}", e); - } - } - } - window.request_redraw() + } + _ => {} + } + } + + fn about_to_wait(&mut self, event_loop: &winit::event_loop::ActiveEventLoop) { + if self.close_requested { + event_loop.exit(); + return; + } + let (Some(app), Some(window)) = (&mut self.app, &self.window) else { + return; + }; + + #[cfg(not(target_arch = "wasm32"))] + { + let mut reload_compute_shader = false; + for result in self.shader_rx.try_iter() { + if let Ok(_event) = result { + reload_compute_shader = true; + } + } + if reload_compute_shader { + println!("Compute shader has changed"); + let source = std::fs::read_to_string("src/main_view.wgsl") + .expect("reading compute shader failed"); + if let Err(e) = app.reload_compute_shader(&source) { + println!("Shader reload failed: {:?}", e); } - _ => {} } - }) - .unwrap(); + } + + window.request_redraw() + } +} + +fn create_application<'a>(window: Arc) -> Application<'a> { + #[cfg(not(target_arch = "wasm32"))] + let app = futures::executor::block_on(Application::new(window)); + #[cfg(target_arch = "wasm32")] + let app = wasm_bindgen_futures::spawn_local(async move { Application::new(window).await }); + app.expect("creation of application failed") } fn main() -> Result<()> { #[cfg(not(target_arch = "wasm32"))] env_logger::init(); - let event_loop = EventLoop::new()?; - let window = WindowBuilder::new() - .with_title("linon") - .with_inner_size(LogicalSize { - width: 1400, - height: 900, - }) - .build(&event_loop)?; - let window = Rc::new(window); // needed for resize closure on web + #[cfg(not(target_arch = "wasm32"))] + let (shader_rx, _watcher) = { + let (tx, rx) = channel::>(); + match start_watcher(tx) { + Ok(watcher) => { + println!("Watching shader main_view.wgsl for changes"); + (rx, Some(watcher)) + } + Err(e) => { + println!("Hot reloading disabled, watcher creation failed: {:?}", e); + (rx, None) + } + } + }; - #[cfg(target_arch = "wasm32")] - { - use wasm_bindgen::JsCast; - use winit::platform::web::WindowExtWebSys; - console_log::init().expect("could not initialize logger"); - std::panic::set_hook(Box::new(console_error_panic_hook::hook)); - // On wasm, append the canvas to the document body - let window = window.clone(); - let canvas = window.canvas().expect("couldn't retrieve canvas"); - let web_window = web_sys::window().expect("couldn't retrieve website window"); - let body = web_window - .document() - .and_then(|doc| doc.body()) - .expect("couldn't retrieve document body"); - body.append_child(&web_sys::Element::from(canvas)) - .ok() - .expect("couldn't append canvas to body"); - let _ = window.request_inner_size(winit::dpi::LogicalSize::new( - body.client_width(), - body.client_height(), - )); - let resize_closure = - wasm_bindgen::closure::Closure::wrap(Box::new(move |_e: web_sys::Event| { - let _ = window.request_inner_size(winit::dpi::LogicalSize::new( - body.client_width(), - body.client_height(), - )); - }) as Box); - web_window - .add_event_listener_with_callback("resize", resize_closure.as_ref().unchecked_ref()) - .unwrap(); - resize_closure.forget(); - } + let mut app = ApplicationWindow { + window: None, + app: None, + close_requested: false, + #[cfg(not(target_arch = "wasm32"))] + shader_rx, + }; - #[cfg(not(target_arch = "wasm32"))] - futures::executor::block_on(run(event_loop, window)); - #[cfg(target_arch = "wasm32")] - wasm_bindgen_futures::spawn_local(run(event_loop, window)); + let event_loop = EventLoop::new()?; + event_loop.run_app(&mut app)?; Ok(()) } diff --git a/src/main_view.rs b/src/main_view.rs index da1904a..cd4fc92 100644 --- a/src/main_view.rs +++ b/src/main_view.rs @@ -319,6 +319,7 @@ impl MainView { module: &shader, entry_point: "main_view", compilation_options: Default::default(), + cache: None, }); let overlay_shader_src = include_str!("overlay.wgsl"); @@ -423,6 +424,7 @@ impl MainView { #[cfg(target_arch = "wasm32")] entry_point: "overlay_web", compilation_options: Default::default(), + cache: None, }); Self { @@ -667,6 +669,7 @@ impl MainView { module: &compute_shader, entry_point: "main_view", compilation_options: Default::default(), + cache: None, }); device.on_uncaptured_error(Box::new(|e| panic!("{}", e))); diff --git a/src/reference_view.rs b/src/reference_view.rs index 9e586f3..57a4ce2 100644 --- a/src/reference_view.rs +++ b/src/reference_view.rs @@ -203,6 +203,7 @@ impl ReferenceView { }), multisample: wgpu::MultisampleState::default(), multiview: None, + cache: None, }); let sample_indices = create_indices(); @@ -450,5 +451,6 @@ fn create_sample_render_pipeline( }), multisample: wgpu::MultisampleState::default(), multiview: None, + cache: None, }) }