├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md └── src ├── gui.rs ├── gui_example.rs ├── lib.rs ├── main.rs └── shader.wgsl /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "ab_glyph" 7 | version = "0.2.23" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" 10 | dependencies = [ 11 | "ab_glyph_rasterizer", 12 | "owned_ttf_parser", 13 | ] 14 | 15 | [[package]] 16 | name = "ab_glyph_rasterizer" 17 | version = "0.1.8" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" 20 | 21 | [[package]] 22 | name = "ahash" 23 | version = "0.8.6" 24 | source = "registry+https://github.com/rust-lang/crates.io-index" 25 | checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" 26 | dependencies = [ 27 | "cfg-if", 28 | "getrandom", 29 | "once_cell", 30 | "version_check", 31 | "zerocopy", 32 | ] 33 | 34 | [[package]] 35 | name = "aho-corasick" 36 | version = "1.1.2" 37 | source = "registry+https://github.com/rust-lang/crates.io-index" 38 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 39 | dependencies = [ 40 | "memchr", 41 | ] 42 | 43 | [[package]] 44 | name = "allocator-api2" 45 | version = "0.2.16" 46 | source = "registry+https://github.com/rust-lang/crates.io-index" 47 | checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" 48 | 49 | [[package]] 50 | name = "android-activity" 51 | version = "0.5.1" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "39b801912a977c3fd52d80511fe1c0c8480c6f957f21ae2ce1b92ffe970cf4b9" 54 | dependencies = [ 55 | "android-properties", 56 | "bitflags 2.5.0", 57 | "cc", 58 | "cesu8", 59 | "jni", 60 | "jni-sys", 61 | "libc", 62 | "log", 63 | "ndk", 64 | "ndk-context", 65 | "ndk-sys", 66 | "num_enum", 67 | "thiserror", 68 | ] 69 | 70 | [[package]] 71 | name = "android-properties" 72 | version = "0.2.2" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 75 | 76 | [[package]] 77 | name = "android_system_properties" 78 | version = "0.1.5" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 81 | dependencies = [ 82 | "libc", 83 | ] 84 | 85 | [[package]] 86 | name = "anyhow" 87 | version = "1.0.77" 88 | source = "registry+https://github.com/rust-lang/crates.io-index" 89 | checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" 90 | 91 | [[package]] 92 | name = "arboard" 93 | version = "3.3.0" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" 96 | dependencies = [ 97 | "clipboard-win", 98 | "log", 99 | "objc", 100 | "objc-foundation", 101 | "objc_id", 102 | "parking_lot", 103 | "thiserror", 104 | "winapi", 105 | "x11rb 0.12.0", 106 | ] 107 | 108 | [[package]] 109 | name = "arrayref" 110 | version = "0.3.7" 111 | source = "registry+https://github.com/rust-lang/crates.io-index" 112 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 113 | 114 | [[package]] 115 | name = "arrayvec" 116 | version = "0.7.4" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 119 | 120 | [[package]] 121 | name = "as-raw-xcb-connection" 122 | version = "1.0.1" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" 125 | 126 | [[package]] 127 | name = "ash" 128 | version = "0.37.3+1.3.251" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" 131 | dependencies = [ 132 | "libloading 0.7.4", 133 | ] 134 | 135 | [[package]] 136 | name = "atomic-waker" 137 | version = "1.1.2" 138 | source = "registry+https://github.com/rust-lang/crates.io-index" 139 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 140 | 141 | [[package]] 142 | name = "autocfg" 143 | version = "1.1.0" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 146 | 147 | [[package]] 148 | name = "bit-set" 149 | version = "0.5.3" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 152 | dependencies = [ 153 | "bit-vec", 154 | ] 155 | 156 | [[package]] 157 | name = "bit-vec" 158 | version = "0.6.3" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 161 | 162 | [[package]] 163 | name = "bitflags" 164 | version = "1.3.2" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 167 | 168 | [[package]] 169 | name = "bitflags" 170 | version = "2.5.0" 171 | source = "registry+https://github.com/rust-lang/crates.io-index" 172 | checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" 173 | 174 | [[package]] 175 | name = "block" 176 | version = "0.1.6" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 179 | 180 | [[package]] 181 | name = "block-sys" 182 | version = "0.2.0" 183 | source = "registry+https://github.com/rust-lang/crates.io-index" 184 | checksum = "2dd7cf50912cddc06dc5ea7c08c5e81c1b2c842a70d19def1848d54c586fed92" 185 | dependencies = [ 186 | "objc-sys", 187 | ] 188 | 189 | [[package]] 190 | name = "block2" 191 | version = "0.3.0" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" 194 | dependencies = [ 195 | "block-sys", 196 | "objc2", 197 | ] 198 | 199 | [[package]] 200 | name = "bumpalo" 201 | version = "3.14.0" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" 204 | 205 | [[package]] 206 | name = "bytemuck" 207 | version = "1.14.0" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" 210 | dependencies = [ 211 | "bytemuck_derive", 212 | ] 213 | 214 | [[package]] 215 | name = "bytemuck_derive" 216 | version = "1.5.0" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" 219 | dependencies = [ 220 | "proc-macro2", 221 | "quote", 222 | "syn 2.0.66", 223 | ] 224 | 225 | [[package]] 226 | name = "bytes" 227 | version = "1.5.0" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 230 | 231 | [[package]] 232 | name = "calloop" 233 | version = "0.12.3" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "7b50b5a44d59a98c55a9eeb518f39bf7499ba19fd98ee7d22618687f3f10adbf" 236 | dependencies = [ 237 | "bitflags 2.5.0", 238 | "log", 239 | "polling", 240 | "rustix", 241 | "slab", 242 | "thiserror", 243 | ] 244 | 245 | [[package]] 246 | name = "calloop-wayland-source" 247 | version = "0.2.0" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" 250 | dependencies = [ 251 | "calloop", 252 | "rustix", 253 | "wayland-backend", 254 | "wayland-client", 255 | ] 256 | 257 | [[package]] 258 | name = "cc" 259 | version = "1.0.99" 260 | source = "registry+https://github.com/rust-lang/crates.io-index" 261 | checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" 262 | dependencies = [ 263 | "jobserver", 264 | "libc", 265 | "once_cell", 266 | ] 267 | 268 | [[package]] 269 | name = "cesu8" 270 | version = "1.1.0" 271 | source = "registry+https://github.com/rust-lang/crates.io-index" 272 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 273 | 274 | [[package]] 275 | name = "cfg-if" 276 | version = "1.0.0" 277 | source = "registry+https://github.com/rust-lang/crates.io-index" 278 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 279 | 280 | [[package]] 281 | name = "cfg_aliases" 282 | version = "0.1.1" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 285 | 286 | [[package]] 287 | name = "clipboard-win" 288 | version = "4.5.0" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" 291 | dependencies = [ 292 | "error-code", 293 | "str-buf", 294 | "winapi", 295 | ] 296 | 297 | [[package]] 298 | name = "codespan-reporting" 299 | version = "0.11.1" 300 | source = "registry+https://github.com/rust-lang/crates.io-index" 301 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 302 | dependencies = [ 303 | "termcolor", 304 | "unicode-width", 305 | ] 306 | 307 | [[package]] 308 | name = "com" 309 | version = "0.6.0" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" 312 | dependencies = [ 313 | "com_macros", 314 | ] 315 | 316 | [[package]] 317 | name = "com_macros" 318 | version = "0.6.0" 319 | source = "registry+https://github.com/rust-lang/crates.io-index" 320 | checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" 321 | dependencies = [ 322 | "com_macros_support", 323 | "proc-macro2", 324 | "syn 1.0.109", 325 | ] 326 | 327 | [[package]] 328 | name = "com_macros_support" 329 | version = "0.6.0" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" 332 | dependencies = [ 333 | "proc-macro2", 334 | "quote", 335 | "syn 1.0.109", 336 | ] 337 | 338 | [[package]] 339 | name = "combine" 340 | version = "4.6.6" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" 343 | dependencies = [ 344 | "bytes", 345 | "memchr", 346 | ] 347 | 348 | [[package]] 349 | name = "concurrent-queue" 350 | version = "2.4.0" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" 353 | dependencies = [ 354 | "crossbeam-utils", 355 | ] 356 | 357 | [[package]] 358 | name = "core-foundation" 359 | version = "0.9.4" 360 | source = "registry+https://github.com/rust-lang/crates.io-index" 361 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 362 | dependencies = [ 363 | "core-foundation-sys", 364 | "libc", 365 | ] 366 | 367 | [[package]] 368 | name = "core-foundation-sys" 369 | version = "0.8.6" 370 | source = "registry+https://github.com/rust-lang/crates.io-index" 371 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 372 | 373 | [[package]] 374 | name = "core-graphics" 375 | version = "0.23.1" 376 | source = "registry+https://github.com/rust-lang/crates.io-index" 377 | checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" 378 | dependencies = [ 379 | "bitflags 1.3.2", 380 | "core-foundation", 381 | "core-graphics-types", 382 | "foreign-types", 383 | "libc", 384 | ] 385 | 386 | [[package]] 387 | name = "core-graphics-types" 388 | version = "0.1.3" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 391 | dependencies = [ 392 | "bitflags 1.3.2", 393 | "core-foundation", 394 | "libc", 395 | ] 396 | 397 | [[package]] 398 | name = "crossbeam-utils" 399 | version = "0.8.18" 400 | source = "registry+https://github.com/rust-lang/crates.io-index" 401 | checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" 402 | dependencies = [ 403 | "cfg-if", 404 | ] 405 | 406 | [[package]] 407 | name = "cursor-icon" 408 | version = "1.1.0" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" 411 | 412 | [[package]] 413 | name = "d3d12" 414 | version = "0.19.0" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" 417 | dependencies = [ 418 | "bitflags 2.5.0", 419 | "libloading 0.7.4", 420 | "winapi", 421 | ] 422 | 423 | [[package]] 424 | name = "dispatch" 425 | version = "0.2.0" 426 | source = "registry+https://github.com/rust-lang/crates.io-index" 427 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 428 | 429 | [[package]] 430 | name = "dlib" 431 | version = "0.5.2" 432 | source = "registry+https://github.com/rust-lang/crates.io-index" 433 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 434 | dependencies = [ 435 | "libloading 0.8.1", 436 | ] 437 | 438 | [[package]] 439 | name = "document-features" 440 | version = "0.2.8" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" 443 | dependencies = [ 444 | "litrs", 445 | ] 446 | 447 | [[package]] 448 | name = "downcast-rs" 449 | version = "1.2.0" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" 452 | 453 | [[package]] 454 | name = "ecolor" 455 | version = "0.27.2" 456 | source = "registry+https://github.com/rust-lang/crates.io-index" 457 | checksum = "20930a432bbd57a6d55e07976089708d4893f3d556cf42a0d79e9e321fa73b10" 458 | dependencies = [ 459 | "bytemuck", 460 | ] 461 | 462 | [[package]] 463 | name = "egui" 464 | version = "0.27.2" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "584c5d1bf9a67b25778a3323af222dbe1a1feb532190e103901187f92c7fe29a" 467 | dependencies = [ 468 | "ahash", 469 | "epaint", 470 | "log", 471 | "nohash-hasher", 472 | ] 473 | 474 | [[package]] 475 | name = "egui-wgpu" 476 | version = "0.27.2" 477 | source = "registry+https://github.com/rust-lang/crates.io-index" 478 | checksum = "469ff65843f88a702b731a1532b7d03b0e8e96d283e70f3a22b0e06c46cb9b37" 479 | dependencies = [ 480 | "bytemuck", 481 | "document-features", 482 | "egui", 483 | "epaint", 484 | "log", 485 | "thiserror", 486 | "type-map", 487 | "web-time", 488 | "wgpu", 489 | ] 490 | 491 | [[package]] 492 | name = "egui-winit" 493 | version = "0.27.2" 494 | source = "registry+https://github.com/rust-lang/crates.io-index" 495 | checksum = "2e3da0cbe020f341450c599b35b92de4af7b00abde85624fd16f09c885573609" 496 | dependencies = [ 497 | "arboard", 498 | "egui", 499 | "log", 500 | "raw-window-handle 0.6.0", 501 | "smithay-clipboard", 502 | "web-time", 503 | "webbrowser", 504 | "winit", 505 | ] 506 | 507 | [[package]] 508 | name = "egui2" 509 | version = "0.1.0" 510 | dependencies = [ 511 | "anyhow", 512 | "bytemuck", 513 | "cfg-if", 514 | "egui", 515 | "egui-wgpu", 516 | "egui-winit", 517 | "env_logger", 518 | "log", 519 | "pollster", 520 | "wgpu", 521 | "winit", 522 | ] 523 | 524 | [[package]] 525 | name = "emath" 526 | version = "0.27.2" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "e4c3a552cfca14630702449d35f41c84a0d15963273771c6059175a803620f3f" 529 | dependencies = [ 530 | "bytemuck", 531 | ] 532 | 533 | [[package]] 534 | name = "env_logger" 535 | version = "0.10.1" 536 | source = "registry+https://github.com/rust-lang/crates.io-index" 537 | checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" 538 | dependencies = [ 539 | "humantime", 540 | "is-terminal", 541 | "log", 542 | "regex", 543 | "termcolor", 544 | ] 545 | 546 | [[package]] 547 | name = "epaint" 548 | version = "0.27.2" 549 | source = "registry+https://github.com/rust-lang/crates.io-index" 550 | checksum = "b381f8b149657a4acf837095351839f32cd5c4aec1817fc4df84e18d76334176" 551 | dependencies = [ 552 | "ab_glyph", 553 | "ahash", 554 | "bytemuck", 555 | "ecolor", 556 | "emath", 557 | "log", 558 | "nohash-hasher", 559 | "parking_lot", 560 | ] 561 | 562 | [[package]] 563 | name = "equivalent" 564 | version = "1.0.1" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 567 | 568 | [[package]] 569 | name = "errno" 570 | version = "0.3.8" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 573 | dependencies = [ 574 | "libc", 575 | "windows-sys 0.52.0", 576 | ] 577 | 578 | [[package]] 579 | name = "error-code" 580 | version = "2.3.1" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" 583 | dependencies = [ 584 | "libc", 585 | "str-buf", 586 | ] 587 | 588 | [[package]] 589 | name = "foreign-types" 590 | version = "0.5.0" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 593 | dependencies = [ 594 | "foreign-types-macros", 595 | "foreign-types-shared", 596 | ] 597 | 598 | [[package]] 599 | name = "foreign-types-macros" 600 | version = "0.2.3" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 603 | dependencies = [ 604 | "proc-macro2", 605 | "quote", 606 | "syn 2.0.66", 607 | ] 608 | 609 | [[package]] 610 | name = "foreign-types-shared" 611 | version = "0.3.1" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 614 | 615 | [[package]] 616 | name = "form_urlencoded" 617 | version = "1.2.1" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 620 | dependencies = [ 621 | "percent-encoding", 622 | ] 623 | 624 | [[package]] 625 | name = "gethostname" 626 | version = "0.3.0" 627 | source = "registry+https://github.com/rust-lang/crates.io-index" 628 | checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" 629 | dependencies = [ 630 | "libc", 631 | "winapi", 632 | ] 633 | 634 | [[package]] 635 | name = "gethostname" 636 | version = "0.4.3" 637 | source = "registry+https://github.com/rust-lang/crates.io-index" 638 | checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 639 | dependencies = [ 640 | "libc", 641 | "windows-targets 0.48.5", 642 | ] 643 | 644 | [[package]] 645 | name = "getrandom" 646 | version = "0.2.11" 647 | source = "registry+https://github.com/rust-lang/crates.io-index" 648 | checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" 649 | dependencies = [ 650 | "cfg-if", 651 | "libc", 652 | "wasi", 653 | ] 654 | 655 | [[package]] 656 | name = "gl_generator" 657 | version = "0.14.0" 658 | source = "registry+https://github.com/rust-lang/crates.io-index" 659 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 660 | dependencies = [ 661 | "khronos_api", 662 | "log", 663 | "xml-rs", 664 | ] 665 | 666 | [[package]] 667 | name = "glow" 668 | version = "0.13.1" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" 671 | dependencies = [ 672 | "js-sys", 673 | "slotmap", 674 | "wasm-bindgen", 675 | "web-sys", 676 | ] 677 | 678 | [[package]] 679 | name = "glutin_wgl_sys" 680 | version = "0.5.0" 681 | source = "registry+https://github.com/rust-lang/crates.io-index" 682 | checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" 683 | dependencies = [ 684 | "gl_generator", 685 | ] 686 | 687 | [[package]] 688 | name = "gpu-alloc" 689 | version = "0.6.0" 690 | source = "registry+https://github.com/rust-lang/crates.io-index" 691 | checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 692 | dependencies = [ 693 | "bitflags 2.5.0", 694 | "gpu-alloc-types", 695 | ] 696 | 697 | [[package]] 698 | name = "gpu-alloc-types" 699 | version = "0.3.0" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 702 | dependencies = [ 703 | "bitflags 2.5.0", 704 | ] 705 | 706 | [[package]] 707 | name = "gpu-allocator" 708 | version = "0.25.0" 709 | source = "registry+https://github.com/rust-lang/crates.io-index" 710 | checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" 711 | dependencies = [ 712 | "log", 713 | "presser", 714 | "thiserror", 715 | "winapi", 716 | "windows", 717 | ] 718 | 719 | [[package]] 720 | name = "gpu-descriptor" 721 | version = "0.2.4" 722 | source = "registry+https://github.com/rust-lang/crates.io-index" 723 | checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" 724 | dependencies = [ 725 | "bitflags 2.5.0", 726 | "gpu-descriptor-types", 727 | "hashbrown", 728 | ] 729 | 730 | [[package]] 731 | name = "gpu-descriptor-types" 732 | version = "0.1.2" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" 735 | dependencies = [ 736 | "bitflags 2.5.0", 737 | ] 738 | 739 | [[package]] 740 | name = "hashbrown" 741 | version = "0.14.3" 742 | source = "registry+https://github.com/rust-lang/crates.io-index" 743 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 744 | dependencies = [ 745 | "ahash", 746 | "allocator-api2", 747 | ] 748 | 749 | [[package]] 750 | name = "hassle-rs" 751 | version = "0.11.0" 752 | source = "registry+https://github.com/rust-lang/crates.io-index" 753 | checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" 754 | dependencies = [ 755 | "bitflags 2.5.0", 756 | "com", 757 | "libc", 758 | "libloading 0.8.1", 759 | "thiserror", 760 | "widestring", 761 | "winapi", 762 | ] 763 | 764 | [[package]] 765 | name = "hermit-abi" 766 | version = "0.3.3" 767 | source = "registry+https://github.com/rust-lang/crates.io-index" 768 | checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" 769 | 770 | [[package]] 771 | name = "hexf-parse" 772 | version = "0.2.1" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 775 | 776 | [[package]] 777 | name = "home" 778 | version = "0.5.9" 779 | source = "registry+https://github.com/rust-lang/crates.io-index" 780 | checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" 781 | dependencies = [ 782 | "windows-sys 0.52.0", 783 | ] 784 | 785 | [[package]] 786 | name = "humantime" 787 | version = "2.1.0" 788 | source = "registry+https://github.com/rust-lang/crates.io-index" 789 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 790 | 791 | [[package]] 792 | name = "icrate" 793 | version = "0.0.4" 794 | source = "registry+https://github.com/rust-lang/crates.io-index" 795 | checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" 796 | dependencies = [ 797 | "block2", 798 | "dispatch", 799 | "objc2", 800 | ] 801 | 802 | [[package]] 803 | name = "idna" 804 | version = "0.5.0" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 807 | dependencies = [ 808 | "unicode-bidi", 809 | "unicode-normalization", 810 | ] 811 | 812 | [[package]] 813 | name = "indexmap" 814 | version = "2.1.0" 815 | source = "registry+https://github.com/rust-lang/crates.io-index" 816 | checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" 817 | dependencies = [ 818 | "equivalent", 819 | "hashbrown", 820 | ] 821 | 822 | [[package]] 823 | name = "is-terminal" 824 | version = "0.4.9" 825 | source = "registry+https://github.com/rust-lang/crates.io-index" 826 | checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" 827 | dependencies = [ 828 | "hermit-abi", 829 | "rustix", 830 | "windows-sys 0.48.0", 831 | ] 832 | 833 | [[package]] 834 | name = "jni" 835 | version = "0.21.1" 836 | source = "registry+https://github.com/rust-lang/crates.io-index" 837 | checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 838 | dependencies = [ 839 | "cesu8", 840 | "cfg-if", 841 | "combine", 842 | "jni-sys", 843 | "log", 844 | "thiserror", 845 | "walkdir", 846 | "windows-sys 0.45.0", 847 | ] 848 | 849 | [[package]] 850 | name = "jni-sys" 851 | version = "0.3.0" 852 | source = "registry+https://github.com/rust-lang/crates.io-index" 853 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 854 | 855 | [[package]] 856 | name = "jobserver" 857 | version = "0.1.31" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" 860 | dependencies = [ 861 | "libc", 862 | ] 863 | 864 | [[package]] 865 | name = "js-sys" 866 | version = "0.3.69" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" 869 | dependencies = [ 870 | "wasm-bindgen", 871 | ] 872 | 873 | [[package]] 874 | name = "khronos-egl" 875 | version = "6.0.0" 876 | source = "registry+https://github.com/rust-lang/crates.io-index" 877 | checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" 878 | dependencies = [ 879 | "libc", 880 | "libloading 0.8.1", 881 | "pkg-config", 882 | ] 883 | 884 | [[package]] 885 | name = "khronos_api" 886 | version = "3.1.0" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 889 | 890 | [[package]] 891 | name = "libc" 892 | version = "0.2.151" 893 | source = "registry+https://github.com/rust-lang/crates.io-index" 894 | checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" 895 | 896 | [[package]] 897 | name = "libloading" 898 | version = "0.7.4" 899 | source = "registry+https://github.com/rust-lang/crates.io-index" 900 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 901 | dependencies = [ 902 | "cfg-if", 903 | "winapi", 904 | ] 905 | 906 | [[package]] 907 | name = "libloading" 908 | version = "0.8.1" 909 | source = "registry+https://github.com/rust-lang/crates.io-index" 910 | checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" 911 | dependencies = [ 912 | "cfg-if", 913 | "windows-sys 0.48.0", 914 | ] 915 | 916 | [[package]] 917 | name = "libredox" 918 | version = "0.0.2" 919 | source = "registry+https://github.com/rust-lang/crates.io-index" 920 | checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" 921 | dependencies = [ 922 | "bitflags 2.5.0", 923 | "libc", 924 | "redox_syscall 0.4.1", 925 | ] 926 | 927 | [[package]] 928 | name = "linux-raw-sys" 929 | version = "0.4.12" 930 | source = "registry+https://github.com/rust-lang/crates.io-index" 931 | checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" 932 | 933 | [[package]] 934 | name = "litrs" 935 | version = "0.4.1" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 938 | 939 | [[package]] 940 | name = "lock_api" 941 | version = "0.4.11" 942 | source = "registry+https://github.com/rust-lang/crates.io-index" 943 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 944 | dependencies = [ 945 | "autocfg", 946 | "scopeguard", 947 | ] 948 | 949 | [[package]] 950 | name = "log" 951 | version = "0.4.20" 952 | source = "registry+https://github.com/rust-lang/crates.io-index" 953 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 954 | 955 | [[package]] 956 | name = "malloc_buf" 957 | version = "0.0.6" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 960 | dependencies = [ 961 | "libc", 962 | ] 963 | 964 | [[package]] 965 | name = "memchr" 966 | version = "2.6.4" 967 | source = "registry+https://github.com/rust-lang/crates.io-index" 968 | checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" 969 | 970 | [[package]] 971 | name = "memmap2" 972 | version = "0.9.3" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" 975 | dependencies = [ 976 | "libc", 977 | ] 978 | 979 | [[package]] 980 | name = "memoffset" 981 | version = "0.7.1" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" 984 | dependencies = [ 985 | "autocfg", 986 | ] 987 | 988 | [[package]] 989 | name = "metal" 990 | version = "0.27.0" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" 993 | dependencies = [ 994 | "bitflags 2.5.0", 995 | "block", 996 | "core-graphics-types", 997 | "foreign-types", 998 | "log", 999 | "objc", 1000 | "paste", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "naga" 1005 | version = "0.19.2" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" 1008 | dependencies = [ 1009 | "bit-set", 1010 | "bitflags 2.5.0", 1011 | "codespan-reporting", 1012 | "hexf-parse", 1013 | "indexmap", 1014 | "log", 1015 | "num-traits", 1016 | "rustc-hash", 1017 | "spirv", 1018 | "termcolor", 1019 | "thiserror", 1020 | "unicode-xid", 1021 | ] 1022 | 1023 | [[package]] 1024 | name = "ndk" 1025 | version = "0.8.0" 1026 | source = "registry+https://github.com/rust-lang/crates.io-index" 1027 | checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" 1028 | dependencies = [ 1029 | "bitflags 2.5.0", 1030 | "jni-sys", 1031 | "log", 1032 | "ndk-sys", 1033 | "num_enum", 1034 | "raw-window-handle 0.5.2", 1035 | "raw-window-handle 0.6.0", 1036 | "thiserror", 1037 | ] 1038 | 1039 | [[package]] 1040 | name = "ndk-context" 1041 | version = "0.1.1" 1042 | source = "registry+https://github.com/rust-lang/crates.io-index" 1043 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 1044 | 1045 | [[package]] 1046 | name = "ndk-sys" 1047 | version = "0.5.0+25.2.9519653" 1048 | source = "registry+https://github.com/rust-lang/crates.io-index" 1049 | checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 1050 | dependencies = [ 1051 | "jni-sys", 1052 | ] 1053 | 1054 | [[package]] 1055 | name = "nix" 1056 | version = "0.26.4" 1057 | source = "registry+https://github.com/rust-lang/crates.io-index" 1058 | checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" 1059 | dependencies = [ 1060 | "bitflags 1.3.2", 1061 | "cfg-if", 1062 | "libc", 1063 | "memoffset", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "nohash-hasher" 1068 | version = "0.2.0" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" 1071 | 1072 | [[package]] 1073 | name = "num-traits" 1074 | version = "0.2.17" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" 1077 | dependencies = [ 1078 | "autocfg", 1079 | ] 1080 | 1081 | [[package]] 1082 | name = "num_enum" 1083 | version = "0.7.1" 1084 | source = "registry+https://github.com/rust-lang/crates.io-index" 1085 | checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" 1086 | dependencies = [ 1087 | "num_enum_derive", 1088 | ] 1089 | 1090 | [[package]] 1091 | name = "num_enum_derive" 1092 | version = "0.7.1" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" 1095 | dependencies = [ 1096 | "proc-macro-crate", 1097 | "proc-macro2", 1098 | "quote", 1099 | "syn 2.0.66", 1100 | ] 1101 | 1102 | [[package]] 1103 | name = "objc" 1104 | version = "0.2.7" 1105 | source = "registry+https://github.com/rust-lang/crates.io-index" 1106 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 1107 | dependencies = [ 1108 | "malloc_buf", 1109 | "objc_exception", 1110 | ] 1111 | 1112 | [[package]] 1113 | name = "objc-foundation" 1114 | version = "0.1.1" 1115 | source = "registry+https://github.com/rust-lang/crates.io-index" 1116 | checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" 1117 | dependencies = [ 1118 | "block", 1119 | "objc", 1120 | "objc_id", 1121 | ] 1122 | 1123 | [[package]] 1124 | name = "objc-sys" 1125 | version = "0.3.2" 1126 | source = "registry+https://github.com/rust-lang/crates.io-index" 1127 | checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459" 1128 | 1129 | [[package]] 1130 | name = "objc2" 1131 | version = "0.4.1" 1132 | source = "registry+https://github.com/rust-lang/crates.io-index" 1133 | checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" 1134 | dependencies = [ 1135 | "objc-sys", 1136 | "objc2-encode", 1137 | ] 1138 | 1139 | [[package]] 1140 | name = "objc2-encode" 1141 | version = "3.0.0" 1142 | source = "registry+https://github.com/rust-lang/crates.io-index" 1143 | checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" 1144 | 1145 | [[package]] 1146 | name = "objc_exception" 1147 | version = "0.1.2" 1148 | source = "registry+https://github.com/rust-lang/crates.io-index" 1149 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 1150 | dependencies = [ 1151 | "cc", 1152 | ] 1153 | 1154 | [[package]] 1155 | name = "objc_id" 1156 | version = "0.1.1" 1157 | source = "registry+https://github.com/rust-lang/crates.io-index" 1158 | checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" 1159 | dependencies = [ 1160 | "objc", 1161 | ] 1162 | 1163 | [[package]] 1164 | name = "once_cell" 1165 | version = "1.19.0" 1166 | source = "registry+https://github.com/rust-lang/crates.io-index" 1167 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1168 | 1169 | [[package]] 1170 | name = "orbclient" 1171 | version = "0.3.47" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" 1174 | dependencies = [ 1175 | "libredox", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "owned_ttf_parser" 1180 | version = "0.20.0" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" 1183 | dependencies = [ 1184 | "ttf-parser", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "parking_lot" 1189 | version = "0.12.1" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1192 | dependencies = [ 1193 | "lock_api", 1194 | "parking_lot_core", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "parking_lot_core" 1199 | version = "0.9.9" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 1202 | dependencies = [ 1203 | "cfg-if", 1204 | "libc", 1205 | "redox_syscall 0.4.1", 1206 | "smallvec", 1207 | "windows-targets 0.48.5", 1208 | ] 1209 | 1210 | [[package]] 1211 | name = "paste" 1212 | version = "1.0.14" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 1215 | 1216 | [[package]] 1217 | name = "percent-encoding" 1218 | version = "2.3.1" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 1221 | 1222 | [[package]] 1223 | name = "pin-project-lite" 1224 | version = "0.2.13" 1225 | source = "registry+https://github.com/rust-lang/crates.io-index" 1226 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 1227 | 1228 | [[package]] 1229 | name = "pkg-config" 1230 | version = "0.3.28" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" 1233 | 1234 | [[package]] 1235 | name = "polling" 1236 | version = "3.3.1" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" 1239 | dependencies = [ 1240 | "cfg-if", 1241 | "concurrent-queue", 1242 | "pin-project-lite", 1243 | "rustix", 1244 | "tracing", 1245 | "windows-sys 0.52.0", 1246 | ] 1247 | 1248 | [[package]] 1249 | name = "pollster" 1250 | version = "0.3.0" 1251 | source = "registry+https://github.com/rust-lang/crates.io-index" 1252 | checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" 1253 | 1254 | [[package]] 1255 | name = "presser" 1256 | version = "0.3.1" 1257 | source = "registry+https://github.com/rust-lang/crates.io-index" 1258 | checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 1259 | 1260 | [[package]] 1261 | name = "proc-macro-crate" 1262 | version = "2.0.1" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" 1265 | dependencies = [ 1266 | "toml_datetime", 1267 | "toml_edit", 1268 | ] 1269 | 1270 | [[package]] 1271 | name = "proc-macro2" 1272 | version = "1.0.85" 1273 | source = "registry+https://github.com/rust-lang/crates.io-index" 1274 | checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" 1275 | dependencies = [ 1276 | "unicode-ident", 1277 | ] 1278 | 1279 | [[package]] 1280 | name = "profiling" 1281 | version = "1.0.13" 1282 | source = "registry+https://github.com/rust-lang/crates.io-index" 1283 | checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e" 1284 | 1285 | [[package]] 1286 | name = "quick-xml" 1287 | version = "0.30.0" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956" 1290 | dependencies = [ 1291 | "memchr", 1292 | ] 1293 | 1294 | [[package]] 1295 | name = "quote" 1296 | version = "1.0.36" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 1299 | dependencies = [ 1300 | "proc-macro2", 1301 | ] 1302 | 1303 | [[package]] 1304 | name = "range-alloc" 1305 | version = "0.1.3" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" 1308 | 1309 | [[package]] 1310 | name = "raw-window-handle" 1311 | version = "0.5.2" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" 1314 | 1315 | [[package]] 1316 | name = "raw-window-handle" 1317 | version = "0.6.0" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" 1320 | 1321 | [[package]] 1322 | name = "redox_syscall" 1323 | version = "0.3.5" 1324 | source = "registry+https://github.com/rust-lang/crates.io-index" 1325 | checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" 1326 | dependencies = [ 1327 | "bitflags 1.3.2", 1328 | ] 1329 | 1330 | [[package]] 1331 | name = "redox_syscall" 1332 | version = "0.4.1" 1333 | source = "registry+https://github.com/rust-lang/crates.io-index" 1334 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 1335 | dependencies = [ 1336 | "bitflags 1.3.2", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "regex" 1341 | version = "1.10.2" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" 1344 | dependencies = [ 1345 | "aho-corasick", 1346 | "memchr", 1347 | "regex-automata", 1348 | "regex-syntax", 1349 | ] 1350 | 1351 | [[package]] 1352 | name = "regex-automata" 1353 | version = "0.4.3" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" 1356 | dependencies = [ 1357 | "aho-corasick", 1358 | "memchr", 1359 | "regex-syntax", 1360 | ] 1361 | 1362 | [[package]] 1363 | name = "regex-syntax" 1364 | version = "0.8.2" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 1367 | 1368 | [[package]] 1369 | name = "renderdoc-sys" 1370 | version = "1.1.0" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" 1373 | 1374 | [[package]] 1375 | name = "rustc-hash" 1376 | version = "1.1.0" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1379 | 1380 | [[package]] 1381 | name = "rustix" 1382 | version = "0.38.28" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" 1385 | dependencies = [ 1386 | "bitflags 2.5.0", 1387 | "errno", 1388 | "libc", 1389 | "linux-raw-sys", 1390 | "windows-sys 0.52.0", 1391 | ] 1392 | 1393 | [[package]] 1394 | name = "same-file" 1395 | version = "1.0.6" 1396 | source = "registry+https://github.com/rust-lang/crates.io-index" 1397 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1398 | dependencies = [ 1399 | "winapi-util", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "scoped-tls" 1404 | version = "1.0.1" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1407 | 1408 | [[package]] 1409 | name = "scopeguard" 1410 | version = "1.2.0" 1411 | source = "registry+https://github.com/rust-lang/crates.io-index" 1412 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1413 | 1414 | [[package]] 1415 | name = "sctk-adwaita" 1416 | version = "0.8.1" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550" 1419 | dependencies = [ 1420 | "ab_glyph", 1421 | "log", 1422 | "memmap2", 1423 | "smithay-client-toolkit", 1424 | "tiny-skia", 1425 | ] 1426 | 1427 | [[package]] 1428 | name = "serde" 1429 | version = "1.0.193" 1430 | source = "registry+https://github.com/rust-lang/crates.io-index" 1431 | checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" 1432 | dependencies = [ 1433 | "serde_derive", 1434 | ] 1435 | 1436 | [[package]] 1437 | name = "serde_derive" 1438 | version = "1.0.193" 1439 | source = "registry+https://github.com/rust-lang/crates.io-index" 1440 | checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" 1441 | dependencies = [ 1442 | "proc-macro2", 1443 | "quote", 1444 | "syn 2.0.66", 1445 | ] 1446 | 1447 | [[package]] 1448 | name = "slab" 1449 | version = "0.4.9" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1452 | dependencies = [ 1453 | "autocfg", 1454 | ] 1455 | 1456 | [[package]] 1457 | name = "slotmap" 1458 | version = "1.0.7" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 1461 | dependencies = [ 1462 | "version_check", 1463 | ] 1464 | 1465 | [[package]] 1466 | name = "smallvec" 1467 | version = "1.11.2" 1468 | source = "registry+https://github.com/rust-lang/crates.io-index" 1469 | checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" 1470 | 1471 | [[package]] 1472 | name = "smithay-client-toolkit" 1473 | version = "0.18.0" 1474 | source = "registry+https://github.com/rust-lang/crates.io-index" 1475 | checksum = "60e3d9941fa3bacf7c2bf4b065304faa14164151254cd16ce1b1bc8fc381600f" 1476 | dependencies = [ 1477 | "bitflags 2.5.0", 1478 | "calloop", 1479 | "calloop-wayland-source", 1480 | "cursor-icon", 1481 | "libc", 1482 | "log", 1483 | "memmap2", 1484 | "rustix", 1485 | "thiserror", 1486 | "wayland-backend", 1487 | "wayland-client", 1488 | "wayland-csd-frame", 1489 | "wayland-cursor", 1490 | "wayland-protocols", 1491 | "wayland-protocols-wlr", 1492 | "wayland-scanner", 1493 | "xkeysym", 1494 | ] 1495 | 1496 | [[package]] 1497 | name = "smithay-clipboard" 1498 | version = "0.7.0" 1499 | source = "registry+https://github.com/rust-lang/crates.io-index" 1500 | checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6" 1501 | dependencies = [ 1502 | "libc", 1503 | "smithay-client-toolkit", 1504 | "wayland-backend", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "smol_str" 1509 | version = "0.2.0" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" 1512 | dependencies = [ 1513 | "serde", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "spirv" 1518 | version = "0.3.0+sdk-1.3.268.0" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 1521 | dependencies = [ 1522 | "bitflags 2.5.0", 1523 | ] 1524 | 1525 | [[package]] 1526 | name = "static_assertions" 1527 | version = "1.1.0" 1528 | source = "registry+https://github.com/rust-lang/crates.io-index" 1529 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1530 | 1531 | [[package]] 1532 | name = "str-buf" 1533 | version = "1.0.6" 1534 | source = "registry+https://github.com/rust-lang/crates.io-index" 1535 | checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" 1536 | 1537 | [[package]] 1538 | name = "strict-num" 1539 | version = "0.1.1" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" 1542 | 1543 | [[package]] 1544 | name = "syn" 1545 | version = "1.0.109" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 1548 | dependencies = [ 1549 | "proc-macro2", 1550 | "quote", 1551 | "unicode-ident", 1552 | ] 1553 | 1554 | [[package]] 1555 | name = "syn" 1556 | version = "2.0.66" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" 1559 | dependencies = [ 1560 | "proc-macro2", 1561 | "quote", 1562 | "unicode-ident", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "termcolor" 1567 | version = "1.4.1" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 1570 | dependencies = [ 1571 | "winapi-util", 1572 | ] 1573 | 1574 | [[package]] 1575 | name = "thiserror" 1576 | version = "1.0.61" 1577 | source = "registry+https://github.com/rust-lang/crates.io-index" 1578 | checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" 1579 | dependencies = [ 1580 | "thiserror-impl", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "thiserror-impl" 1585 | version = "1.0.61" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" 1588 | dependencies = [ 1589 | "proc-macro2", 1590 | "quote", 1591 | "syn 2.0.66", 1592 | ] 1593 | 1594 | [[package]] 1595 | name = "tiny-skia" 1596 | version = "0.11.3" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "b6a067b809476893fce6a254cf285850ff69c847e6cfbade6a20b655b6c7e80d" 1599 | dependencies = [ 1600 | "arrayref", 1601 | "arrayvec", 1602 | "bytemuck", 1603 | "cfg-if", 1604 | "log", 1605 | "tiny-skia-path", 1606 | ] 1607 | 1608 | [[package]] 1609 | name = "tiny-skia-path" 1610 | version = "0.11.3" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "5de35e8a90052baaaf61f171680ac2f8e925a1e43ea9d2e3a00514772250e541" 1613 | dependencies = [ 1614 | "arrayref", 1615 | "bytemuck", 1616 | "strict-num", 1617 | ] 1618 | 1619 | [[package]] 1620 | name = "tinyvec" 1621 | version = "1.6.0" 1622 | source = "registry+https://github.com/rust-lang/crates.io-index" 1623 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 1624 | dependencies = [ 1625 | "tinyvec_macros", 1626 | ] 1627 | 1628 | [[package]] 1629 | name = "tinyvec_macros" 1630 | version = "0.1.1" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1633 | 1634 | [[package]] 1635 | name = "toml_datetime" 1636 | version = "0.6.3" 1637 | source = "registry+https://github.com/rust-lang/crates.io-index" 1638 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 1639 | 1640 | [[package]] 1641 | name = "toml_edit" 1642 | version = "0.20.2" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 1645 | dependencies = [ 1646 | "indexmap", 1647 | "toml_datetime", 1648 | "winnow", 1649 | ] 1650 | 1651 | [[package]] 1652 | name = "tracing" 1653 | version = "0.1.40" 1654 | source = "registry+https://github.com/rust-lang/crates.io-index" 1655 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1656 | dependencies = [ 1657 | "pin-project-lite", 1658 | "tracing-core", 1659 | ] 1660 | 1661 | [[package]] 1662 | name = "tracing-core" 1663 | version = "0.1.32" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1666 | 1667 | [[package]] 1668 | name = "ttf-parser" 1669 | version = "0.20.0" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" 1672 | 1673 | [[package]] 1674 | name = "type-map" 1675 | version = "0.5.0" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "deb68604048ff8fa93347f02441e4487594adc20bb8a084f9e564d2b827a0a9f" 1678 | dependencies = [ 1679 | "rustc-hash", 1680 | ] 1681 | 1682 | [[package]] 1683 | name = "unicode-bidi" 1684 | version = "0.3.14" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" 1687 | 1688 | [[package]] 1689 | name = "unicode-ident" 1690 | version = "1.0.12" 1691 | source = "registry+https://github.com/rust-lang/crates.io-index" 1692 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1693 | 1694 | [[package]] 1695 | name = "unicode-normalization" 1696 | version = "0.1.22" 1697 | source = "registry+https://github.com/rust-lang/crates.io-index" 1698 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 1699 | dependencies = [ 1700 | "tinyvec", 1701 | ] 1702 | 1703 | [[package]] 1704 | name = "unicode-segmentation" 1705 | version = "1.10.1" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" 1708 | 1709 | [[package]] 1710 | name = "unicode-width" 1711 | version = "0.1.11" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" 1714 | 1715 | [[package]] 1716 | name = "unicode-xid" 1717 | version = "0.2.4" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 1720 | 1721 | [[package]] 1722 | name = "url" 1723 | version = "2.5.0" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 1726 | dependencies = [ 1727 | "form_urlencoded", 1728 | "idna", 1729 | "percent-encoding", 1730 | ] 1731 | 1732 | [[package]] 1733 | name = "version_check" 1734 | version = "0.9.4" 1735 | source = "registry+https://github.com/rust-lang/crates.io-index" 1736 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1737 | 1738 | [[package]] 1739 | name = "walkdir" 1740 | version = "2.4.0" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 1743 | dependencies = [ 1744 | "same-file", 1745 | "winapi-util", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "wasi" 1750 | version = "0.11.0+wasi-snapshot-preview1" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1753 | 1754 | [[package]] 1755 | name = "wasm-bindgen" 1756 | version = "0.2.92" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" 1759 | dependencies = [ 1760 | "cfg-if", 1761 | "wasm-bindgen-macro", 1762 | ] 1763 | 1764 | [[package]] 1765 | name = "wasm-bindgen-backend" 1766 | version = "0.2.92" 1767 | source = "registry+https://github.com/rust-lang/crates.io-index" 1768 | checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" 1769 | dependencies = [ 1770 | "bumpalo", 1771 | "log", 1772 | "once_cell", 1773 | "proc-macro2", 1774 | "quote", 1775 | "syn 2.0.66", 1776 | "wasm-bindgen-shared", 1777 | ] 1778 | 1779 | [[package]] 1780 | name = "wasm-bindgen-futures" 1781 | version = "0.4.42" 1782 | source = "registry+https://github.com/rust-lang/crates.io-index" 1783 | checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" 1784 | dependencies = [ 1785 | "cfg-if", 1786 | "js-sys", 1787 | "wasm-bindgen", 1788 | "web-sys", 1789 | ] 1790 | 1791 | [[package]] 1792 | name = "wasm-bindgen-macro" 1793 | version = "0.2.92" 1794 | source = "registry+https://github.com/rust-lang/crates.io-index" 1795 | checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" 1796 | dependencies = [ 1797 | "quote", 1798 | "wasm-bindgen-macro-support", 1799 | ] 1800 | 1801 | [[package]] 1802 | name = "wasm-bindgen-macro-support" 1803 | version = "0.2.92" 1804 | source = "registry+https://github.com/rust-lang/crates.io-index" 1805 | checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" 1806 | dependencies = [ 1807 | "proc-macro2", 1808 | "quote", 1809 | "syn 2.0.66", 1810 | "wasm-bindgen-backend", 1811 | "wasm-bindgen-shared", 1812 | ] 1813 | 1814 | [[package]] 1815 | name = "wasm-bindgen-shared" 1816 | version = "0.2.92" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" 1819 | 1820 | [[package]] 1821 | name = "wayland-backend" 1822 | version = "0.3.2" 1823 | source = "registry+https://github.com/rust-lang/crates.io-index" 1824 | checksum = "19152ddd73f45f024ed4534d9ca2594e0ef252c1847695255dae47f34df9fbe4" 1825 | dependencies = [ 1826 | "cc", 1827 | "downcast-rs", 1828 | "nix", 1829 | "scoped-tls", 1830 | "smallvec", 1831 | "wayland-sys", 1832 | ] 1833 | 1834 | [[package]] 1835 | name = "wayland-client" 1836 | version = "0.31.1" 1837 | source = "registry+https://github.com/rust-lang/crates.io-index" 1838 | checksum = "1ca7d52347346f5473bf2f56705f360e8440873052e575e55890c4fa57843ed3" 1839 | dependencies = [ 1840 | "bitflags 2.5.0", 1841 | "nix", 1842 | "wayland-backend", 1843 | "wayland-scanner", 1844 | ] 1845 | 1846 | [[package]] 1847 | name = "wayland-csd-frame" 1848 | version = "0.3.0" 1849 | source = "registry+https://github.com/rust-lang/crates.io-index" 1850 | checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" 1851 | dependencies = [ 1852 | "bitflags 2.5.0", 1853 | "cursor-icon", 1854 | "wayland-backend", 1855 | ] 1856 | 1857 | [[package]] 1858 | name = "wayland-cursor" 1859 | version = "0.31.0" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "a44aa20ae986659d6c77d64d808a046996a932aa763913864dc40c359ef7ad5b" 1862 | dependencies = [ 1863 | "nix", 1864 | "wayland-client", 1865 | "xcursor", 1866 | ] 1867 | 1868 | [[package]] 1869 | name = "wayland-protocols" 1870 | version = "0.31.0" 1871 | source = "registry+https://github.com/rust-lang/crates.io-index" 1872 | checksum = "e253d7107ba913923dc253967f35e8561a3c65f914543e46843c88ddd729e21c" 1873 | dependencies = [ 1874 | "bitflags 2.5.0", 1875 | "wayland-backend", 1876 | "wayland-client", 1877 | "wayland-scanner", 1878 | ] 1879 | 1880 | [[package]] 1881 | name = "wayland-protocols-plasma" 1882 | version = "0.2.0" 1883 | source = "registry+https://github.com/rust-lang/crates.io-index" 1884 | checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" 1885 | dependencies = [ 1886 | "bitflags 2.5.0", 1887 | "wayland-backend", 1888 | "wayland-client", 1889 | "wayland-protocols", 1890 | "wayland-scanner", 1891 | ] 1892 | 1893 | [[package]] 1894 | name = "wayland-protocols-wlr" 1895 | version = "0.2.0" 1896 | source = "registry+https://github.com/rust-lang/crates.io-index" 1897 | checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" 1898 | dependencies = [ 1899 | "bitflags 2.5.0", 1900 | "wayland-backend", 1901 | "wayland-client", 1902 | "wayland-protocols", 1903 | "wayland-scanner", 1904 | ] 1905 | 1906 | [[package]] 1907 | name = "wayland-scanner" 1908 | version = "0.31.0" 1909 | source = "registry+https://github.com/rust-lang/crates.io-index" 1910 | checksum = "fb8e28403665c9f9513202b7e1ed71ec56fde5c107816843fb14057910b2c09c" 1911 | dependencies = [ 1912 | "proc-macro2", 1913 | "quick-xml", 1914 | "quote", 1915 | ] 1916 | 1917 | [[package]] 1918 | name = "wayland-sys" 1919 | version = "0.31.1" 1920 | source = "registry+https://github.com/rust-lang/crates.io-index" 1921 | checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" 1922 | dependencies = [ 1923 | "dlib", 1924 | "log", 1925 | "once_cell", 1926 | "pkg-config", 1927 | ] 1928 | 1929 | [[package]] 1930 | name = "web-sys" 1931 | version = "0.3.69" 1932 | source = "registry+https://github.com/rust-lang/crates.io-index" 1933 | checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" 1934 | dependencies = [ 1935 | "js-sys", 1936 | "wasm-bindgen", 1937 | ] 1938 | 1939 | [[package]] 1940 | name = "web-time" 1941 | version = "0.2.4" 1942 | source = "registry+https://github.com/rust-lang/crates.io-index" 1943 | checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" 1944 | dependencies = [ 1945 | "js-sys", 1946 | "wasm-bindgen", 1947 | ] 1948 | 1949 | [[package]] 1950 | name = "webbrowser" 1951 | version = "0.8.12" 1952 | source = "registry+https://github.com/rust-lang/crates.io-index" 1953 | checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71" 1954 | dependencies = [ 1955 | "core-foundation", 1956 | "home", 1957 | "jni", 1958 | "log", 1959 | "ndk-context", 1960 | "objc", 1961 | "raw-window-handle 0.5.2", 1962 | "url", 1963 | "web-sys", 1964 | ] 1965 | 1966 | [[package]] 1967 | name = "wgpu" 1968 | version = "0.19.4" 1969 | source = "registry+https://github.com/rust-lang/crates.io-index" 1970 | checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" 1971 | dependencies = [ 1972 | "arrayvec", 1973 | "cfg-if", 1974 | "cfg_aliases", 1975 | "js-sys", 1976 | "log", 1977 | "naga", 1978 | "parking_lot", 1979 | "profiling", 1980 | "raw-window-handle 0.6.0", 1981 | "smallvec", 1982 | "static_assertions", 1983 | "wasm-bindgen", 1984 | "wasm-bindgen-futures", 1985 | "web-sys", 1986 | "wgpu-core", 1987 | "wgpu-hal", 1988 | "wgpu-types", 1989 | ] 1990 | 1991 | [[package]] 1992 | name = "wgpu-core" 1993 | version = "0.19.4" 1994 | source = "registry+https://github.com/rust-lang/crates.io-index" 1995 | checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" 1996 | dependencies = [ 1997 | "arrayvec", 1998 | "bit-vec", 1999 | "bitflags 2.5.0", 2000 | "cfg_aliases", 2001 | "codespan-reporting", 2002 | "indexmap", 2003 | "log", 2004 | "naga", 2005 | "once_cell", 2006 | "parking_lot", 2007 | "profiling", 2008 | "raw-window-handle 0.6.0", 2009 | "rustc-hash", 2010 | "smallvec", 2011 | "thiserror", 2012 | "web-sys", 2013 | "wgpu-hal", 2014 | "wgpu-types", 2015 | ] 2016 | 2017 | [[package]] 2018 | name = "wgpu-hal" 2019 | version = "0.19.4" 2020 | source = "registry+https://github.com/rust-lang/crates.io-index" 2021 | checksum = "fc1a4924366df7ab41a5d8546d6534f1f33231aa5b3f72b9930e300f254e39c3" 2022 | dependencies = [ 2023 | "android_system_properties", 2024 | "arrayvec", 2025 | "ash", 2026 | "bit-set", 2027 | "bitflags 2.5.0", 2028 | "block", 2029 | "cfg_aliases", 2030 | "core-graphics-types", 2031 | "d3d12", 2032 | "glow", 2033 | "glutin_wgl_sys", 2034 | "gpu-alloc", 2035 | "gpu-allocator", 2036 | "gpu-descriptor", 2037 | "hassle-rs", 2038 | "js-sys", 2039 | "khronos-egl", 2040 | "libc", 2041 | "libloading 0.8.1", 2042 | "log", 2043 | "metal", 2044 | "naga", 2045 | "ndk-sys", 2046 | "objc", 2047 | "once_cell", 2048 | "parking_lot", 2049 | "profiling", 2050 | "range-alloc", 2051 | "raw-window-handle 0.6.0", 2052 | "renderdoc-sys", 2053 | "rustc-hash", 2054 | "smallvec", 2055 | "thiserror", 2056 | "wasm-bindgen", 2057 | "web-sys", 2058 | "wgpu-types", 2059 | "winapi", 2060 | ] 2061 | 2062 | [[package]] 2063 | name = "wgpu-types" 2064 | version = "0.19.2" 2065 | source = "registry+https://github.com/rust-lang/crates.io-index" 2066 | checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" 2067 | dependencies = [ 2068 | "bitflags 2.5.0", 2069 | "js-sys", 2070 | "web-sys", 2071 | ] 2072 | 2073 | [[package]] 2074 | name = "widestring" 2075 | version = "1.0.2" 2076 | source = "registry+https://github.com/rust-lang/crates.io-index" 2077 | checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" 2078 | 2079 | [[package]] 2080 | name = "winapi" 2081 | version = "0.3.9" 2082 | source = "registry+https://github.com/rust-lang/crates.io-index" 2083 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2084 | dependencies = [ 2085 | "winapi-i686-pc-windows-gnu", 2086 | "winapi-x86_64-pc-windows-gnu", 2087 | ] 2088 | 2089 | [[package]] 2090 | name = "winapi-i686-pc-windows-gnu" 2091 | version = "0.4.0" 2092 | source = "registry+https://github.com/rust-lang/crates.io-index" 2093 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2094 | 2095 | [[package]] 2096 | name = "winapi-util" 2097 | version = "0.1.6" 2098 | source = "registry+https://github.com/rust-lang/crates.io-index" 2099 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 2100 | dependencies = [ 2101 | "winapi", 2102 | ] 2103 | 2104 | [[package]] 2105 | name = "winapi-wsapoll" 2106 | version = "0.1.1" 2107 | source = "registry+https://github.com/rust-lang/crates.io-index" 2108 | checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" 2109 | dependencies = [ 2110 | "winapi", 2111 | ] 2112 | 2113 | [[package]] 2114 | name = "winapi-x86_64-pc-windows-gnu" 2115 | version = "0.4.0" 2116 | source = "registry+https://github.com/rust-lang/crates.io-index" 2117 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2118 | 2119 | [[package]] 2120 | name = "windows" 2121 | version = "0.51.1" 2122 | source = "registry+https://github.com/rust-lang/crates.io-index" 2123 | checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" 2124 | dependencies = [ 2125 | "windows-core", 2126 | "windows-targets 0.48.5", 2127 | ] 2128 | 2129 | [[package]] 2130 | name = "windows-core" 2131 | version = "0.51.1" 2132 | source = "registry+https://github.com/rust-lang/crates.io-index" 2133 | checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" 2134 | dependencies = [ 2135 | "windows-targets 0.48.5", 2136 | ] 2137 | 2138 | [[package]] 2139 | name = "windows-sys" 2140 | version = "0.45.0" 2141 | source = "registry+https://github.com/rust-lang/crates.io-index" 2142 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2143 | dependencies = [ 2144 | "windows-targets 0.42.2", 2145 | ] 2146 | 2147 | [[package]] 2148 | name = "windows-sys" 2149 | version = "0.48.0" 2150 | source = "registry+https://github.com/rust-lang/crates.io-index" 2151 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 2152 | dependencies = [ 2153 | "windows-targets 0.48.5", 2154 | ] 2155 | 2156 | [[package]] 2157 | name = "windows-sys" 2158 | version = "0.52.0" 2159 | source = "registry+https://github.com/rust-lang/crates.io-index" 2160 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 2161 | dependencies = [ 2162 | "windows-targets 0.52.0", 2163 | ] 2164 | 2165 | [[package]] 2166 | name = "windows-targets" 2167 | version = "0.42.2" 2168 | source = "registry+https://github.com/rust-lang/crates.io-index" 2169 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 2170 | dependencies = [ 2171 | "windows_aarch64_gnullvm 0.42.2", 2172 | "windows_aarch64_msvc 0.42.2", 2173 | "windows_i686_gnu 0.42.2", 2174 | "windows_i686_msvc 0.42.2", 2175 | "windows_x86_64_gnu 0.42.2", 2176 | "windows_x86_64_gnullvm 0.42.2", 2177 | "windows_x86_64_msvc 0.42.2", 2178 | ] 2179 | 2180 | [[package]] 2181 | name = "windows-targets" 2182 | version = "0.48.5" 2183 | source = "registry+https://github.com/rust-lang/crates.io-index" 2184 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 2185 | dependencies = [ 2186 | "windows_aarch64_gnullvm 0.48.5", 2187 | "windows_aarch64_msvc 0.48.5", 2188 | "windows_i686_gnu 0.48.5", 2189 | "windows_i686_msvc 0.48.5", 2190 | "windows_x86_64_gnu 0.48.5", 2191 | "windows_x86_64_gnullvm 0.48.5", 2192 | "windows_x86_64_msvc 0.48.5", 2193 | ] 2194 | 2195 | [[package]] 2196 | name = "windows-targets" 2197 | version = "0.52.0" 2198 | source = "registry+https://github.com/rust-lang/crates.io-index" 2199 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 2200 | dependencies = [ 2201 | "windows_aarch64_gnullvm 0.52.0", 2202 | "windows_aarch64_msvc 0.52.0", 2203 | "windows_i686_gnu 0.52.0", 2204 | "windows_i686_msvc 0.52.0", 2205 | "windows_x86_64_gnu 0.52.0", 2206 | "windows_x86_64_gnullvm 0.52.0", 2207 | "windows_x86_64_msvc 0.52.0", 2208 | ] 2209 | 2210 | [[package]] 2211 | name = "windows_aarch64_gnullvm" 2212 | version = "0.42.2" 2213 | source = "registry+https://github.com/rust-lang/crates.io-index" 2214 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 2215 | 2216 | [[package]] 2217 | name = "windows_aarch64_gnullvm" 2218 | version = "0.48.5" 2219 | source = "registry+https://github.com/rust-lang/crates.io-index" 2220 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 2221 | 2222 | [[package]] 2223 | name = "windows_aarch64_gnullvm" 2224 | version = "0.52.0" 2225 | source = "registry+https://github.com/rust-lang/crates.io-index" 2226 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 2227 | 2228 | [[package]] 2229 | name = "windows_aarch64_msvc" 2230 | version = "0.42.2" 2231 | source = "registry+https://github.com/rust-lang/crates.io-index" 2232 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 2233 | 2234 | [[package]] 2235 | name = "windows_aarch64_msvc" 2236 | version = "0.48.5" 2237 | source = "registry+https://github.com/rust-lang/crates.io-index" 2238 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 2239 | 2240 | [[package]] 2241 | name = "windows_aarch64_msvc" 2242 | version = "0.52.0" 2243 | source = "registry+https://github.com/rust-lang/crates.io-index" 2244 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 2245 | 2246 | [[package]] 2247 | name = "windows_i686_gnu" 2248 | version = "0.42.2" 2249 | source = "registry+https://github.com/rust-lang/crates.io-index" 2250 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 2251 | 2252 | [[package]] 2253 | name = "windows_i686_gnu" 2254 | version = "0.48.5" 2255 | source = "registry+https://github.com/rust-lang/crates.io-index" 2256 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 2257 | 2258 | [[package]] 2259 | name = "windows_i686_gnu" 2260 | version = "0.52.0" 2261 | source = "registry+https://github.com/rust-lang/crates.io-index" 2262 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 2263 | 2264 | [[package]] 2265 | name = "windows_i686_msvc" 2266 | version = "0.42.2" 2267 | source = "registry+https://github.com/rust-lang/crates.io-index" 2268 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 2269 | 2270 | [[package]] 2271 | name = "windows_i686_msvc" 2272 | version = "0.48.5" 2273 | source = "registry+https://github.com/rust-lang/crates.io-index" 2274 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 2275 | 2276 | [[package]] 2277 | name = "windows_i686_msvc" 2278 | version = "0.52.0" 2279 | source = "registry+https://github.com/rust-lang/crates.io-index" 2280 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 2281 | 2282 | [[package]] 2283 | name = "windows_x86_64_gnu" 2284 | version = "0.42.2" 2285 | source = "registry+https://github.com/rust-lang/crates.io-index" 2286 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 2287 | 2288 | [[package]] 2289 | name = "windows_x86_64_gnu" 2290 | version = "0.48.5" 2291 | source = "registry+https://github.com/rust-lang/crates.io-index" 2292 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 2293 | 2294 | [[package]] 2295 | name = "windows_x86_64_gnu" 2296 | version = "0.52.0" 2297 | source = "registry+https://github.com/rust-lang/crates.io-index" 2298 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 2299 | 2300 | [[package]] 2301 | name = "windows_x86_64_gnullvm" 2302 | version = "0.42.2" 2303 | source = "registry+https://github.com/rust-lang/crates.io-index" 2304 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 2305 | 2306 | [[package]] 2307 | name = "windows_x86_64_gnullvm" 2308 | version = "0.48.5" 2309 | source = "registry+https://github.com/rust-lang/crates.io-index" 2310 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 2311 | 2312 | [[package]] 2313 | name = "windows_x86_64_gnullvm" 2314 | version = "0.52.0" 2315 | source = "registry+https://github.com/rust-lang/crates.io-index" 2316 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 2317 | 2318 | [[package]] 2319 | name = "windows_x86_64_msvc" 2320 | version = "0.42.2" 2321 | source = "registry+https://github.com/rust-lang/crates.io-index" 2322 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 2323 | 2324 | [[package]] 2325 | name = "windows_x86_64_msvc" 2326 | version = "0.48.5" 2327 | source = "registry+https://github.com/rust-lang/crates.io-index" 2328 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 2329 | 2330 | [[package]] 2331 | name = "windows_x86_64_msvc" 2332 | version = "0.52.0" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 2335 | 2336 | [[package]] 2337 | name = "winit" 2338 | version = "0.29.7" 2339 | source = "registry+https://github.com/rust-lang/crates.io-index" 2340 | checksum = "7fd430cd4560ee9c48885a4ef473b609a56796e37b1e18222abee146143f7457" 2341 | dependencies = [ 2342 | "ahash", 2343 | "android-activity", 2344 | "atomic-waker", 2345 | "bitflags 2.5.0", 2346 | "bytemuck", 2347 | "calloop", 2348 | "cfg_aliases", 2349 | "core-foundation", 2350 | "core-graphics", 2351 | "cursor-icon", 2352 | "icrate", 2353 | "js-sys", 2354 | "libc", 2355 | "log", 2356 | "memmap2", 2357 | "ndk", 2358 | "ndk-sys", 2359 | "objc2", 2360 | "once_cell", 2361 | "orbclient", 2362 | "percent-encoding", 2363 | "raw-window-handle 0.5.2", 2364 | "raw-window-handle 0.6.0", 2365 | "redox_syscall 0.3.5", 2366 | "rustix", 2367 | "sctk-adwaita", 2368 | "smithay-client-toolkit", 2369 | "smol_str", 2370 | "unicode-segmentation", 2371 | "wasm-bindgen", 2372 | "wasm-bindgen-futures", 2373 | "wayland-backend", 2374 | "wayland-client", 2375 | "wayland-protocols", 2376 | "wayland-protocols-plasma", 2377 | "web-sys", 2378 | "web-time", 2379 | "windows-sys 0.48.0", 2380 | "x11-dl", 2381 | "x11rb 0.13.0", 2382 | "xkbcommon-dl", 2383 | ] 2384 | 2385 | [[package]] 2386 | name = "winnow" 2387 | version = "0.5.31" 2388 | source = "registry+https://github.com/rust-lang/crates.io-index" 2389 | checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" 2390 | dependencies = [ 2391 | "memchr", 2392 | ] 2393 | 2394 | [[package]] 2395 | name = "x11-dl" 2396 | version = "2.21.0" 2397 | source = "registry+https://github.com/rust-lang/crates.io-index" 2398 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 2399 | dependencies = [ 2400 | "libc", 2401 | "once_cell", 2402 | "pkg-config", 2403 | ] 2404 | 2405 | [[package]] 2406 | name = "x11rb" 2407 | version = "0.12.0" 2408 | source = "registry+https://github.com/rust-lang/crates.io-index" 2409 | checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" 2410 | dependencies = [ 2411 | "gethostname 0.3.0", 2412 | "nix", 2413 | "winapi", 2414 | "winapi-wsapoll", 2415 | "x11rb-protocol 0.12.0", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "x11rb" 2420 | version = "0.13.0" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a" 2423 | dependencies = [ 2424 | "as-raw-xcb-connection", 2425 | "gethostname 0.4.3", 2426 | "libc", 2427 | "libloading 0.8.1", 2428 | "once_cell", 2429 | "rustix", 2430 | "x11rb-protocol 0.13.0", 2431 | ] 2432 | 2433 | [[package]] 2434 | name = "x11rb-protocol" 2435 | version = "0.12.0" 2436 | source = "registry+https://github.com/rust-lang/crates.io-index" 2437 | checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" 2438 | dependencies = [ 2439 | "nix", 2440 | ] 2441 | 2442 | [[package]] 2443 | name = "x11rb-protocol" 2444 | version = "0.13.0" 2445 | source = "registry+https://github.com/rust-lang/crates.io-index" 2446 | checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34" 2447 | 2448 | [[package]] 2449 | name = "xcursor" 2450 | version = "0.3.5" 2451 | source = "registry+https://github.com/rust-lang/crates.io-index" 2452 | checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" 2453 | 2454 | [[package]] 2455 | name = "xkbcommon-dl" 2456 | version = "0.4.1" 2457 | source = "registry+https://github.com/rust-lang/crates.io-index" 2458 | checksum = "6924668544c48c0133152e7eec86d644a056ca3d09275eb8d5cdb9855f9d8699" 2459 | dependencies = [ 2460 | "bitflags 2.5.0", 2461 | "dlib", 2462 | "log", 2463 | "once_cell", 2464 | "xkeysym", 2465 | ] 2466 | 2467 | [[package]] 2468 | name = "xkeysym" 2469 | version = "0.2.0" 2470 | source = "registry+https://github.com/rust-lang/crates.io-index" 2471 | checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" 2472 | 2473 | [[package]] 2474 | name = "xml-rs" 2475 | version = "0.8.19" 2476 | source = "registry+https://github.com/rust-lang/crates.io-index" 2477 | checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" 2478 | 2479 | [[package]] 2480 | name = "zerocopy" 2481 | version = "0.7.32" 2482 | source = "registry+https://github.com/rust-lang/crates.io-index" 2483 | checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" 2484 | dependencies = [ 2485 | "zerocopy-derive", 2486 | ] 2487 | 2488 | [[package]] 2489 | name = "zerocopy-derive" 2490 | version = "0.7.32" 2491 | source = "registry+https://github.com/rust-lang/crates.io-index" 2492 | checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" 2493 | dependencies = [ 2494 | "proc-macro2", 2495 | "quote", 2496 | "syn 2.0.66", 2497 | ] 2498 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "egui2" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | 10 | 11 | winit = { version = "0.29.7", features = ["rwh_05"] } 12 | egui-wgpu = "0.27.2" 13 | pollster = "0.3.0" 14 | wgpu = "0.19.4" 15 | env_logger = "0.10.1" 16 | bytemuck = { version = "1.14", features = ["derive"] } 17 | anyhow = "1.0.77" 18 | cfg-if = "1.0.0" 19 | log = "0.4.20" 20 | egui-winit = "0.27.2" 21 | egui = "0.27.2" 22 | [profile.dev] 23 | opt-level = 1 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Basic rusty implementation of egui with winit and wgpu

2 | Screenshot 2024-01-11 at 19 52 11 3 | 4 |

**To run:**

5 | run _cargo run _ from the root folder 6 |

7 | crate versions:
8 | egui: 0.25.0 9 | wgpu: 0.18.0 10 | winit: 0.29.7 with rwh_05 feature 11 | -------------------------------------------------------------------------------- /src/gui.rs: -------------------------------------------------------------------------------- 1 | use egui::epaint::Shadow; 2 | use egui::{Context, Visuals}; 3 | use egui_wgpu::ScreenDescriptor; 4 | use egui_wgpu::Renderer; 5 | 6 | use egui_winit::State; 7 | use egui_wgpu::wgpu::{CommandEncoder, Device, Queue, TextureFormat, TextureView}; 8 | use egui_wgpu::wgpu; 9 | use egui_winit::winit::event::WindowEvent; 10 | use egui_winit::winit::window::Window; 11 | 12 | pub struct EguiRenderer { 13 | pub context: Context, 14 | state: State, 15 | renderer: Renderer, 16 | } 17 | 18 | impl EguiRenderer { 19 | pub fn new( 20 | device: &Device, 21 | output_color_format: TextureFormat, 22 | output_depth_format: Option, 23 | msaa_samples: u32, 24 | window: &Window, 25 | ) -> EguiRenderer { 26 | let egui_context = Context::default(); 27 | let id = egui_context.viewport_id(); 28 | 29 | const BORDER_RADIUS: f32 = 2.0; 30 | 31 | let visuals = Visuals { 32 | window_rounding: egui::Rounding::same(BORDER_RADIUS), 33 | window_shadow: Shadow::NONE, 34 | // menu_rounding: todo!(), 35 | ..Default::default() 36 | }; 37 | 38 | egui_context.set_visuals(visuals); 39 | 40 | let egui_state = State::new(egui_context.clone(), id, &window, None, None); 41 | 42 | // egui_state.set_pixels_per_point(window.scale_factor() as f32); 43 | let egui_renderer = Renderer::new( 44 | device, 45 | output_color_format, 46 | output_depth_format, 47 | msaa_samples, 48 | ); 49 | 50 | EguiRenderer { 51 | context: egui_context, 52 | state: egui_state, 53 | renderer: egui_renderer, 54 | } 55 | } 56 | 57 | pub fn handle_input(&mut self, window: &Window, event: &WindowEvent) { 58 | let _ = self.state.on_window_event(window, event); 59 | } 60 | 61 | pub fn draw( 62 | &mut self, 63 | device: &Device, 64 | queue: &Queue, 65 | encoder: &mut CommandEncoder, 66 | window: &Window, 67 | window_surface_view: &TextureView, 68 | screen_descriptor: ScreenDescriptor, 69 | run_ui: impl FnOnce(&Context), 70 | ) { 71 | // self.state.set_pixels_per_point(window.scale_factor() as f32); 72 | let raw_input = self.state.take_egui_input(&window); 73 | let full_output = self.context.run(raw_input, |ui| { 74 | run_ui(&self.context); 75 | }); 76 | 77 | self.state 78 | .handle_platform_output(&window, full_output.platform_output); 79 | 80 | let tris = self 81 | .context 82 | .tessellate(full_output.shapes, full_output.pixels_per_point); 83 | for (id, image_delta) in &full_output.textures_delta.set { 84 | self.renderer 85 | .update_texture(&device, &queue, *id, &image_delta); 86 | } 87 | self.renderer 88 | .update_buffers(&device, &queue, encoder, &tris, &screen_descriptor); 89 | let mut rpass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { 90 | color_attachments: &[Some(wgpu::RenderPassColorAttachment { 91 | view: &window_surface_view, 92 | resolve_target: None, 93 | ops: wgpu::Operations { 94 | load: wgpu::LoadOp::Load, 95 | store: wgpu::StoreOp::Store, 96 | }, 97 | })], 98 | depth_stencil_attachment: None, 99 | label: Some("egui main render pass"), 100 | timestamp_writes: None, 101 | occlusion_query_set: None, 102 | }); 103 | self.renderer.render(&mut rpass, &tris, &screen_descriptor); 104 | drop(rpass); 105 | for x in &full_output.textures_delta.free { 106 | self.renderer.free_texture(x) 107 | } 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /src/gui_example.rs: -------------------------------------------------------------------------------- 1 | use egui::{Align2, Context}; 2 | 3 | pub fn GUI(ui: &Context) { 4 | egui::Window::new("Streamline CFD") 5 | // .vscroll(true) 6 | .default_open(true) 7 | .max_width(1000.0) 8 | .max_height(800.0) 9 | .default_width(800.0) 10 | .resizable(true) 11 | .anchor(Align2::LEFT_TOP, [0.0, 0.0]) 12 | .show(&ui, |mut ui| { 13 | if ui.add(egui::Button::new("Click me")).clicked() { 14 | println!("PRESSED") 15 | } 16 | 17 | ui.label("Slider"); 18 | // ui.add(egui::Slider::new(_, 0..=120).text("age")); 19 | ui.end_row(); 20 | 21 | // proto_scene.egui(ui); 22 | }); 23 | } 24 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | mod gui; 2 | mod gui_example; 3 | 4 | use std::iter; 5 | 6 | use egui_wgpu::ScreenDescriptor; 7 | use gui::EguiRenderer; 8 | use gui_example::GUI; 9 | use egui_wgpu::wgpu; 10 | use egui_wgpu::wgpu::util::DeviceExt; 11 | use egui_wgpu::wgpu::TextureViewDescriptor; 12 | use egui_winit::winit::{ 13 | event::*, 14 | event_loop::EventLoop, 15 | keyboard::{Key, NamedKey}, 16 | window::{Window, WindowBuilder}, 17 | }; 18 | use egui_winit::winit; 19 | 20 | #[cfg(target_arch = "wasm32")] 21 | use wasm_bindgen::prelude::*; 22 | 23 | #[repr(C)] 24 | #[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)] 25 | struct Vertex { 26 | position: [f32; 3], 27 | color: [f32; 3], 28 | } 29 | 30 | impl Vertex { 31 | fn desc() -> wgpu::VertexBufferLayout<'static> { 32 | wgpu::VertexBufferLayout { 33 | array_stride: std::mem::size_of::() as wgpu::BufferAddress, 34 | step_mode: wgpu::VertexStepMode::Vertex, 35 | attributes: &[ 36 | wgpu::VertexAttribute { 37 | offset: 0, 38 | shader_location: 0, 39 | format: wgpu::VertexFormat::Float32x3, 40 | }, 41 | wgpu::VertexAttribute { 42 | offset: std::mem::size_of::<[f32; 3]>() as wgpu::BufferAddress, 43 | shader_location: 1, 44 | format: wgpu::VertexFormat::Float32x3, 45 | }, 46 | ], 47 | } 48 | } 49 | } 50 | 51 | const VERTICES: &[Vertex] = &[ 52 | Vertex { 53 | position: [0.0, 0.5, 0.0], 54 | color: [1.0, 0.0, 0.0], 55 | }, 56 | Vertex { 57 | position: [-0.5, -0.5, 0.0], 58 | color: [0.0, 1.0, 0.0], 59 | }, 60 | Vertex { 61 | position: [0.5, -0.5, 0.0], 62 | color: [0.0, 0.0, 1.0], 63 | }, 64 | ]; 65 | 66 | const INDICES: &[u16] = &[0, 1, 2]; 67 | 68 | struct State<'a> { 69 | surface: wgpu::Surface<'a>, 70 | device: wgpu::Device, 71 | queue: wgpu::Queue, 72 | config: wgpu::SurfaceConfiguration, 73 | size: winit::dpi::PhysicalSize, 74 | render_pipeline: wgpu::RenderPipeline, 75 | // NEW! 76 | vertex_buffer: wgpu::Buffer, 77 | index_buffer: wgpu::Buffer, 78 | num_indices: u32, 79 | window: &'a Window, 80 | egui: EguiRenderer, 81 | } 82 | 83 | impl<'a> State<'a> { 84 | async fn new(window: &'a Window) -> Self { 85 | let size = window.inner_size(); 86 | 87 | // The instance is a handle to our GPU 88 | // BackendBit::PRIMARY => Vulkan + Metal + DX12 + Browser WebGPU 89 | let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { 90 | backends: wgpu::Backends::all(), 91 | ..Default::default() 92 | }); 93 | 94 | let surface = instance.create_surface(window).unwrap(); 95 | 96 | let adapter = instance 97 | .request_adapter(&wgpu::RequestAdapterOptions { 98 | power_preference: wgpu::PowerPreference::default(), 99 | compatible_surface: Some(&surface), 100 | force_fallback_adapter: false, 101 | }) 102 | .await 103 | .unwrap(); 104 | 105 | let (device, queue) = adapter 106 | .request_device( 107 | &wgpu::DeviceDescriptor { 108 | label: None, 109 | required_features: wgpu::Features::empty(), 110 | // WebGL doesn't support all of wgpu's features, so if 111 | // we're building for the web we'll have to disable some. 112 | required_limits: if cfg!(target_arch = "wasm32") { 113 | wgpu::Limits::downlevel_webgl2_defaults() 114 | } else { 115 | wgpu::Limits::default() 116 | }, 117 | }, 118 | None, // Trace path 119 | ) 120 | .await 121 | .unwrap(); 122 | 123 | let surface_caps = surface.get_capabilities(&adapter); 124 | // Shader code in this tutorial assumes an Srgb surface texture. Using a different 125 | // one will result all the colors comming out darker. If you want to support non 126 | // Srgb surfaces, you'll need to account for that when drawing to the frame. 127 | let surface_format = surface_caps 128 | .formats 129 | .iter() 130 | .copied() 131 | .find(|f| f.is_srgb()) 132 | .unwrap_or(surface_caps.formats[0]); 133 | let config = wgpu::SurfaceConfiguration { 134 | usage: wgpu::TextureUsages::RENDER_ATTACHMENT, 135 | format: surface_format, 136 | width: size.width, 137 | height: size.height, 138 | present_mode: surface_caps.present_modes[0], 139 | alpha_mode: surface_caps.alpha_modes[0], 140 | view_formats: vec![], 141 | desired_maximum_frame_latency: 2, 142 | }; 143 | surface.configure(&device, &config); 144 | 145 | let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor { 146 | label: Some("Shader"), 147 | source: wgpu::ShaderSource::Wgsl(include_str!("shader.wgsl").into()), 148 | }); 149 | 150 | let render_pipeline_layout = 151 | device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { 152 | label: Some("Render Pipeline Layout"), 153 | bind_group_layouts: &[], 154 | push_constant_ranges: &[], 155 | }); 156 | 157 | let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { 158 | label: Some("Render Pipeline"), 159 | layout: Some(&render_pipeline_layout), 160 | vertex: wgpu::VertexState { 161 | module: &shader, 162 | entry_point: "vs_main", 163 | buffers: &[Vertex::desc()], 164 | }, 165 | fragment: Some(wgpu::FragmentState { 166 | module: &shader, 167 | entry_point: "fs_main", 168 | targets: &[Some(wgpu::ColorTargetState { 169 | format: config.format, 170 | blend: Some(wgpu::BlendState { 171 | color: wgpu::BlendComponent::REPLACE, 172 | alpha: wgpu::BlendComponent::REPLACE, 173 | }), 174 | write_mask: wgpu::ColorWrites::ALL, 175 | })], 176 | }), 177 | primitive: wgpu::PrimitiveState { 178 | topology: wgpu::PrimitiveTopology::TriangleList, 179 | strip_index_format: None, 180 | front_face: wgpu::FrontFace::Ccw, 181 | cull_mode: Some(wgpu::Face::Back), 182 | // Setting this to anything other than Fill requires Features::POLYGON_MODE_LINE 183 | // or Features::POLYGON_MODE_POINT 184 | polygon_mode: wgpu::PolygonMode::Fill, 185 | // Requires Features::DEPTH_CLIP_CONTROL 186 | unclipped_depth: false, 187 | // Requires Features::CONSERVATIVE_RASTERIZATION 188 | conservative: false, 189 | }, 190 | depth_stencil: None, 191 | multisample: wgpu::MultisampleState { 192 | count: 1, 193 | mask: !0, 194 | alpha_to_coverage_enabled: false, 195 | }, 196 | // If the pipeline will be used with a multiview render pass, this 197 | // indicates how many array layers the attachments will have. 198 | multiview: None, 199 | }); 200 | 201 | let vertex_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { 202 | label: Some("Vertex Buffer"), 203 | contents: bytemuck::cast_slice(VERTICES), 204 | usage: wgpu::BufferUsages::VERTEX, 205 | }); 206 | let index_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor { 207 | label: Some("Index Buffer"), 208 | contents: bytemuck::cast_slice(INDICES), 209 | usage: wgpu::BufferUsages::INDEX, 210 | }); 211 | let num_indices = INDICES.len() as u32; 212 | 213 | // ... 214 | let mut egui = EguiRenderer::new( 215 | &device, // wgpu Device 216 | config.format, // TextureFormat 217 | None, // this can be None 218 | 1, // samples 219 | window, // winit Window 220 | ); 221 | 222 | Self { 223 | surface, 224 | device, 225 | queue, 226 | config, 227 | size, 228 | render_pipeline, 229 | vertex_buffer, 230 | index_buffer, 231 | num_indices, 232 | window, 233 | egui, 234 | } 235 | } 236 | 237 | pub fn window(&self) -> &Window { 238 | &self.window 239 | } 240 | 241 | pub fn resize(&mut self, new_size: winit::dpi::PhysicalSize) { 242 | if new_size.width > 0 && new_size.height > 0 { 243 | self.size = new_size; 244 | self.config.width = new_size.width; 245 | self.config.height = new_size.height; 246 | self.surface.configure(&self.device, &self.config); 247 | } 248 | } 249 | 250 | #[allow(unused_variables)] 251 | fn input(&mut self, event: &WindowEvent) -> bool { 252 | self.window().request_redraw(); 253 | false 254 | } 255 | 256 | fn update(&mut self) {} 257 | 258 | fn render(&mut self) -> Result<(), wgpu::SurfaceError> { 259 | let output = self.surface.get_current_texture()?; 260 | let view = output.texture.create_view(&TextureViewDescriptor { 261 | label: None, 262 | format: None, 263 | dimension: None, 264 | aspect: wgpu::TextureAspect::All, 265 | base_mip_level: 0, 266 | mip_level_count: None, 267 | base_array_layer: 0, 268 | array_layer_count: None, 269 | }); 270 | 271 | let mut encoder = self 272 | .device 273 | .create_command_encoder(&wgpu::CommandEncoderDescriptor { 274 | label: Some("Render Encoder"), 275 | }); 276 | 277 | { 278 | let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { 279 | label: Some("Render Pass"), 280 | color_attachments: &[Some(wgpu::RenderPassColorAttachment { 281 | view: &view, 282 | resolve_target: None, 283 | ops: wgpu::Operations { 284 | load: wgpu::LoadOp::Clear(wgpu::Color { 285 | r: 0.1, 286 | g: 0.2, 287 | b: 0.3, 288 | a: 1.0, 289 | }), 290 | store: wgpu::StoreOp::Store, 291 | }, 292 | })], 293 | depth_stencil_attachment: None, 294 | occlusion_query_set: None, 295 | timestamp_writes: None, 296 | }); 297 | 298 | render_pass.set_pipeline(&self.render_pipeline); 299 | render_pass.set_vertex_buffer(0, self.vertex_buffer.slice(..)); 300 | render_pass.set_index_buffer(self.index_buffer.slice(..), wgpu::IndexFormat::Uint16); 301 | render_pass.draw_indexed(0..self.num_indices, 0, 0..1); 302 | } 303 | 304 | let screen_descriptor = ScreenDescriptor { 305 | size_in_pixels: [self.config.width, self.config.height], 306 | pixels_per_point: self.window().scale_factor() as f32, 307 | }; 308 | 309 | self.egui.draw( 310 | &self.device, 311 | &self.queue, 312 | &mut encoder, 313 | &self.window, 314 | &view, 315 | screen_descriptor, 316 | |ui| GUI(ui), 317 | ); 318 | 319 | self.queue.submit(iter::once(encoder.finish())); 320 | output.present(); 321 | 322 | Ok(()) 323 | } 324 | } 325 | 326 | #[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))] 327 | pub async fn run() { 328 | cfg_if::cfg_if! { 329 | if #[cfg(target_arch = "wasm32")] { 330 | std::panic::set_hook(Box::new(console_error_panic_hook::hook)); 331 | console_log::init_with_level(log::Level::Warn).expect("Could't initialize logger"); 332 | } else { 333 | env_logger::init(); 334 | } 335 | } 336 | 337 | let event_loop = EventLoop::new().unwrap(); 338 | let window = WindowBuilder::new().build(&event_loop).unwrap(); 339 | 340 | #[cfg(target_arch = "wasm32")] 341 | { 342 | // Winit prevents sizing with CSS, so we have to set 343 | // the size manually when on web. 344 | use winit::dpi::PhysicalSize; 345 | window.set_inner_size(PhysicalSize::new(450, 400)); 346 | 347 | use winit::platform::web::WindowExtWebSys; 348 | web_sys::window() 349 | .and_then(|win| win.document()) 350 | .and_then(|doc| { 351 | let dst = doc.get_element_by_id("wasm-example")?; 352 | let canvas = web_sys::Element::from(window.canvas()); 353 | dst.append_child(&canvas).ok()?; 354 | Some(()) 355 | }) 356 | .expect("Couldn't append canvas to document body."); 357 | } 358 | 359 | // State::new uses async code, so we're going to wait for it to finish 360 | let mut state = State::new(&window).await; 361 | 362 | let _ = event_loop.run(move |event, ewlt| match event { 363 | Event::WindowEvent { 364 | ref event, 365 | window_id, 366 | } if window_id == state.window().id() => { 367 | if !state.input(event) { 368 | match event { 369 | WindowEvent::CloseRequested 370 | | WindowEvent::KeyboardInput { 371 | event: 372 | KeyEvent { 373 | logical_key: Key::Named(NamedKey::Escape), 374 | .. 375 | }, 376 | .. 377 | } => ewlt.exit(), 378 | WindowEvent::Resized(physical_size) => { 379 | state.resize(*physical_size); 380 | } 381 | WindowEvent::RedrawRequested => { 382 | state.update(); 383 | 384 | match state.render() { 385 | Ok(_) => {} 386 | // Reconfigure the surface if it's lost or outdated 387 | Err(wgpu::SurfaceError::Lost | wgpu::SurfaceError::Outdated) => { 388 | state.resize(state.size) 389 | } 390 | // The system is out of memory, we should probably quit 391 | Err(wgpu::SurfaceError::OutOfMemory) => ewlt.exit(), 392 | // We're ignoring timeouts 393 | Err(wgpu::SurfaceError::Timeout) => log::warn!("Surface timeout"), 394 | } 395 | } 396 | 397 | _ => {} 398 | }; 399 | state.egui.handle_input(&mut state.window, &event); 400 | } 401 | } 402 | _ => {} 403 | }); 404 | } 405 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use egui2::run; 2 | 3 | fn main() { 4 | pollster::block_on(run()); 5 | } 6 | -------------------------------------------------------------------------------- /src/shader.wgsl: -------------------------------------------------------------------------------- 1 | // Vertex shader 2 | 3 | struct VertexInput { 4 | @location(0) position: vec3, 5 | @location(1) color: vec3, 6 | }; 7 | 8 | struct VertexOutput { 9 | @builtin(position) clip_position: vec4, 10 | @location(0) color: vec3, 11 | }; 12 | 13 | @vertex 14 | fn vs_main( 15 | model: VertexInput, 16 | ) -> VertexOutput { 17 | var out: VertexOutput; 18 | out.color = model.color; 19 | out.clip_position = vec4(model.position, 1.0); 20 | return out; 21 | } 22 | 23 | // Fragment shader 24 | 25 | @fragment 26 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 27 | return vec4(in.color, 1.0); 28 | } --------------------------------------------------------------------------------