Upgrade deps #6
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -20,9 +20,9 @@ checksum = "b2187590a23ab1e3df8681afdf0987c48504d80291f002fcdb651f0ef5e25169"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "accesskit"
 | 
			
		||||
version = "0.17.1"
 | 
			
		||||
version = "0.19.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a"
 | 
			
		||||
checksum = "e25ae84c0260bdf5df07796d7cc4882460de26a2b406ec0e6c42461a723b271b"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "enumn",
 | 
			
		||||
 "serde",
 | 
			
		||||
| 
						 | 
				
			
			@ -702,10 +702,11 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "codespan-reporting"
 | 
			
		||||
version = "0.11.1"
 | 
			
		||||
version = "0.12.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
 | 
			
		||||
checksum = "fe6d2e5af09e8c8ad56c969f2157a3d4238cebc7c55f0a517728c38f7b200f81"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "serde",
 | 
			
		||||
 "termcolor",
 | 
			
		||||
 "unicode-width",
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			@ -948,9 +949,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "ecolor"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1"
 | 
			
		||||
checksum = "4a631732d995184114016fab22fc7e3faf73d6841c2d7650395fe251fbcd9285"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
 "emath",
 | 
			
		||||
| 
						 | 
				
			
			@ -959,9 +960,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "egui"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3"
 | 
			
		||||
checksum = "8470210c95a42cc985d9ffebfd5067eea55bdb1c3f7611484907db9639675e28"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "accesskit",
 | 
			
		||||
 "ahash",
 | 
			
		||||
| 
						 | 
				
			
			@ -972,22 +973,24 @@ dependencies = [
 | 
			
		|||
 "nohash-hasher",
 | 
			
		||||
 "profiling",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "smallvec",
 | 
			
		||||
 "unicode-segmentation",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "egui-toast"
 | 
			
		||||
version = "0.17.0"
 | 
			
		||||
name = "egui-notify"
 | 
			
		||||
version = "0.20.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "366a31eb8c905835c85a36baff26d7a003a9fd6631a04b1f15f42d9cb20d11ad"
 | 
			
		||||
checksum = "3cd148c4c3fe05be0d9facf90add19a1531c1d7bfb9c7e4dbc179cfb31844d49"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "egui",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "egui-wgpu"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "d319dfef570f699b6e9114e235e862a2ddcf75f0d1a061de9e1328d92146d820"
 | 
			
		||||
checksum = "14de9942d8b9e99e2d830403c208ab1a6e052e925a7456a4f6f66d567d90de1d"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "ahash",
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
| 
						 | 
				
			
			@ -1005,9 +1008,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "egui-winit"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "7d9dfbb78fe4eb9c3a39ad528b90ee5915c252e77bbab9d4ebc576541ab67e13"
 | 
			
		||||
checksum = "c490804a035cec9c826082894a3e1ecf4198accd3817deb10f7919108ebafab0"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "ahash",
 | 
			
		||||
 "arboard",
 | 
			
		||||
| 
						 | 
				
			
			@ -1024,9 +1027,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "egui_extras"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "624659a2e972a46f4d5f646557906c55f1cd5a0836eddbe610fdf1afba1b4226"
 | 
			
		||||
checksum = "0f791a5937f518249016b276b3639ad2aa3824048b6f2161ec2b431ab325880a"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "ahash",
 | 
			
		||||
 "egui",
 | 
			
		||||
| 
						 | 
				
			
			@ -1045,9 +1048,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "emath"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b"
 | 
			
		||||
checksum = "45f057b141e7e46340c321400be74b793543b1b213036f0f989c35d35957c32e"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
 "serde",
 | 
			
		||||
| 
						 | 
				
			
			@ -1066,7 +1069,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "enum-map-derive",
 | 
			
		||||
 "serde",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1114,9 +1116,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "epaint"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562"
 | 
			
		||||
checksum = "94cca02195f0552c17cabdc02f39aa9ab6fbd815dac60ab1cd3d5b0aa6f9551c"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "ab_glyph",
 | 
			
		||||
 "ahash",
 | 
			
		||||
| 
						 | 
				
			
			@ -1133,9 +1135,9 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "epaint_default_fonts"
 | 
			
		||||
version = "0.31.1"
 | 
			
		||||
version = "0.32.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f"
 | 
			
		||||
checksum = "e8495e11ed527dff39663b8c36b6c2b2799d7e4287fb90556e455d72eca0b4d3"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "equivalent"
 | 
			
		||||
| 
						 | 
				
			
			@ -1505,6 +1507,7 @@ checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
 | 
			
		|||
dependencies = [
 | 
			
		||||
 "cfg-if",
 | 
			
		||||
 "crunchy",
 | 
			
		||||
 "num-traits",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1826,7 +1829,7 @@ dependencies = [
 | 
			
		|||
 "cpal",
 | 
			
		||||
 "directories",
 | 
			
		||||
 "egui",
 | 
			
		||||
 "egui-toast",
 | 
			
		||||
 "egui-notify",
 | 
			
		||||
 "egui-wgpu",
 | 
			
		||||
 "egui-winit",
 | 
			
		||||
 "egui_extras",
 | 
			
		||||
| 
						 | 
				
			
			@ -1870,6 +1873,12 @@ dependencies = [
 | 
			
		|||
 "windows-targets 0.53.3",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "libm"
 | 
			
		||||
version = "0.2.15"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "libredox"
 | 
			
		||||
version = "0.1.9"
 | 
			
		||||
| 
						 | 
				
			
			@ -2044,24 +2053,27 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "naga"
 | 
			
		||||
version = "24.0.0"
 | 
			
		||||
version = "25.0.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e"
 | 
			
		||||
checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "arrayvec",
 | 
			
		||||
 "bit-set",
 | 
			
		||||
 "bitflags 2.9.1",
 | 
			
		||||
 "cfg_aliases",
 | 
			
		||||
 "codespan-reporting",
 | 
			
		||||
 "half",
 | 
			
		||||
 "hashbrown",
 | 
			
		||||
 "hexf-parse",
 | 
			
		||||
 "indexmap",
 | 
			
		||||
 "log",
 | 
			
		||||
 "num-traits",
 | 
			
		||||
 "once_cell",
 | 
			
		||||
 "rustc-hash 1.1.0",
 | 
			
		||||
 "spirv",
 | 
			
		||||
 "strum",
 | 
			
		||||
 "termcolor",
 | 
			
		||||
 "thiserror 2.0.12",
 | 
			
		||||
 "unicode-xid",
 | 
			
		||||
 "unicode-ident",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -2204,6 +2216,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "autocfg",
 | 
			
		||||
 "libm",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -2774,6 +2787,12 @@ version = "0.4.0"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "portable-atomic"
 | 
			
		||||
version = "1.11.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "potential_utf"
 | 
			
		||||
version = "0.1.2"
 | 
			
		||||
| 
						 | 
				
			
			@ -3214,9 +3233,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "signal-hook-registry"
 | 
			
		||||
version = "1.4.5"
 | 
			
		||||
version = "1.4.6"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410"
 | 
			
		||||
checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "libc",
 | 
			
		||||
]
 | 
			
		||||
| 
						 | 
				
			
			@ -3716,15 +3735,9 @@ checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "unicode-width"
 | 
			
		||||
version = "0.1.14"
 | 
			
		||||
version = "0.2.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "unicode-xid"
 | 
			
		||||
version = "0.2.6"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
 | 
			
		||||
checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "url"
 | 
			
		||||
| 
						 | 
				
			
			@ -4033,18 +4046,20 @@ checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu"
 | 
			
		||||
version = "24.0.5"
 | 
			
		||||
version = "25.0.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "6b0b3436f0729f6cdf2e6e9201f3d39dc95813fad61d826c1ed07918b4539353"
 | 
			
		||||
checksum = "ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "arrayvec",
 | 
			
		||||
 "bitflags 2.9.1",
 | 
			
		||||
 "cfg_aliases",
 | 
			
		||||
 "document-features",
 | 
			
		||||
 "hashbrown",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "log",
 | 
			
		||||
 "naga",
 | 
			
		||||
 "parking_lot",
 | 
			
		||||
 "portable-atomic",
 | 
			
		||||
 "profiling",
 | 
			
		||||
 "raw-window-handle",
 | 
			
		||||
 "smallvec",
 | 
			
		||||
| 
						 | 
				
			
			@ -4059,34 +4074,67 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-core"
 | 
			
		||||
version = "24.0.5"
 | 
			
		||||
version = "25.0.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "7f0aa306497a238d169b9dc70659105b4a096859a34894544ca81719242e1499"
 | 
			
		||||
checksum = "f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "arrayvec",
 | 
			
		||||
 "bit-set",
 | 
			
		||||
 "bit-vec",
 | 
			
		||||
 "bitflags 2.9.1",
 | 
			
		||||
 "cfg_aliases",
 | 
			
		||||
 "document-features",
 | 
			
		||||
 "hashbrown",
 | 
			
		||||
 "indexmap",
 | 
			
		||||
 "log",
 | 
			
		||||
 "naga",
 | 
			
		||||
 "once_cell",
 | 
			
		||||
 "parking_lot",
 | 
			
		||||
 "portable-atomic",
 | 
			
		||||
 "profiling",
 | 
			
		||||
 "raw-window-handle",
 | 
			
		||||
 "rustc-hash 1.1.0",
 | 
			
		||||
 "smallvec",
 | 
			
		||||
 "thiserror 2.0.12",
 | 
			
		||||
 "wgpu-core-deps-apple",
 | 
			
		||||
 "wgpu-core-deps-emscripten",
 | 
			
		||||
 "wgpu-core-deps-windows-linux-android",
 | 
			
		||||
 "wgpu-hal",
 | 
			
		||||
 "wgpu-types",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-hal"
 | 
			
		||||
version = "24.0.4"
 | 
			
		||||
name = "wgpu-core-deps-apple"
 | 
			
		||||
version = "25.0.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f112f464674ca69f3533248508ee30cb84c67cf06c25ff6800685f5e0294e259"
 | 
			
		||||
checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "wgpu-hal",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-core-deps-emscripten"
 | 
			
		||||
version = "25.0.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "wgpu-hal",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-core-deps-windows-linux-android"
 | 
			
		||||
version = "25.0.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "wgpu-hal",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-hal"
 | 
			
		||||
version = "25.0.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f968767fe4d3d33747bbd1473ccd55bf0f6451f55d733b5597e67b5deab4ad17"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "android_system_properties",
 | 
			
		||||
 "arrayvec",
 | 
			
		||||
| 
						 | 
				
			
			@ -4095,6 +4143,7 @@ dependencies = [
 | 
			
		|||
 "bitflags 2.9.1",
 | 
			
		||||
 "block",
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
 "cfg-if",
 | 
			
		||||
 "cfg_aliases",
 | 
			
		||||
 "core-graphics-types",
 | 
			
		||||
 "glow",
 | 
			
		||||
| 
						 | 
				
			
			@ -4102,6 +4151,7 @@ dependencies = [
 | 
			
		|||
 "gpu-alloc",
 | 
			
		||||
 "gpu-allocator",
 | 
			
		||||
 "gpu-descriptor",
 | 
			
		||||
 "hashbrown",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "khronos-egl",
 | 
			
		||||
 "libc",
 | 
			
		||||
| 
						 | 
				
			
			@ -4111,14 +4161,13 @@ dependencies = [
 | 
			
		|||
 "naga",
 | 
			
		||||
 "ndk-sys 0.5.0+25.2.9519653",
 | 
			
		||||
 "objc",
 | 
			
		||||
 "once_cell",
 | 
			
		||||
 "ordered-float",
 | 
			
		||||
 "parking_lot",
 | 
			
		||||
 "portable-atomic",
 | 
			
		||||
 "profiling",
 | 
			
		||||
 "range-alloc",
 | 
			
		||||
 "raw-window-handle",
 | 
			
		||||
 "renderdoc-sys",
 | 
			
		||||
 "rustc-hash 1.1.0",
 | 
			
		||||
 "smallvec",
 | 
			
		||||
 "thiserror 2.0.12",
 | 
			
		||||
 "wasm-bindgen",
 | 
			
		||||
| 
						 | 
				
			
			@ -4130,13 +4179,15 @@ dependencies = [
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "wgpu-types"
 | 
			
		||||
version = "24.0.0"
 | 
			
		||||
version = "25.0.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c"
 | 
			
		||||
checksum = "2aa49460c2a8ee8edba3fca54325540d904dd85b2e086ada762767e17d06e8bc"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bitflags 2.9.1",
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "log",
 | 
			
		||||
 "thiserror 2.0.12",
 | 
			
		||||
 "web-sys",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										15
									
								
								Cargo.toml
								
								
								
								
							
							
						
						
									
										15
									
								
								Cargo.toml
								
								
								
								
							| 
						 | 
				
			
			@ -16,11 +16,11 @@ bytemuck = { version = "1", features = ["derive"] }
 | 
			
		|||
clap = { version = "4", features = ["derive"] }
 | 
			
		||||
cpal = { git = "https://github.com/sidit77/cpal.git", rev = "66ed6be" }
 | 
			
		||||
directories = "6"
 | 
			
		||||
egui = { version = "0.31", features = ["serde"] }
 | 
			
		||||
egui_extras = { version = "0.31", features = ["image"] }
 | 
			
		||||
egui-toast = "0.17"
 | 
			
		||||
egui-winit = "0.31"
 | 
			
		||||
egui-wgpu = { version = "0.31", features = ["winit"] }
 | 
			
		||||
egui = { version = "0.32", features = ["serde"] }
 | 
			
		||||
egui_extras = { version = "0.32", features = ["image"] }
 | 
			
		||||
egui-notify = "0.20"
 | 
			
		||||
egui-winit = "0.32"
 | 
			
		||||
egui-wgpu = { version = "0.32", features = ["winit"] }
 | 
			
		||||
fixed = { version = "1.28", features = ["num-traits"] }
 | 
			
		||||
gilrs = { version = "0.11", features = ["serde-serialize"] }
 | 
			
		||||
hex = "0.4"
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +39,7 @@ thread-priority = "1"
 | 
			
		|||
tokio = { version = "1", features = ["io-util", "macros", "net", "rt", "sync", "time"] }
 | 
			
		||||
tracing = { version = "0.1", features = ["release_max_level_info"] }
 | 
			
		||||
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
 | 
			
		||||
wgpu = "24"
 | 
			
		||||
wgpu = "25"
 | 
			
		||||
winit = { version = "0.30", features = ["serde"] }
 | 
			
		||||
 | 
			
		||||
[target.'cfg(windows)'.dependencies]
 | 
			
		||||
| 
						 | 
				
			
			@ -57,3 +57,6 @@ name = "Lemur"
 | 
			
		|||
identifier = "com.virtual-boy.Lemur"
 | 
			
		||||
icon = ["assets/lemur-256x256.png"]
 | 
			
		||||
category = "games"
 | 
			
		||||
 | 
			
		||||
#[patch.crates-io]
 | 
			
		||||
#egui = "0.32"
 | 
			
		||||
| 
						 | 
				
			
			@ -334,12 +334,9 @@ impl WgpuState {
 | 
			
		|||
        }))
 | 
			
		||||
        .expect("could not create adapter");
 | 
			
		||||
 | 
			
		||||
        let trace_path = std::env::var("WGPU_TRACE");
 | 
			
		||||
        let (device, queue) = pollster::block_on(adapter.request_device(
 | 
			
		||||
            &(*device_descriptor)(&adapter),
 | 
			
		||||
            trace_path.ok().as_ref().map(std::path::Path::new),
 | 
			
		||||
        ))
 | 
			
		||||
        .expect("could not request device");
 | 
			
		||||
        let (device, queue) =
 | 
			
		||||
            pollster::block_on(adapter.request_device(&(*device_descriptor)(&adapter)))
 | 
			
		||||
                .expect("could not request device");
 | 
			
		||||
        Self {
 | 
			
		||||
            instance,
 | 
			
		||||
            adapter,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,12 +9,13 @@ use std::{
 | 
			
		|||
        atomic::{AtomicBool, Ordering},
 | 
			
		||||
        mpsc::{self, RecvError, TryRecvError},
 | 
			
		||||
    },
 | 
			
		||||
    time::Duration,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use atomic::Atomic;
 | 
			
		||||
use bytemuck::NoUninit;
 | 
			
		||||
use egui_toast::{Toast, ToastKind, ToastOptions};
 | 
			
		||||
use egui_notify::Toast;
 | 
			
		||||
use tracing::{error, warn};
 | 
			
		||||
 | 
			
		||||
use crate::{
 | 
			
		||||
| 
						 | 
				
			
			@ -726,10 +727,8 @@ impl Emulator {
 | 
			
		|||
            .get(&sim_id)
 | 
			
		||||
            .or_else(|| self.messages.get(&SimId::Player1));
 | 
			
		||||
        if let Some(msg) = messages {
 | 
			
		||||
            let toast = Toast::new()
 | 
			
		||||
                .kind(ToastKind::Error)
 | 
			
		||||
                .options(ToastOptions::default().duration_in_seconds(5.0))
 | 
			
		||||
                .text(&message);
 | 
			
		||||
            let mut toast = Toast::error(&message);
 | 
			
		||||
            toast.duration(Some(Duration::from_secs(5)));
 | 
			
		||||
            if msg.send(toast).is_ok() {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -193,8 +193,8 @@ struct ImageState {
 | 
			
		|||
impl ImageState {
 | 
			
		||||
    fn new(size: [usize; 2]) -> Self {
 | 
			
		||||
        let buffers = [
 | 
			
		||||
            Arc::new(ColorImage::new(size, Color32::BLACK)),
 | 
			
		||||
            Arc::new(ColorImage::new(size, Color32::BLACK)),
 | 
			
		||||
            Arc::new(ColorImage::filled(size, Color32::BLACK)),
 | 
			
		||||
            Arc::new(ColorImage::filled(size, Color32::BLACK)),
 | 
			
		||||
        ];
 | 
			
		||||
        let sink = buffers[0].clone();
 | 
			
		||||
        Self {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
use std::sync::mpsc;
 | 
			
		||||
use std::{sync::mpsc, time::Duration};
 | 
			
		||||
 | 
			
		||||
use crate::{
 | 
			
		||||
    app::UserEvent,
 | 
			
		||||
| 
						 | 
				
			
			@ -8,10 +8,10 @@ use crate::{
 | 
			
		|||
};
 | 
			
		||||
use anyhow::Context as _;
 | 
			
		||||
use egui::{
 | 
			
		||||
    Align2, Button, CentralPanel, Color32, Context, Direction, Frame, TopBottomPanel, Ui, Vec2,
 | 
			
		||||
    ViewportBuilder, ViewportCommand, ViewportId, Window, menu,
 | 
			
		||||
    Align2, Button, CentralPanel, Color32, Context, Frame, MenuBar, TopBottomPanel, Ui, Vec2,
 | 
			
		||||
    ViewportBuilder, ViewportCommand, ViewportId, Window,
 | 
			
		||||
};
 | 
			
		||||
use egui_toast::{Toast, ToastKind, ToastOptions, Toasts};
 | 
			
		||||
use egui_notify::{Anchor, Toast, Toasts};
 | 
			
		||||
use serde::{Deserialize, Serialize};
 | 
			
		||||
use winit::event_loop::EventLoopProxy;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -43,6 +43,7 @@ pub struct GameWindow {
 | 
			
		|||
    shortcuts: ShortcutProvider,
 | 
			
		||||
    sim_id: SimId,
 | 
			
		||||
    config: GameConfig,
 | 
			
		||||
    toasts: Toasts,
 | 
			
		||||
    screen: Option<GameScreen>,
 | 
			
		||||
    messages: Option<mpsc::Receiver<Toast>>,
 | 
			
		||||
    color_picker: Option<ColorPickerState>,
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +58,10 @@ impl GameWindow {
 | 
			
		|||
        sim_id: SimId,
 | 
			
		||||
    ) -> Self {
 | 
			
		||||
        let config = load_config(&persistence, sim_id);
 | 
			
		||||
        let toasts = Toasts::new()
 | 
			
		||||
            .with_anchor(Anchor::BottomLeft)
 | 
			
		||||
            .with_margin((10.0, 10.0).into())
 | 
			
		||||
            .reverse(true);
 | 
			
		||||
        Self {
 | 
			
		||||
            client,
 | 
			
		||||
            proxy,
 | 
			
		||||
| 
						 | 
				
			
			@ -64,13 +69,14 @@ impl GameWindow {
 | 
			
		|||
            shortcuts,
 | 
			
		||||
            sim_id,
 | 
			
		||||
            config,
 | 
			
		||||
            toasts,
 | 
			
		||||
            screen: None,
 | 
			
		||||
            messages: None,
 | 
			
		||||
            color_picker: None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn show_menu(&mut self, ctx: &Context, ui: &mut Ui, toasts: &mut Toasts) {
 | 
			
		||||
    fn show_menu(&mut self, ctx: &Context, ui: &mut Ui) {
 | 
			
		||||
        let state = self.client.emulator_state();
 | 
			
		||||
        let is_ready = self.client.sim_state(self.sim_id) == SimState::Ready;
 | 
			
		||||
        let can_pause = is_ready && state == EmulatorState::Running;
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +125,7 @@ impl GameWindow {
 | 
			
		|||
                    if autopause {
 | 
			
		||||
                        self.client.send_command(EmulatorCommand::Pause);
 | 
			
		||||
                    }
 | 
			
		||||
                    pollster::block_on(self.take_screenshot(toasts));
 | 
			
		||||
                    pollster::block_on(self.take_screenshot());
 | 
			
		||||
                    if autopause {
 | 
			
		||||
                        self.client.send_command(EmulatorCommand::Resume);
 | 
			
		||||
                    }
 | 
			
		||||
| 
						 | 
				
			
			@ -139,7 +145,6 @@ impl GameWindow {
 | 
			
		|||
                    self.client
 | 
			
		||||
                        .send_command(EmulatorCommand::LoadGame(self.sim_id, path));
 | 
			
		||||
                }
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui
 | 
			
		||||
                .add(self.button_for(ui.ctx(), "Quit", Command::Quit))
 | 
			
		||||
| 
						 | 
				
			
			@ -158,7 +163,6 @@ impl GameWindow {
 | 
			
		|||
                    .clicked()
 | 
			
		||||
                {
 | 
			
		||||
                    self.client.send_command(EmulatorCommand::Pause);
 | 
			
		||||
                    ui.close_menu();
 | 
			
		||||
                }
 | 
			
		||||
            } else if ui
 | 
			
		||||
                .add_enabled(
 | 
			
		||||
| 
						 | 
				
			
			@ -168,7 +172,6 @@ impl GameWindow {
 | 
			
		|||
                .clicked()
 | 
			
		||||
            {
 | 
			
		||||
                self.client.send_command(EmulatorCommand::Resume);
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui
 | 
			
		||||
                .add_enabled(is_ready, self.button_for(ui.ctx(), "Reset", Command::Reset))
 | 
			
		||||
| 
						 | 
				
			
			@ -176,7 +179,6 @@ impl GameWindow {
 | 
			
		|||
            {
 | 
			
		||||
                self.client
 | 
			
		||||
                    .send_command(EmulatorCommand::Reset(self.sim_id));
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            ui.separator();
 | 
			
		||||
            if ui
 | 
			
		||||
| 
						 | 
				
			
			@ -187,7 +189,6 @@ impl GameWindow {
 | 
			
		|||
                .clicked()
 | 
			
		||||
            {
 | 
			
		||||
                self.client.send_command(EmulatorCommand::FrameAdvance);
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            ui.separator();
 | 
			
		||||
            if ui
 | 
			
		||||
| 
						 | 
				
			
			@ -197,8 +198,7 @@ impl GameWindow {
 | 
			
		|||
                )
 | 
			
		||||
                .clicked()
 | 
			
		||||
            {
 | 
			
		||||
                pollster::block_on(self.take_screenshot(toasts));
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
                pollster::block_on(self.take_screenshot());
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        ui.menu_button("Options", |ui| self.show_options_menu(ctx, ui));
 | 
			
		||||
| 
						 | 
				
			
			@ -211,17 +211,14 @@ impl GameWindow {
 | 
			
		|||
                self.client
 | 
			
		||||
                    .send_command(EmulatorCommand::StartSecondSim(None));
 | 
			
		||||
                self.proxy.send_event(UserEvent::OpenPlayer2).unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if has_player_2 {
 | 
			
		||||
                let linked = self.client.are_sims_linked();
 | 
			
		||||
                if linked && ui.button("Unlink").clicked() {
 | 
			
		||||
                    self.client.send_command(EmulatorCommand::Unlink);
 | 
			
		||||
                    ui.close_menu();
 | 
			
		||||
                }
 | 
			
		||||
                if !linked && ui.button("Link").clicked() {
 | 
			
		||||
                    self.client.send_command(EmulatorCommand::Link);
 | 
			
		||||
                    ui.close_menu();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
| 
						 | 
				
			
			@ -230,78 +227,63 @@ impl GameWindow {
 | 
			
		|||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenTerminal(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("GDB Server").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenDebugger(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            ui.separator();
 | 
			
		||||
            if ui.button("Character Data").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenCharacterData(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("Background Maps").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenBgMap(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("Objects").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenObjects(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("Worlds").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenWorlds(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("Frame Buffers").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenFrameBuffers(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.button("Registers").clicked() {
 | 
			
		||||
                self.proxy
 | 
			
		||||
                    .send_event(UserEvent::OpenRegisters(self.sim_id))
 | 
			
		||||
                    .unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        ui.menu_button("Help", |ui| {
 | 
			
		||||
            if ui.button("About").clicked() {
 | 
			
		||||
                self.proxy.send_event(UserEvent::OpenAbout).unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    async fn take_screenshot(&self, toasts: &mut Toasts) {
 | 
			
		||||
    async fn take_screenshot(&mut self) {
 | 
			
		||||
        match self.try_take_screenshot().await {
 | 
			
		||||
            Ok(Some(path)) => {
 | 
			
		||||
                toasts.add(
 | 
			
		||||
                    Toast::new()
 | 
			
		||||
                        .kind(ToastKind::Info)
 | 
			
		||||
                        .options(ToastOptions::default().duration_in_seconds(5.0))
 | 
			
		||||
                        .text(format!("Saved to {path}")),
 | 
			
		||||
                );
 | 
			
		||||
                let mut toast = Toast::info(format!("Saved to {path}"));
 | 
			
		||||
                toast.duration(Some(Duration::from_secs(5)));
 | 
			
		||||
                self.toasts.add(toast);
 | 
			
		||||
            }
 | 
			
		||||
            Ok(None) => {}
 | 
			
		||||
            Err(error) => {
 | 
			
		||||
                toasts.add(
 | 
			
		||||
                    Toast::new()
 | 
			
		||||
                        .kind(ToastKind::Error)
 | 
			
		||||
                        .options(ToastOptions::default().duration_in_seconds(5.0))
 | 
			
		||||
                        .text(format!("{error:#}")),
 | 
			
		||||
                );
 | 
			
		||||
                let mut toast = Toast::error(format!("{error:#}"));
 | 
			
		||||
                toast.duration(Some(Duration::from_secs(5)));
 | 
			
		||||
                self.toasts.add(toast);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -348,7 +330,6 @@ impl GameWindow {
 | 
			
		|||
                        .clicked()
 | 
			
		||||
                    {
 | 
			
		||||
                        ctx.send_viewport_cmd(ViewportCommand::InnerSize(dims));
 | 
			
		||||
                        ui.close_menu();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -385,13 +366,11 @@ impl GameWindow {
 | 
			
		|||
                    c.display_mode = display_mode;
 | 
			
		||||
                    c.dimensions = current_dims * scale;
 | 
			
		||||
                });
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            });
 | 
			
		||||
            ui.menu_button("Colors", |ui| {
 | 
			
		||||
                for preset in COLOR_PRESETS {
 | 
			
		||||
                    if ui.color_pair_button(preset[0], preset[1]).clicked() {
 | 
			
		||||
                        self.update_config(|c| c.colors = preset);
 | 
			
		||||
                        ui.close_menu();
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                ui.with_layout(ui.layout().with_cross_align(egui::Align::Center), |ui| {
 | 
			
		||||
| 
						 | 
				
			
			@ -412,7 +391,6 @@ impl GameWindow {
 | 
			
		|||
                            just_opened: true,
 | 
			
		||||
                            unpause_on_close: is_running,
 | 
			
		||||
                        });
 | 
			
		||||
                        ui.close_menu();
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
| 
						 | 
				
			
			@ -423,23 +401,19 @@ impl GameWindow {
 | 
			
		|||
            if ui.selectable_button(p1_enabled, "Player 1").clicked() {
 | 
			
		||||
                self.client
 | 
			
		||||
                    .send_command(EmulatorCommand::SetAudioEnabled(!p1_enabled, p2_enabled));
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
            if ui.selectable_button(p2_enabled, "Player 2").clicked() {
 | 
			
		||||
                self.client
 | 
			
		||||
                    .send_command(EmulatorCommand::SetAudioEnabled(p1_enabled, !p2_enabled));
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        ui.menu_button("Input", |ui| {
 | 
			
		||||
            if ui.button("Bind Inputs").clicked() {
 | 
			
		||||
                self.proxy.send_event(UserEvent::OpenInput).unwrap();
 | 
			
		||||
                ui.close_menu();
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        if ui.button("Hotkeys").clicked() {
 | 
			
		||||
            self.proxy.send_event(UserEvent::OpenHotkeys).unwrap();
 | 
			
		||||
            ui.close_menu();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -535,19 +509,16 @@ impl AppWindow for GameWindow {
 | 
			
		|||
        };
 | 
			
		||||
        self.update_config(|c| c.dimensions = dimensions);
 | 
			
		||||
 | 
			
		||||
        let mut toasts = Toasts::new()
 | 
			
		||||
            .anchor(Align2::LEFT_BOTTOM, (10.0, 10.0))
 | 
			
		||||
            .direction(Direction::BottomUp);
 | 
			
		||||
        if let Some(messages) = self.messages.as_mut() {
 | 
			
		||||
            while let Ok(toast) = messages.try_recv() {
 | 
			
		||||
                toasts.add(toast);
 | 
			
		||||
                self.toasts.add(toast);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        TopBottomPanel::top("menubar")
 | 
			
		||||
            .exact_height(22.0)
 | 
			
		||||
            .show(ctx, |ui| {
 | 
			
		||||
                menu::bar(ui, |ui| {
 | 
			
		||||
                    self.show_menu(ctx, ui, &mut toasts);
 | 
			
		||||
                MenuBar::new().ui(ui, |ui| {
 | 
			
		||||
                    self.show_menu(ctx, ui);
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        if self.color_picker.is_some() {
 | 
			
		||||
| 
						 | 
				
			
			@ -566,7 +537,7 @@ impl AppWindow for GameWindow {
 | 
			
		|||
                ui.add(screen);
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        toasts.show(ctx);
 | 
			
		||||
        self.toasts.show(ctx);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    fn on_init(&mut self, _ctx: &Context, render_state: &egui_wgpu::RenderState) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ impl UiExt for Ui {
 | 
			
		|||
        let old_rect = res.response.rect;
 | 
			
		||||
        let mut text_rect = old_rect;
 | 
			
		||||
        text_rect.min.x += 6.0;
 | 
			
		||||
        self.allocate_new_ui(UiBuilder::new().max_rect(text_rect), |ui| ui.label(text));
 | 
			
		||||
        self.scope_builder(UiBuilder::new().max_rect(text_rect), |ui| ui.label(text));
 | 
			
		||||
        if old_rect.width() > 0.0 {
 | 
			
		||||
            self.advance_cursor_after_rect(old_rect);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue