├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── README.md ├── assets ├── icon.png └── shader.wgsl ├── docs ├── example.gif └── example.mp4 └── src ├── main.rs └── render.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | assets 3 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "accesskit" 7 | version = "0.17.1" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a" 10 | 11 | [[package]] 12 | name = "accesskit_consumer" 13 | version = "0.26.0" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" 16 | dependencies = [ 17 | "accesskit", 18 | "hashbrown 0.15.2", 19 | "immutable-chunkmap", 20 | ] 21 | 22 | [[package]] 23 | name = "accesskit_macos" 24 | version = "0.18.1" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" 27 | dependencies = [ 28 | "accesskit", 29 | "accesskit_consumer", 30 | "hashbrown 0.15.2", 31 | "objc2", 32 | "objc2-app-kit", 33 | "objc2-foundation", 34 | ] 35 | 36 | [[package]] 37 | name = "accesskit_windows" 38 | version = "0.24.1" 39 | source = "registry+https://github.com/rust-lang/crates.io-index" 40 | checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" 41 | dependencies = [ 42 | "accesskit", 43 | "accesskit_consumer", 44 | "hashbrown 0.15.2", 45 | "paste", 46 | "static_assertions", 47 | "windows 0.58.0", 48 | "windows-core 0.58.0", 49 | ] 50 | 51 | [[package]] 52 | name = "accesskit_winit" 53 | version = "0.23.1" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "6a6a48dad5530b6deb9fc7a52cc6c3bf72cdd9eb8157ac9d32d69f2427a5e879" 56 | dependencies = [ 57 | "accesskit", 58 | "accesskit_macos", 59 | "accesskit_windows", 60 | "raw-window-handle", 61 | "winit", 62 | ] 63 | 64 | [[package]] 65 | name = "adler" 66 | version = "1.0.2" 67 | source = "registry+https://github.com/rust-lang/crates.io-index" 68 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 69 | 70 | [[package]] 71 | name = "ahash" 72 | version = "0.8.11" 73 | source = "registry+https://github.com/rust-lang/crates.io-index" 74 | checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" 75 | dependencies = [ 76 | "cfg-if", 77 | "const-random", 78 | "getrandom", 79 | "once_cell", 80 | "version_check", 81 | "zerocopy 0.7.34", 82 | ] 83 | 84 | [[package]] 85 | name = "aho-corasick" 86 | version = "1.1.3" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 89 | dependencies = [ 90 | "memchr", 91 | ] 92 | 93 | [[package]] 94 | name = "allocator-api2" 95 | version = "0.2.18" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" 98 | 99 | [[package]] 100 | name = "alsa" 101 | version = "0.9.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce" 104 | dependencies = [ 105 | "alsa-sys", 106 | "bitflags 2.9.0", 107 | "libc", 108 | ] 109 | 110 | [[package]] 111 | name = "alsa-sys" 112 | version = "0.3.1" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" 115 | dependencies = [ 116 | "libc", 117 | "pkg-config", 118 | ] 119 | 120 | [[package]] 121 | name = "android-activity" 122 | version = "0.6.0" 123 | source = "registry+https://github.com/rust-lang/crates.io-index" 124 | checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" 125 | dependencies = [ 126 | "android-properties", 127 | "bitflags 2.9.0", 128 | "cc", 129 | "cesu8", 130 | "jni", 131 | "jni-sys", 132 | "libc", 133 | "log", 134 | "ndk 0.9.0", 135 | "ndk-context", 136 | "ndk-sys 0.6.0+11769913", 137 | "num_enum", 138 | "thiserror", 139 | ] 140 | 141 | [[package]] 142 | name = "android-properties" 143 | version = "0.2.2" 144 | source = "registry+https://github.com/rust-lang/crates.io-index" 145 | checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" 146 | 147 | [[package]] 148 | name = "android_log-sys" 149 | version = "0.3.1" 150 | source = "registry+https://github.com/rust-lang/crates.io-index" 151 | checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" 152 | 153 | [[package]] 154 | name = "android_system_properties" 155 | version = "0.1.5" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 158 | dependencies = [ 159 | "libc", 160 | ] 161 | 162 | [[package]] 163 | name = "approx" 164 | version = "0.5.1" 165 | source = "registry+https://github.com/rust-lang/crates.io-index" 166 | checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" 167 | dependencies = [ 168 | "num-traits", 169 | ] 170 | 171 | [[package]] 172 | name = "arrayref" 173 | version = "0.3.7" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" 176 | 177 | [[package]] 178 | name = "arrayvec" 179 | version = "0.7.4" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 182 | 183 | [[package]] 184 | name = "as-raw-xcb-connection" 185 | version = "1.0.1" 186 | source = "registry+https://github.com/rust-lang/crates.io-index" 187 | checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" 188 | 189 | [[package]] 190 | name = "ash" 191 | version = "0.38.0+1.3.281" 192 | source = "registry+https://github.com/rust-lang/crates.io-index" 193 | checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" 194 | dependencies = [ 195 | "libloading", 196 | ] 197 | 198 | [[package]] 199 | name = "assert_type_match" 200 | version = "0.1.1" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" 203 | dependencies = [ 204 | "proc-macro2", 205 | "quote", 206 | "syn", 207 | ] 208 | 209 | [[package]] 210 | name = "async-broadcast" 211 | version = "0.5.1" 212 | source = "registry+https://github.com/rust-lang/crates.io-index" 213 | checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" 214 | dependencies = [ 215 | "event-listener 2.5.3", 216 | "futures-core", 217 | ] 218 | 219 | [[package]] 220 | name = "async-channel" 221 | version = "2.3.1" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" 224 | dependencies = [ 225 | "concurrent-queue", 226 | "event-listener-strategy 0.5.2", 227 | "futures-core", 228 | "pin-project-lite", 229 | ] 230 | 231 | [[package]] 232 | name = "async-executor" 233 | version = "1.11.0" 234 | source = "registry+https://github.com/rust-lang/crates.io-index" 235 | checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a" 236 | dependencies = [ 237 | "async-task", 238 | "concurrent-queue", 239 | "fastrand", 240 | "futures-lite", 241 | "slab", 242 | ] 243 | 244 | [[package]] 245 | name = "async-fs" 246 | version = "2.1.2" 247 | source = "registry+https://github.com/rust-lang/crates.io-index" 248 | checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a" 249 | dependencies = [ 250 | "async-lock", 251 | "blocking", 252 | "futures-lite", 253 | ] 254 | 255 | [[package]] 256 | name = "async-lock" 257 | version = "3.3.0" 258 | source = "registry+https://github.com/rust-lang/crates.io-index" 259 | checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" 260 | dependencies = [ 261 | "event-listener 4.0.3", 262 | "event-listener-strategy 0.4.0", 263 | "pin-project-lite", 264 | ] 265 | 266 | [[package]] 267 | name = "async-task" 268 | version = "4.7.1" 269 | source = "registry+https://github.com/rust-lang/crates.io-index" 270 | checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" 271 | 272 | [[package]] 273 | name = "atomic-waker" 274 | version = "1.1.2" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" 277 | 278 | [[package]] 279 | name = "atomicow" 280 | version = "1.1.0" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "f52e8890bb9844440d0c412fa74b67fd2f14e85248b6e00708059b6da9e5f8bf" 283 | dependencies = [ 284 | "portable-atomic", 285 | "portable-atomic-util", 286 | ] 287 | 288 | [[package]] 289 | name = "autocfg" 290 | version = "1.3.0" 291 | source = "registry+https://github.com/rust-lang/crates.io-index" 292 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 293 | 294 | [[package]] 295 | name = "base64" 296 | version = "0.21.7" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 299 | 300 | [[package]] 301 | name = "base64" 302 | version = "0.22.1" 303 | source = "registry+https://github.com/rust-lang/crates.io-index" 304 | checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 305 | 306 | [[package]] 307 | name = "bevy" 308 | version = "0.15.3" 309 | source = "registry+https://github.com/rust-lang/crates.io-index" 310 | checksum = "2eaad7fe854258047680c51c3cacb804468553c04241912f6254c841c67c0198" 311 | dependencies = [ 312 | "bevy_internal", 313 | ] 314 | 315 | [[package]] 316 | name = "bevy_a11y" 317 | version = "0.15.3" 318 | source = "registry+https://github.com/rust-lang/crates.io-index" 319 | checksum = "245a938f754f70a380687b89f1c4dac75b62d58fae90ae969fcfb8ecd91ed879" 320 | dependencies = [ 321 | "accesskit", 322 | "bevy_app", 323 | "bevy_derive", 324 | "bevy_ecs", 325 | "bevy_reflect", 326 | ] 327 | 328 | [[package]] 329 | name = "bevy_animation" 330 | version = "0.15.3" 331 | source = "registry+https://github.com/rust-lang/crates.io-index" 332 | checksum = "41e2b3e4e6cb4df085b941b105f2c790901e34c8571e02342f8e96acdf7cf7d1" 333 | dependencies = [ 334 | "bevy_app", 335 | "bevy_asset", 336 | "bevy_color", 337 | "bevy_core", 338 | "bevy_derive", 339 | "bevy_ecs", 340 | "bevy_hierarchy", 341 | "bevy_log", 342 | "bevy_math", 343 | "bevy_reflect", 344 | "bevy_render", 345 | "bevy_time", 346 | "bevy_transform", 347 | "bevy_utils", 348 | "blake3", 349 | "derive_more", 350 | "downcast-rs", 351 | "either", 352 | "petgraph", 353 | "ron", 354 | "serde", 355 | "smallvec", 356 | "thread_local", 357 | "uuid", 358 | ] 359 | 360 | [[package]] 361 | name = "bevy_app" 362 | version = "0.15.3" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "a0ac033a388b8699d241499a43783a09e6a3bab2430f1297c6bd4974095efb3f" 365 | dependencies = [ 366 | "bevy_derive", 367 | "bevy_ecs", 368 | "bevy_reflect", 369 | "bevy_tasks", 370 | "bevy_utils", 371 | "console_error_panic_hook", 372 | "ctrlc", 373 | "derive_more", 374 | "downcast-rs", 375 | "wasm-bindgen", 376 | "web-sys", 377 | ] 378 | 379 | [[package]] 380 | name = "bevy_asset" 381 | version = "0.15.3" 382 | source = "registry+https://github.com/rust-lang/crates.io-index" 383 | checksum = "73fd901b3be016088c4dda2f628bda96b7cb578b9bc8ae684bbf30bec0a9483e" 384 | dependencies = [ 385 | "async-broadcast", 386 | "async-fs", 387 | "async-lock", 388 | "atomicow", 389 | "bevy_app", 390 | "bevy_asset_macros", 391 | "bevy_ecs", 392 | "bevy_reflect", 393 | "bevy_tasks", 394 | "bevy_utils", 395 | "bevy_window", 396 | "bitflags 2.9.0", 397 | "blake3", 398 | "crossbeam-channel", 399 | "derive_more", 400 | "disqualified", 401 | "downcast-rs", 402 | "either", 403 | "futures-io", 404 | "futures-lite", 405 | "js-sys", 406 | "parking_lot", 407 | "ron", 408 | "serde", 409 | "stackfuture", 410 | "uuid", 411 | "wasm-bindgen", 412 | "wasm-bindgen-futures", 413 | "web-sys", 414 | ] 415 | 416 | [[package]] 417 | name = "bevy_asset_macros" 418 | version = "0.15.3" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "6725a785789ece8d8c73bba25fdac5e50494d959530e89565bbcea9f808b7181" 421 | dependencies = [ 422 | "bevy_macro_utils", 423 | "proc-macro2", 424 | "quote", 425 | "syn", 426 | ] 427 | 428 | [[package]] 429 | name = "bevy_audio" 430 | version = "0.15.3" 431 | source = "registry+https://github.com/rust-lang/crates.io-index" 432 | checksum = "30af4b6a91c8e08f623b0cdc53ce5b8f731c78af6ef728cdfc06dc61eda164c4" 433 | dependencies = [ 434 | "bevy_app", 435 | "bevy_asset", 436 | "bevy_derive", 437 | "bevy_ecs", 438 | "bevy_hierarchy", 439 | "bevy_math", 440 | "bevy_reflect", 441 | "bevy_transform", 442 | "bevy_utils", 443 | "cpal", 444 | "rodio", 445 | ] 446 | 447 | [[package]] 448 | name = "bevy_color" 449 | version = "0.15.4" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "a87b7137ffa9844ae542043769fb98c35efbf2f8a8429ff2a73d8ef30e58baaa" 452 | dependencies = [ 453 | "bevy_math", 454 | "bevy_reflect", 455 | "bytemuck", 456 | "derive_more", 457 | "encase", 458 | "serde", 459 | "wgpu-types", 460 | ] 461 | 462 | [[package]] 463 | name = "bevy_core" 464 | version = "0.15.3" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "1e9ce8da8e4016f63c1d361b52e61aaf4348c569829c74f1a5bbedfd8d3d57a3" 467 | dependencies = [ 468 | "bevy_app", 469 | "bevy_ecs", 470 | "bevy_reflect", 471 | "bevy_tasks", 472 | "bevy_utils", 473 | "uuid", 474 | ] 475 | 476 | [[package]] 477 | name = "bevy_core_pipeline" 478 | version = "0.15.3" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "ee0ff0f4723f30a5a6578915dbfe0129f2befaec8438dde70ac1fb363aee01f5" 481 | dependencies = [ 482 | "bevy_app", 483 | "bevy_asset", 484 | "bevy_color", 485 | "bevy_core", 486 | "bevy_derive", 487 | "bevy_ecs", 488 | "bevy_image", 489 | "bevy_math", 490 | "bevy_reflect", 491 | "bevy_render", 492 | "bevy_transform", 493 | "bevy_utils", 494 | "bevy_window", 495 | "bitflags 2.9.0", 496 | "derive_more", 497 | "nonmax", 498 | "radsort", 499 | "serde", 500 | "smallvec", 501 | ] 502 | 503 | [[package]] 504 | name = "bevy_derive" 505 | version = "0.15.3" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | checksum = "57d94761ce947b0a2402fd949fe1e7a5b1535293130ba4cd9893be6295d4680a" 508 | dependencies = [ 509 | "bevy_macro_utils", 510 | "quote", 511 | "syn", 512 | ] 513 | 514 | [[package]] 515 | name = "bevy_diagnostic" 516 | version = "0.15.3" 517 | source = "registry+https://github.com/rust-lang/crates.io-index" 518 | checksum = "5e83c65979f063b593917ab9b1d7328c5854dba4b6ddf1ab78156c0105831fdf" 519 | dependencies = [ 520 | "bevy_app", 521 | "bevy_core", 522 | "bevy_ecs", 523 | "bevy_tasks", 524 | "bevy_time", 525 | "bevy_utils", 526 | "const-fnv1a-hash", 527 | "sysinfo", 528 | ] 529 | 530 | [[package]] 531 | name = "bevy_ecs" 532 | version = "0.15.3" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "1597106cc01e62e6217ccb662e0748b2ce330893f27c7dc17bac33e0bb99bca9" 535 | dependencies = [ 536 | "arrayvec", 537 | "bevy_ecs_macros", 538 | "bevy_ptr", 539 | "bevy_reflect", 540 | "bevy_tasks", 541 | "bevy_utils", 542 | "bitflags 2.9.0", 543 | "concurrent-queue", 544 | "derive_more", 545 | "disqualified", 546 | "fixedbitset 0.5.7", 547 | "nonmax", 548 | "petgraph", 549 | "serde", 550 | "smallvec", 551 | ] 552 | 553 | [[package]] 554 | name = "bevy_ecs_macros" 555 | version = "0.15.3" 556 | source = "registry+https://github.com/rust-lang/crates.io-index" 557 | checksum = "f453adf07712b39826bc5845e5b0887ce03204ee8359bbe6b40a9afda60564a1" 558 | dependencies = [ 559 | "bevy_macro_utils", 560 | "proc-macro2", 561 | "quote", 562 | "syn", 563 | ] 564 | 565 | [[package]] 566 | name = "bevy_encase_derive" 567 | version = "0.15.3" 568 | source = "registry+https://github.com/rust-lang/crates.io-index" 569 | checksum = "f37ad69d36bb9e8479a88d481ef9748f5d7ab676040531d751d3a44441dcede7" 570 | dependencies = [ 571 | "bevy_macro_utils", 572 | "encase_derive_impl", 573 | ] 574 | 575 | [[package]] 576 | name = "bevy_gilrs" 577 | version = "0.15.3" 578 | source = "registry+https://github.com/rust-lang/crates.io-index" 579 | checksum = "a737451ccd6be5da68fbba5d984328b8a82eebd16c1fda0bec840090a3d454fd" 580 | dependencies = [ 581 | "bevy_app", 582 | "bevy_ecs", 583 | "bevy_input", 584 | "bevy_time", 585 | "bevy_utils", 586 | "derive_more", 587 | "gilrs", 588 | ] 589 | 590 | [[package]] 591 | name = "bevy_gizmos" 592 | version = "0.15.3" 593 | source = "registry+https://github.com/rust-lang/crates.io-index" 594 | checksum = "c1614516d0922ad60e87cc39658422286ed684aaf4b3162d25051bc105eed814" 595 | dependencies = [ 596 | "bevy_app", 597 | "bevy_asset", 598 | "bevy_color", 599 | "bevy_core_pipeline", 600 | "bevy_ecs", 601 | "bevy_gizmos_macros", 602 | "bevy_image", 603 | "bevy_math", 604 | "bevy_pbr", 605 | "bevy_reflect", 606 | "bevy_render", 607 | "bevy_sprite", 608 | "bevy_time", 609 | "bevy_transform", 610 | "bevy_utils", 611 | "bytemuck", 612 | ] 613 | 614 | [[package]] 615 | name = "bevy_gizmos_macros" 616 | version = "0.15.3" 617 | source = "registry+https://github.com/rust-lang/crates.io-index" 618 | checksum = "0edb9e0dca64e0fc9d6b1d9e6e2178396e339e3e2b9f751e2504e3ea4ddf4508" 619 | dependencies = [ 620 | "bevy_macro_utils", 621 | "proc-macro2", 622 | "quote", 623 | "syn", 624 | ] 625 | 626 | [[package]] 627 | name = "bevy_gltf" 628 | version = "0.15.3" 629 | source = "registry+https://github.com/rust-lang/crates.io-index" 630 | checksum = "aa8364f34bc08fe067ce32418e22ee96e177101dbf1bc00803aaeb2b262615be" 631 | dependencies = [ 632 | "base64 0.22.1", 633 | "bevy_animation", 634 | "bevy_app", 635 | "bevy_asset", 636 | "bevy_color", 637 | "bevy_core", 638 | "bevy_core_pipeline", 639 | "bevy_ecs", 640 | "bevy_hierarchy", 641 | "bevy_image", 642 | "bevy_math", 643 | "bevy_pbr", 644 | "bevy_reflect", 645 | "bevy_render", 646 | "bevy_scene", 647 | "bevy_tasks", 648 | "bevy_transform", 649 | "bevy_utils", 650 | "derive_more", 651 | "gltf", 652 | "percent-encoding", 653 | "serde", 654 | "serde_json", 655 | "smallvec", 656 | ] 657 | 658 | [[package]] 659 | name = "bevy_hierarchy" 660 | version = "0.15.3" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "19ced04e04437d0a439fe4722544c2a4678c1fe3412b57ee489d817c11884045" 663 | dependencies = [ 664 | "bevy_app", 665 | "bevy_core", 666 | "bevy_ecs", 667 | "bevy_reflect", 668 | "bevy_utils", 669 | "disqualified", 670 | "smallvec", 671 | ] 672 | 673 | [[package]] 674 | name = "bevy_image" 675 | version = "0.15.3" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "4b384d1ce9c87f6151292a76233897a628c2a50b3560487c4d74472225d49826" 678 | dependencies = [ 679 | "bevy_asset", 680 | "bevy_color", 681 | "bevy_math", 682 | "bevy_reflect", 683 | "bevy_utils", 684 | "bitflags 2.9.0", 685 | "bytemuck", 686 | "derive_more", 687 | "futures-lite", 688 | "image", 689 | "ktx2", 690 | "ruzstd", 691 | "serde", 692 | "wgpu", 693 | ] 694 | 695 | [[package]] 696 | name = "bevy_input" 697 | version = "0.15.3" 698 | source = "registry+https://github.com/rust-lang/crates.io-index" 699 | checksum = "d52589939ca09695c69d629d166c5edf1759feaaf8f2078904aae9c33d08f5c3" 700 | dependencies = [ 701 | "bevy_app", 702 | "bevy_core", 703 | "bevy_ecs", 704 | "bevy_math", 705 | "bevy_reflect", 706 | "bevy_utils", 707 | "derive_more", 708 | "smol_str", 709 | ] 710 | 711 | [[package]] 712 | name = "bevy_internal" 713 | version = "0.15.3" 714 | source = "registry+https://github.com/rust-lang/crates.io-index" 715 | checksum = "f1e0c1d980d276e11558184d0627c8967ad8b70dab3e54a0f377bb53b98515b6" 716 | dependencies = [ 717 | "bevy_a11y", 718 | "bevy_animation", 719 | "bevy_app", 720 | "bevy_asset", 721 | "bevy_audio", 722 | "bevy_color", 723 | "bevy_core", 724 | "bevy_core_pipeline", 725 | "bevy_derive", 726 | "bevy_diagnostic", 727 | "bevy_ecs", 728 | "bevy_gilrs", 729 | "bevy_gizmos", 730 | "bevy_gltf", 731 | "bevy_hierarchy", 732 | "bevy_image", 733 | "bevy_input", 734 | "bevy_log", 735 | "bevy_math", 736 | "bevy_pbr", 737 | "bevy_picking", 738 | "bevy_ptr", 739 | "bevy_reflect", 740 | "bevy_render", 741 | "bevy_scene", 742 | "bevy_sprite", 743 | "bevy_state", 744 | "bevy_tasks", 745 | "bevy_text", 746 | "bevy_time", 747 | "bevy_transform", 748 | "bevy_ui", 749 | "bevy_utils", 750 | "bevy_window", 751 | "bevy_winit", 752 | ] 753 | 754 | [[package]] 755 | name = "bevy_log" 756 | version = "0.15.3" 757 | source = "registry+https://github.com/rust-lang/crates.io-index" 758 | checksum = "b381a22e01f24af51536ef1eace94298dd555d06ffcf368125d16317f5f179cb" 759 | dependencies = [ 760 | "android_log-sys", 761 | "bevy_app", 762 | "bevy_ecs", 763 | "bevy_utils", 764 | "tracing-log", 765 | "tracing-oslog", 766 | "tracing-subscriber", 767 | "tracing-wasm", 768 | ] 769 | 770 | [[package]] 771 | name = "bevy_macro_utils" 772 | version = "0.15.3" 773 | source = "registry+https://github.com/rust-lang/crates.io-index" 774 | checksum = "8bb6ded1ddc124ea214f6a2140e47a78d1fe79b0638dad39419cdeef2e1133f1" 775 | dependencies = [ 776 | "proc-macro2", 777 | "quote", 778 | "syn", 779 | "toml_edit 0.22.16", 780 | ] 781 | 782 | [[package]] 783 | name = "bevy_math" 784 | version = "0.15.3" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "1c2650169161b64f9a93e41f13253701fdf971dc95265ed667d17bea6d2a334f" 787 | dependencies = [ 788 | "bevy_reflect", 789 | "derive_more", 790 | "glam", 791 | "itertools 0.13.0", 792 | "rand", 793 | "rand_distr", 794 | "serde", 795 | "smallvec", 796 | ] 797 | 798 | [[package]] 799 | name = "bevy_mesh" 800 | version = "0.15.3" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "760f3c41b4c61a5f0d956537f454c49f79b8ed0fd0781b1a879ead8e69d95283" 803 | dependencies = [ 804 | "bevy_asset", 805 | "bevy_derive", 806 | "bevy_ecs", 807 | "bevy_image", 808 | "bevy_math", 809 | "bevy_mikktspace", 810 | "bevy_reflect", 811 | "bevy_transform", 812 | "bevy_utils", 813 | "bitflags 2.9.0", 814 | "bytemuck", 815 | "derive_more", 816 | "hexasphere", 817 | "serde", 818 | "wgpu", 819 | ] 820 | 821 | [[package]] 822 | name = "bevy_mikktspace" 823 | version = "0.15.3" 824 | source = "registry+https://github.com/rust-lang/crates.io-index" 825 | checksum = "226f663401069ded4352ed1472a85bb1f43e2b7305d6a50e53a4f6508168e380" 826 | dependencies = [ 827 | "glam", 828 | ] 829 | 830 | [[package]] 831 | name = "bevy_pbr" 832 | version = "0.15.3" 833 | source = "registry+https://github.com/rust-lang/crates.io-index" 834 | checksum = "a4d54c840d4352dac51f2a27cf915ac99b2f93db008d8fb1be8d23b09d522acf" 835 | dependencies = [ 836 | "bevy_app", 837 | "bevy_asset", 838 | "bevy_color", 839 | "bevy_core_pipeline", 840 | "bevy_derive", 841 | "bevy_ecs", 842 | "bevy_image", 843 | "bevy_math", 844 | "bevy_reflect", 845 | "bevy_render", 846 | "bevy_transform", 847 | "bevy_utils", 848 | "bevy_window", 849 | "bitflags 2.9.0", 850 | "bytemuck", 851 | "derive_more", 852 | "fixedbitset 0.5.7", 853 | "nonmax", 854 | "radsort", 855 | "smallvec", 856 | "static_assertions", 857 | ] 858 | 859 | [[package]] 860 | name = "bevy_picking" 861 | version = "0.15.3" 862 | source = "registry+https://github.com/rust-lang/crates.io-index" 863 | checksum = "2091a495c0f9c8962abb1e30f9d99696296c332b407e1f6fe1fe28aab96a8629" 864 | dependencies = [ 865 | "bevy_app", 866 | "bevy_asset", 867 | "bevy_derive", 868 | "bevy_ecs", 869 | "bevy_hierarchy", 870 | "bevy_input", 871 | "bevy_math", 872 | "bevy_mesh", 873 | "bevy_reflect", 874 | "bevy_render", 875 | "bevy_time", 876 | "bevy_transform", 877 | "bevy_utils", 878 | "bevy_window", 879 | "crossbeam-channel", 880 | "uuid", 881 | ] 882 | 883 | [[package]] 884 | name = "bevy_ptr" 885 | version = "0.15.3" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "89fe0b0b919146939481a3a7c38864face2c6d0fd2c73ab3d430dc693ecd9b11" 888 | 889 | [[package]] 890 | name = "bevy_reflect" 891 | version = "0.15.3" 892 | source = "registry+https://github.com/rust-lang/crates.io-index" 893 | checksum = "3ddbca0a39e88eff2c301dc794ee9d73a53f4b08d47b2c9b5a6aac182fae6217" 894 | dependencies = [ 895 | "assert_type_match", 896 | "bevy_ptr", 897 | "bevy_reflect_derive", 898 | "bevy_utils", 899 | "derive_more", 900 | "disqualified", 901 | "downcast-rs", 902 | "erased-serde", 903 | "glam", 904 | "petgraph", 905 | "serde", 906 | "smallvec", 907 | "smol_str", 908 | "uuid", 909 | ] 910 | 911 | [[package]] 912 | name = "bevy_reflect_derive" 913 | version = "0.15.3" 914 | source = "registry+https://github.com/rust-lang/crates.io-index" 915 | checksum = "d62affb769db17d34ad0b75ff27eca94867e2acc8ea350c5eca97d102bd98709" 916 | dependencies = [ 917 | "bevy_macro_utils", 918 | "proc-macro2", 919 | "quote", 920 | "syn", 921 | "uuid", 922 | ] 923 | 924 | [[package]] 925 | name = "bevy_render" 926 | version = "0.15.3" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "c4aa9d7df5c2b65540093b8402aceec0a55d67b54606e57ce2969abe280b4c48" 929 | dependencies = [ 930 | "async-channel", 931 | "bevy_app", 932 | "bevy_asset", 933 | "bevy_color", 934 | "bevy_core", 935 | "bevy_derive", 936 | "bevy_diagnostic", 937 | "bevy_ecs", 938 | "bevy_encase_derive", 939 | "bevy_hierarchy", 940 | "bevy_image", 941 | "bevy_math", 942 | "bevy_mesh", 943 | "bevy_reflect", 944 | "bevy_render_macros", 945 | "bevy_tasks", 946 | "bevy_time", 947 | "bevy_transform", 948 | "bevy_utils", 949 | "bevy_window", 950 | "bytemuck", 951 | "codespan-reporting", 952 | "derive_more", 953 | "downcast-rs", 954 | "encase", 955 | "futures-lite", 956 | "image", 957 | "js-sys", 958 | "ktx2", 959 | "naga", 960 | "naga_oil", 961 | "nonmax", 962 | "offset-allocator", 963 | "send_wrapper", 964 | "serde", 965 | "smallvec", 966 | "wasm-bindgen", 967 | "web-sys", 968 | "wgpu", 969 | ] 970 | 971 | [[package]] 972 | name = "bevy_render_example" 973 | version = "0.1.0" 974 | dependencies = [ 975 | "bevy", 976 | "bytemuck", 977 | ] 978 | 979 | [[package]] 980 | name = "bevy_render_macros" 981 | version = "0.15.3" 982 | source = "registry+https://github.com/rust-lang/crates.io-index" 983 | checksum = "3469307d1b5ca5c37b7f9269be033845357412ebad33eace46826e59da592f66" 984 | dependencies = [ 985 | "bevy_macro_utils", 986 | "proc-macro2", 987 | "quote", 988 | "syn", 989 | ] 990 | 991 | [[package]] 992 | name = "bevy_scene" 993 | version = "0.15.3" 994 | source = "registry+https://github.com/rust-lang/crates.io-index" 995 | checksum = "bdfe819202aa97bbb206d79fef83504b34d45529810563aafc2fe02cc10e3ee4" 996 | dependencies = [ 997 | "bevy_app", 998 | "bevy_asset", 999 | "bevy_derive", 1000 | "bevy_ecs", 1001 | "bevy_hierarchy", 1002 | "bevy_reflect", 1003 | "bevy_render", 1004 | "bevy_transform", 1005 | "bevy_utils", 1006 | "derive_more", 1007 | "serde", 1008 | "uuid", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "bevy_sprite" 1013 | version = "0.15.3" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | checksum = "27411a31704117002787c9e8cc1f2f89babf5e67572508aa029366d4643f8d01" 1016 | dependencies = [ 1017 | "bevy_app", 1018 | "bevy_asset", 1019 | "bevy_color", 1020 | "bevy_core_pipeline", 1021 | "bevy_derive", 1022 | "bevy_ecs", 1023 | "bevy_image", 1024 | "bevy_math", 1025 | "bevy_picking", 1026 | "bevy_reflect", 1027 | "bevy_render", 1028 | "bevy_transform", 1029 | "bevy_utils", 1030 | "bevy_window", 1031 | "bitflags 2.9.0", 1032 | "bytemuck", 1033 | "derive_more", 1034 | "fixedbitset 0.5.7", 1035 | "guillotiere", 1036 | "nonmax", 1037 | "radsort", 1038 | "rectangle-pack", 1039 | ] 1040 | 1041 | [[package]] 1042 | name = "bevy_state" 1043 | version = "0.15.3" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "243a72266f81452412f7a3859e5d11473952a25767dc29c8d285660330f007ba" 1046 | dependencies = [ 1047 | "bevy_app", 1048 | "bevy_ecs", 1049 | "bevy_hierarchy", 1050 | "bevy_reflect", 1051 | "bevy_state_macros", 1052 | "bevy_utils", 1053 | ] 1054 | 1055 | [[package]] 1056 | name = "bevy_state_macros" 1057 | version = "0.15.3" 1058 | source = "registry+https://github.com/rust-lang/crates.io-index" 1059 | checksum = "022eb069dfd64090fd92ba4a7f235383e49aa1c0f4320dab4999b23f67843b36" 1060 | dependencies = [ 1061 | "bevy_macro_utils", 1062 | "proc-macro2", 1063 | "quote", 1064 | "syn", 1065 | ] 1066 | 1067 | [[package]] 1068 | name = "bevy_tasks" 1069 | version = "0.15.3" 1070 | source = "registry+https://github.com/rust-lang/crates.io-index" 1071 | checksum = "028630ddc355563bd567df1076db3515858aa26715ddf7467d2086f9b40e5ab1" 1072 | dependencies = [ 1073 | "async-channel", 1074 | "async-executor", 1075 | "concurrent-queue", 1076 | "futures-channel", 1077 | "futures-lite", 1078 | "pin-project", 1079 | "wasm-bindgen-futures", 1080 | ] 1081 | 1082 | [[package]] 1083 | name = "bevy_text" 1084 | version = "0.15.3" 1085 | source = "registry+https://github.com/rust-lang/crates.io-index" 1086 | checksum = "872b0b627cedf6d1bd97b75bc4d59c16f67afdd4f2fed8f7d808a258d6cb982e" 1087 | dependencies = [ 1088 | "bevy_app", 1089 | "bevy_asset", 1090 | "bevy_color", 1091 | "bevy_derive", 1092 | "bevy_ecs", 1093 | "bevy_hierarchy", 1094 | "bevy_image", 1095 | "bevy_math", 1096 | "bevy_reflect", 1097 | "bevy_render", 1098 | "bevy_sprite", 1099 | "bevy_transform", 1100 | "bevy_utils", 1101 | "bevy_window", 1102 | "cosmic-text", 1103 | "derive_more", 1104 | "serde", 1105 | "smallvec", 1106 | "sys-locale", 1107 | "unicode-bidi", 1108 | ] 1109 | 1110 | [[package]] 1111 | name = "bevy_time" 1112 | version = "0.15.3" 1113 | source = "registry+https://github.com/rust-lang/crates.io-index" 1114 | checksum = "1b2051ec56301b994f7c182a2a6eb1490038149ad46d95eee715e1a922acdfd9" 1115 | dependencies = [ 1116 | "bevy_app", 1117 | "bevy_ecs", 1118 | "bevy_reflect", 1119 | "bevy_utils", 1120 | "crossbeam-channel", 1121 | ] 1122 | 1123 | [[package]] 1124 | name = "bevy_transform" 1125 | version = "0.15.3" 1126 | source = "registry+https://github.com/rust-lang/crates.io-index" 1127 | checksum = "a8109b1234b0e58931f51df12bc8895daa69298575cf92da408848f79a4ce201" 1128 | dependencies = [ 1129 | "bevy_app", 1130 | "bevy_ecs", 1131 | "bevy_hierarchy", 1132 | "bevy_math", 1133 | "bevy_reflect", 1134 | "derive_more", 1135 | ] 1136 | 1137 | [[package]] 1138 | name = "bevy_ui" 1139 | version = "0.15.3" 1140 | source = "registry+https://github.com/rust-lang/crates.io-index" 1141 | checksum = "e534590222d044c875bf3511e5d0b3da78889bb21ad797953484ce011af77b46" 1142 | dependencies = [ 1143 | "accesskit", 1144 | "bevy_a11y", 1145 | "bevy_app", 1146 | "bevy_asset", 1147 | "bevy_color", 1148 | "bevy_core_pipeline", 1149 | "bevy_derive", 1150 | "bevy_ecs", 1151 | "bevy_hierarchy", 1152 | "bevy_image", 1153 | "bevy_input", 1154 | "bevy_math", 1155 | "bevy_picking", 1156 | "bevy_reflect", 1157 | "bevy_render", 1158 | "bevy_sprite", 1159 | "bevy_text", 1160 | "bevy_transform", 1161 | "bevy_utils", 1162 | "bevy_window", 1163 | "bytemuck", 1164 | "derive_more", 1165 | "nonmax", 1166 | "smallvec", 1167 | "taffy", 1168 | ] 1169 | 1170 | [[package]] 1171 | name = "bevy_utils" 1172 | version = "0.15.3" 1173 | source = "registry+https://github.com/rust-lang/crates.io-index" 1174 | checksum = "63c2174d43a0de99f863c98a472370047a2bfa7d1e5cec8d9d647fb500905d9d" 1175 | dependencies = [ 1176 | "ahash", 1177 | "bevy_utils_proc_macros", 1178 | "getrandom", 1179 | "hashbrown 0.14.5", 1180 | "thread_local", 1181 | "tracing", 1182 | "web-time", 1183 | ] 1184 | 1185 | [[package]] 1186 | name = "bevy_utils_proc_macros" 1187 | version = "0.15.3" 1188 | source = "registry+https://github.com/rust-lang/crates.io-index" 1189 | checksum = "94847541f6dd2e28f54a9c2b0e857da5f2631e2201ebc25ce68781cdcb721391" 1190 | dependencies = [ 1191 | "proc-macro2", 1192 | "quote", 1193 | "syn", 1194 | ] 1195 | 1196 | [[package]] 1197 | name = "bevy_window" 1198 | version = "0.15.3" 1199 | source = "registry+https://github.com/rust-lang/crates.io-index" 1200 | checksum = "c1e1e7c6713c04404a3e7cede48a9c47b76c30efc764664ec1246147f6fb9878" 1201 | dependencies = [ 1202 | "android-activity", 1203 | "bevy_a11y", 1204 | "bevy_app", 1205 | "bevy_ecs", 1206 | "bevy_input", 1207 | "bevy_math", 1208 | "bevy_reflect", 1209 | "bevy_utils", 1210 | "raw-window-handle", 1211 | "smol_str", 1212 | ] 1213 | 1214 | [[package]] 1215 | name = "bevy_winit" 1216 | version = "0.15.3" 1217 | source = "registry+https://github.com/rust-lang/crates.io-index" 1218 | checksum = "e158a73d6d896b1600a61bc115017707ecb467d1a5ad49231c5e58294f6f6e13" 1219 | dependencies = [ 1220 | "accesskit", 1221 | "accesskit_winit", 1222 | "approx", 1223 | "bevy_a11y", 1224 | "bevy_app", 1225 | "bevy_asset", 1226 | "bevy_derive", 1227 | "bevy_ecs", 1228 | "bevy_hierarchy", 1229 | "bevy_image", 1230 | "bevy_input", 1231 | "bevy_log", 1232 | "bevy_math", 1233 | "bevy_reflect", 1234 | "bevy_tasks", 1235 | "bevy_utils", 1236 | "bevy_window", 1237 | "bytemuck", 1238 | "cfg-if", 1239 | "crossbeam-channel", 1240 | "raw-window-handle", 1241 | "wasm-bindgen", 1242 | "web-sys", 1243 | "wgpu-types", 1244 | "winit", 1245 | ] 1246 | 1247 | [[package]] 1248 | name = "bindgen" 1249 | version = "0.69.4" 1250 | source = "registry+https://github.com/rust-lang/crates.io-index" 1251 | checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" 1252 | dependencies = [ 1253 | "bitflags 2.9.0", 1254 | "cexpr", 1255 | "clang-sys", 1256 | "itertools 0.12.1", 1257 | "lazy_static", 1258 | "lazycell", 1259 | "proc-macro2", 1260 | "quote", 1261 | "regex", 1262 | "rustc-hash", 1263 | "shlex", 1264 | "syn", 1265 | ] 1266 | 1267 | [[package]] 1268 | name = "bindgen" 1269 | version = "0.70.1" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" 1272 | dependencies = [ 1273 | "bitflags 2.9.0", 1274 | "cexpr", 1275 | "clang-sys", 1276 | "itertools 0.12.1", 1277 | "log", 1278 | "prettyplease", 1279 | "proc-macro2", 1280 | "quote", 1281 | "regex", 1282 | "rustc-hash", 1283 | "shlex", 1284 | "syn", 1285 | ] 1286 | 1287 | [[package]] 1288 | name = "bit-set" 1289 | version = "0.5.3" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 1292 | dependencies = [ 1293 | "bit-vec 0.6.3", 1294 | ] 1295 | 1296 | [[package]] 1297 | name = "bit-set" 1298 | version = "0.8.0" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" 1301 | dependencies = [ 1302 | "bit-vec 0.8.0", 1303 | ] 1304 | 1305 | [[package]] 1306 | name = "bit-vec" 1307 | version = "0.6.3" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 1310 | 1311 | [[package]] 1312 | name = "bit-vec" 1313 | version = "0.8.0" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" 1316 | 1317 | [[package]] 1318 | name = "bitflags" 1319 | version = "1.3.2" 1320 | source = "registry+https://github.com/rust-lang/crates.io-index" 1321 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 1322 | 1323 | [[package]] 1324 | name = "bitflags" 1325 | version = "2.9.0" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" 1328 | dependencies = [ 1329 | "serde", 1330 | ] 1331 | 1332 | [[package]] 1333 | name = "blake3" 1334 | version = "1.5.1" 1335 | source = "registry+https://github.com/rust-lang/crates.io-index" 1336 | checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" 1337 | dependencies = [ 1338 | "arrayref", 1339 | "arrayvec", 1340 | "cc", 1341 | "cfg-if", 1342 | "constant_time_eq", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "block" 1347 | version = "0.1.6" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 1350 | 1351 | [[package]] 1352 | name = "block2" 1353 | version = "0.5.1" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" 1356 | dependencies = [ 1357 | "objc2", 1358 | ] 1359 | 1360 | [[package]] 1361 | name = "blocking" 1362 | version = "1.6.0" 1363 | source = "registry+https://github.com/rust-lang/crates.io-index" 1364 | checksum = "495f7104e962b7356f0aeb34247aca1fe7d2e783b346582db7f2904cb5717e88" 1365 | dependencies = [ 1366 | "async-channel", 1367 | "async-lock", 1368 | "async-task", 1369 | "futures-io", 1370 | "futures-lite", 1371 | "piper", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "bumpalo" 1376 | version = "3.16.0" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" 1379 | 1380 | [[package]] 1381 | name = "bytemuck" 1382 | version = "1.22.0" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" 1385 | dependencies = [ 1386 | "bytemuck_derive", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "bytemuck_derive" 1391 | version = "1.6.0" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" 1394 | dependencies = [ 1395 | "proc-macro2", 1396 | "quote", 1397 | "syn", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "byteorder" 1402 | version = "1.5.0" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 1405 | 1406 | [[package]] 1407 | name = "byteorder-lite" 1408 | version = "0.1.0" 1409 | source = "registry+https://github.com/rust-lang/crates.io-index" 1410 | checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" 1411 | 1412 | [[package]] 1413 | name = "bytes" 1414 | version = "1.6.0" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" 1417 | 1418 | [[package]] 1419 | name = "calloop" 1420 | version = "0.13.0" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" 1423 | dependencies = [ 1424 | "bitflags 2.9.0", 1425 | "log", 1426 | "polling", 1427 | "rustix", 1428 | "slab", 1429 | "thiserror", 1430 | ] 1431 | 1432 | [[package]] 1433 | name = "cc" 1434 | version = "1.0.98" 1435 | source = "registry+https://github.com/rust-lang/crates.io-index" 1436 | checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" 1437 | dependencies = [ 1438 | "jobserver", 1439 | "libc", 1440 | "once_cell", 1441 | ] 1442 | 1443 | [[package]] 1444 | name = "cesu8" 1445 | version = "1.1.0" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" 1448 | 1449 | [[package]] 1450 | name = "cexpr" 1451 | version = "0.6.0" 1452 | source = "registry+https://github.com/rust-lang/crates.io-index" 1453 | checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" 1454 | dependencies = [ 1455 | "nom", 1456 | ] 1457 | 1458 | [[package]] 1459 | name = "cfg-if" 1460 | version = "1.0.0" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 1463 | 1464 | [[package]] 1465 | name = "cfg_aliases" 1466 | version = "0.1.1" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 1469 | 1470 | [[package]] 1471 | name = "cfg_aliases" 1472 | version = "0.2.1" 1473 | source = "registry+https://github.com/rust-lang/crates.io-index" 1474 | checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" 1475 | 1476 | [[package]] 1477 | name = "clang-sys" 1478 | version = "1.7.0" 1479 | source = "registry+https://github.com/rust-lang/crates.io-index" 1480 | checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" 1481 | dependencies = [ 1482 | "glob", 1483 | "libc", 1484 | "libloading", 1485 | ] 1486 | 1487 | [[package]] 1488 | name = "codespan-reporting" 1489 | version = "0.11.1" 1490 | source = "registry+https://github.com/rust-lang/crates.io-index" 1491 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 1492 | dependencies = [ 1493 | "termcolor", 1494 | "unicode-width", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "combine" 1499 | version = "4.6.7" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" 1502 | dependencies = [ 1503 | "bytes", 1504 | "memchr", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "concurrent-queue" 1509 | version = "2.5.0" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 1512 | dependencies = [ 1513 | "crossbeam-utils", 1514 | ] 1515 | 1516 | [[package]] 1517 | name = "console_error_panic_hook" 1518 | version = "0.1.7" 1519 | source = "registry+https://github.com/rust-lang/crates.io-index" 1520 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" 1521 | dependencies = [ 1522 | "cfg-if", 1523 | "wasm-bindgen", 1524 | ] 1525 | 1526 | [[package]] 1527 | name = "const-fnv1a-hash" 1528 | version = "1.1.0" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" 1531 | 1532 | [[package]] 1533 | name = "const-random" 1534 | version = "0.1.18" 1535 | source = "registry+https://github.com/rust-lang/crates.io-index" 1536 | checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" 1537 | dependencies = [ 1538 | "const-random-macro", 1539 | ] 1540 | 1541 | [[package]] 1542 | name = "const-random-macro" 1543 | version = "0.1.16" 1544 | source = "registry+https://github.com/rust-lang/crates.io-index" 1545 | checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" 1546 | dependencies = [ 1547 | "getrandom", 1548 | "once_cell", 1549 | "tiny-keccak", 1550 | ] 1551 | 1552 | [[package]] 1553 | name = "const_panic" 1554 | version = "0.2.8" 1555 | source = "registry+https://github.com/rust-lang/crates.io-index" 1556 | checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" 1557 | 1558 | [[package]] 1559 | name = "const_soft_float" 1560 | version = "0.1.4" 1561 | source = "registry+https://github.com/rust-lang/crates.io-index" 1562 | checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" 1563 | 1564 | [[package]] 1565 | name = "constant_time_eq" 1566 | version = "0.3.0" 1567 | source = "registry+https://github.com/rust-lang/crates.io-index" 1568 | checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" 1569 | 1570 | [[package]] 1571 | name = "constgebra" 1572 | version = "0.1.4" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" 1575 | dependencies = [ 1576 | "const_soft_float", 1577 | ] 1578 | 1579 | [[package]] 1580 | name = "core-foundation" 1581 | version = "0.9.4" 1582 | source = "registry+https://github.com/rust-lang/crates.io-index" 1583 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 1584 | dependencies = [ 1585 | "core-foundation-sys", 1586 | "libc", 1587 | ] 1588 | 1589 | [[package]] 1590 | name = "core-foundation" 1591 | version = "0.10.0" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" 1594 | dependencies = [ 1595 | "core-foundation-sys", 1596 | "libc", 1597 | ] 1598 | 1599 | [[package]] 1600 | name = "core-foundation-sys" 1601 | version = "0.8.7" 1602 | source = "registry+https://github.com/rust-lang/crates.io-index" 1603 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 1604 | 1605 | [[package]] 1606 | name = "core-graphics" 1607 | version = "0.23.2" 1608 | source = "registry+https://github.com/rust-lang/crates.io-index" 1609 | checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" 1610 | dependencies = [ 1611 | "bitflags 1.3.2", 1612 | "core-foundation 0.9.4", 1613 | "core-graphics-types", 1614 | "foreign-types", 1615 | "libc", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "core-graphics-types" 1620 | version = "0.1.3" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" 1623 | dependencies = [ 1624 | "bitflags 1.3.2", 1625 | "core-foundation 0.9.4", 1626 | "libc", 1627 | ] 1628 | 1629 | [[package]] 1630 | name = "coreaudio-rs" 1631 | version = "0.11.3" 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" 1633 | checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" 1634 | dependencies = [ 1635 | "bitflags 1.3.2", 1636 | "core-foundation-sys", 1637 | "coreaudio-sys", 1638 | ] 1639 | 1640 | [[package]] 1641 | name = "coreaudio-sys" 1642 | version = "0.2.15" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | checksum = "7f01585027057ff5f0a5bf276174ae4c1594a2c5bde93d5f46a016d76270f5a9" 1645 | dependencies = [ 1646 | "bindgen 0.69.4", 1647 | ] 1648 | 1649 | [[package]] 1650 | name = "cosmic-text" 1651 | version = "0.12.1" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2" 1654 | dependencies = [ 1655 | "bitflags 2.9.0", 1656 | "fontdb", 1657 | "log", 1658 | "rangemap", 1659 | "rayon", 1660 | "rustc-hash", 1661 | "rustybuzz", 1662 | "self_cell", 1663 | "swash", 1664 | "sys-locale", 1665 | "ttf-parser 0.21.1", 1666 | "unicode-bidi", 1667 | "unicode-linebreak", 1668 | "unicode-script", 1669 | "unicode-segmentation", 1670 | ] 1671 | 1672 | [[package]] 1673 | name = "cpal" 1674 | version = "0.15.3" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" 1677 | dependencies = [ 1678 | "alsa", 1679 | "core-foundation-sys", 1680 | "coreaudio-rs", 1681 | "dasp_sample", 1682 | "jni", 1683 | "js-sys", 1684 | "libc", 1685 | "mach2", 1686 | "ndk 0.8.0", 1687 | "ndk-context", 1688 | "oboe", 1689 | "wasm-bindgen", 1690 | "wasm-bindgen-futures", 1691 | "web-sys", 1692 | "windows 0.54.0", 1693 | ] 1694 | 1695 | [[package]] 1696 | name = "crc32fast" 1697 | version = "1.4.1" 1698 | source = "registry+https://github.com/rust-lang/crates.io-index" 1699 | checksum = "58ebf8d6963185c7625d2c3c3962d99eb8936637b1427536d21dc36ae402ebad" 1700 | dependencies = [ 1701 | "cfg-if", 1702 | ] 1703 | 1704 | [[package]] 1705 | name = "crossbeam-channel" 1706 | version = "0.5.13" 1707 | source = "registry+https://github.com/rust-lang/crates.io-index" 1708 | checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" 1709 | dependencies = [ 1710 | "crossbeam-utils", 1711 | ] 1712 | 1713 | [[package]] 1714 | name = "crossbeam-deque" 1715 | version = "0.8.6" 1716 | source = "registry+https://github.com/rust-lang/crates.io-index" 1717 | checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" 1718 | dependencies = [ 1719 | "crossbeam-epoch", 1720 | "crossbeam-utils", 1721 | ] 1722 | 1723 | [[package]] 1724 | name = "crossbeam-epoch" 1725 | version = "0.9.18" 1726 | source = "registry+https://github.com/rust-lang/crates.io-index" 1727 | checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" 1728 | dependencies = [ 1729 | "crossbeam-utils", 1730 | ] 1731 | 1732 | [[package]] 1733 | name = "crossbeam-utils" 1734 | version = "0.8.20" 1735 | source = "registry+https://github.com/rust-lang/crates.io-index" 1736 | checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" 1737 | 1738 | [[package]] 1739 | name = "crunchy" 1740 | version = "0.2.3" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" 1743 | 1744 | [[package]] 1745 | name = "ctrlc" 1746 | version = "3.4.6" 1747 | source = "registry+https://github.com/rust-lang/crates.io-index" 1748 | checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c" 1749 | dependencies = [ 1750 | "nix", 1751 | "windows-sys 0.59.0", 1752 | ] 1753 | 1754 | [[package]] 1755 | name = "cursor-icon" 1756 | version = "1.1.0" 1757 | source = "registry+https://github.com/rust-lang/crates.io-index" 1758 | checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" 1759 | 1760 | [[package]] 1761 | name = "dasp_sample" 1762 | version = "0.11.0" 1763 | source = "registry+https://github.com/rust-lang/crates.io-index" 1764 | checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" 1765 | 1766 | [[package]] 1767 | name = "data-encoding" 1768 | version = "2.6.0" 1769 | source = "registry+https://github.com/rust-lang/crates.io-index" 1770 | checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" 1771 | 1772 | [[package]] 1773 | name = "derive_more" 1774 | version = "1.0.0" 1775 | source = "registry+https://github.com/rust-lang/crates.io-index" 1776 | checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" 1777 | dependencies = [ 1778 | "derive_more-impl", 1779 | ] 1780 | 1781 | [[package]] 1782 | name = "derive_more-impl" 1783 | version = "1.0.0" 1784 | source = "registry+https://github.com/rust-lang/crates.io-index" 1785 | checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" 1786 | dependencies = [ 1787 | "proc-macro2", 1788 | "quote", 1789 | "syn", 1790 | "unicode-xid", 1791 | ] 1792 | 1793 | [[package]] 1794 | name = "dispatch" 1795 | version = "0.2.0" 1796 | source = "registry+https://github.com/rust-lang/crates.io-index" 1797 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 1798 | 1799 | [[package]] 1800 | name = "disqualified" 1801 | version = "1.0.0" 1802 | source = "registry+https://github.com/rust-lang/crates.io-index" 1803 | checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd" 1804 | 1805 | [[package]] 1806 | name = "dlib" 1807 | version = "0.5.2" 1808 | source = "registry+https://github.com/rust-lang/crates.io-index" 1809 | checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" 1810 | dependencies = [ 1811 | "libloading", 1812 | ] 1813 | 1814 | [[package]] 1815 | name = "document-features" 1816 | version = "0.2.11" 1817 | source = "registry+https://github.com/rust-lang/crates.io-index" 1818 | checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d" 1819 | dependencies = [ 1820 | "litrs", 1821 | ] 1822 | 1823 | [[package]] 1824 | name = "downcast-rs" 1825 | version = "1.2.1" 1826 | source = "registry+https://github.com/rust-lang/crates.io-index" 1827 | checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" 1828 | 1829 | [[package]] 1830 | name = "dpi" 1831 | version = "0.1.1" 1832 | source = "registry+https://github.com/rust-lang/crates.io-index" 1833 | checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" 1834 | 1835 | [[package]] 1836 | name = "either" 1837 | version = "1.15.0" 1838 | source = "registry+https://github.com/rust-lang/crates.io-index" 1839 | checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 1840 | 1841 | [[package]] 1842 | name = "encase" 1843 | version = "0.10.0" 1844 | source = "registry+https://github.com/rust-lang/crates.io-index" 1845 | checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" 1846 | dependencies = [ 1847 | "const_panic", 1848 | "encase_derive", 1849 | "glam", 1850 | "thiserror", 1851 | ] 1852 | 1853 | [[package]] 1854 | name = "encase_derive" 1855 | version = "0.10.0" 1856 | source = "registry+https://github.com/rust-lang/crates.io-index" 1857 | checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" 1858 | dependencies = [ 1859 | "encase_derive_impl", 1860 | ] 1861 | 1862 | [[package]] 1863 | name = "encase_derive_impl" 1864 | version = "0.10.0" 1865 | source = "registry+https://github.com/rust-lang/crates.io-index" 1866 | checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" 1867 | dependencies = [ 1868 | "proc-macro2", 1869 | "quote", 1870 | "syn", 1871 | ] 1872 | 1873 | [[package]] 1874 | name = "equivalent" 1875 | version = "1.0.1" 1876 | source = "registry+https://github.com/rust-lang/crates.io-index" 1877 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 1878 | 1879 | [[package]] 1880 | name = "erased-serde" 1881 | version = "0.4.5" 1882 | source = "registry+https://github.com/rust-lang/crates.io-index" 1883 | checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d" 1884 | dependencies = [ 1885 | "serde", 1886 | "typeid", 1887 | ] 1888 | 1889 | [[package]] 1890 | name = "errno" 1891 | version = "0.3.9" 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" 1893 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 1894 | dependencies = [ 1895 | "libc", 1896 | "windows-sys 0.52.0", 1897 | ] 1898 | 1899 | [[package]] 1900 | name = "euclid" 1901 | version = "0.22.9" 1902 | source = "registry+https://github.com/rust-lang/crates.io-index" 1903 | checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" 1904 | dependencies = [ 1905 | "num-traits", 1906 | ] 1907 | 1908 | [[package]] 1909 | name = "event-listener" 1910 | version = "2.5.3" 1911 | source = "registry+https://github.com/rust-lang/crates.io-index" 1912 | checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" 1913 | 1914 | [[package]] 1915 | name = "event-listener" 1916 | version = "4.0.3" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" 1919 | dependencies = [ 1920 | "concurrent-queue", 1921 | "parking", 1922 | "pin-project-lite", 1923 | ] 1924 | 1925 | [[package]] 1926 | name = "event-listener" 1927 | version = "5.3.0" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24" 1930 | dependencies = [ 1931 | "concurrent-queue", 1932 | "parking", 1933 | "pin-project-lite", 1934 | ] 1935 | 1936 | [[package]] 1937 | name = "event-listener-strategy" 1938 | version = "0.4.0" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" 1941 | dependencies = [ 1942 | "event-listener 4.0.3", 1943 | "pin-project-lite", 1944 | ] 1945 | 1946 | [[package]] 1947 | name = "event-listener-strategy" 1948 | version = "0.5.2" 1949 | source = "registry+https://github.com/rust-lang/crates.io-index" 1950 | checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" 1951 | dependencies = [ 1952 | "event-listener 5.3.0", 1953 | "pin-project-lite", 1954 | ] 1955 | 1956 | [[package]] 1957 | name = "fastrand" 1958 | version = "2.1.0" 1959 | source = "registry+https://github.com/rust-lang/crates.io-index" 1960 | checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" 1961 | 1962 | [[package]] 1963 | name = "fdeflate" 1964 | version = "0.3.4" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645" 1967 | dependencies = [ 1968 | "simd-adler32", 1969 | ] 1970 | 1971 | [[package]] 1972 | name = "fixedbitset" 1973 | version = "0.4.2" 1974 | source = "registry+https://github.com/rust-lang/crates.io-index" 1975 | checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" 1976 | 1977 | [[package]] 1978 | name = "fixedbitset" 1979 | version = "0.5.7" 1980 | source = "registry+https://github.com/rust-lang/crates.io-index" 1981 | checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" 1982 | 1983 | [[package]] 1984 | name = "flate2" 1985 | version = "1.0.30" 1986 | source = "registry+https://github.com/rust-lang/crates.io-index" 1987 | checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" 1988 | dependencies = [ 1989 | "crc32fast", 1990 | "miniz_oxide", 1991 | ] 1992 | 1993 | [[package]] 1994 | name = "fnv" 1995 | version = "1.0.7" 1996 | source = "registry+https://github.com/rust-lang/crates.io-index" 1997 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1998 | 1999 | [[package]] 2000 | name = "foldhash" 2001 | version = "0.1.5" 2002 | source = "registry+https://github.com/rust-lang/crates.io-index" 2003 | checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 2004 | 2005 | [[package]] 2006 | name = "font-types" 2007 | version = "0.7.3" 2008 | source = "registry+https://github.com/rust-lang/crates.io-index" 2009 | checksum = "b3971f9a5ca983419cdc386941ba3b9e1feba01a0ab888adf78739feb2798492" 2010 | dependencies = [ 2011 | "bytemuck", 2012 | ] 2013 | 2014 | [[package]] 2015 | name = "fontconfig-parser" 2016 | version = "0.5.7" 2017 | source = "registry+https://github.com/rust-lang/crates.io-index" 2018 | checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" 2019 | dependencies = [ 2020 | "roxmltree", 2021 | ] 2022 | 2023 | [[package]] 2024 | name = "fontdb" 2025 | version = "0.16.2" 2026 | source = "registry+https://github.com/rust-lang/crates.io-index" 2027 | checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" 2028 | dependencies = [ 2029 | "fontconfig-parser", 2030 | "log", 2031 | "memmap2", 2032 | "slotmap", 2033 | "tinyvec", 2034 | "ttf-parser 0.20.0", 2035 | ] 2036 | 2037 | [[package]] 2038 | name = "foreign-types" 2039 | version = "0.5.0" 2040 | source = "registry+https://github.com/rust-lang/crates.io-index" 2041 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 2042 | dependencies = [ 2043 | "foreign-types-macros", 2044 | "foreign-types-shared", 2045 | ] 2046 | 2047 | [[package]] 2048 | name = "foreign-types-macros" 2049 | version = "0.2.3" 2050 | source = "registry+https://github.com/rust-lang/crates.io-index" 2051 | checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" 2052 | dependencies = [ 2053 | "proc-macro2", 2054 | "quote", 2055 | "syn", 2056 | ] 2057 | 2058 | [[package]] 2059 | name = "foreign-types-shared" 2060 | version = "0.3.1" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 2063 | 2064 | [[package]] 2065 | name = "futures-channel" 2066 | version = "0.3.30" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 2069 | dependencies = [ 2070 | "futures-core", 2071 | ] 2072 | 2073 | [[package]] 2074 | name = "futures-core" 2075 | version = "0.3.30" 2076 | source = "registry+https://github.com/rust-lang/crates.io-index" 2077 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 2078 | 2079 | [[package]] 2080 | name = "futures-io" 2081 | version = "0.3.30" 2082 | source = "registry+https://github.com/rust-lang/crates.io-index" 2083 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 2084 | 2085 | [[package]] 2086 | name = "futures-lite" 2087 | version = "2.3.0" 2088 | source = "registry+https://github.com/rust-lang/crates.io-index" 2089 | checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" 2090 | dependencies = [ 2091 | "fastrand", 2092 | "futures-core", 2093 | "futures-io", 2094 | "parking", 2095 | "pin-project-lite", 2096 | ] 2097 | 2098 | [[package]] 2099 | name = "gethostname" 2100 | version = "0.4.3" 2101 | source = "registry+https://github.com/rust-lang/crates.io-index" 2102 | checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" 2103 | dependencies = [ 2104 | "libc", 2105 | "windows-targets 0.48.5", 2106 | ] 2107 | 2108 | [[package]] 2109 | name = "getrandom" 2110 | version = "0.2.15" 2111 | source = "registry+https://github.com/rust-lang/crates.io-index" 2112 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 2113 | dependencies = [ 2114 | "cfg-if", 2115 | "js-sys", 2116 | "libc", 2117 | "wasi", 2118 | "wasm-bindgen", 2119 | ] 2120 | 2121 | [[package]] 2122 | name = "gilrs" 2123 | version = "0.11.0" 2124 | source = "registry+https://github.com/rust-lang/crates.io-index" 2125 | checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f" 2126 | dependencies = [ 2127 | "fnv", 2128 | "gilrs-core", 2129 | "log", 2130 | "uuid", 2131 | "vec_map", 2132 | ] 2133 | 2134 | [[package]] 2135 | name = "gilrs-core" 2136 | version = "0.6.3" 2137 | source = "registry+https://github.com/rust-lang/crates.io-index" 2138 | checksum = "0383b9f5df02975b56f25775330ba2f70ff181fe1091f698c8737868696eb856" 2139 | dependencies = [ 2140 | "core-foundation 0.10.0", 2141 | "inotify", 2142 | "io-kit-sys", 2143 | "js-sys", 2144 | "libc", 2145 | "libudev-sys", 2146 | "log", 2147 | "nix", 2148 | "uuid", 2149 | "vec_map", 2150 | "wasm-bindgen", 2151 | "web-sys", 2152 | "windows 0.54.0", 2153 | ] 2154 | 2155 | [[package]] 2156 | name = "gl_generator" 2157 | version = "0.14.0" 2158 | source = "registry+https://github.com/rust-lang/crates.io-index" 2159 | checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d" 2160 | dependencies = [ 2161 | "khronos_api", 2162 | "log", 2163 | "xml-rs", 2164 | ] 2165 | 2166 | [[package]] 2167 | name = "glam" 2168 | version = "0.29.3" 2169 | source = "registry+https://github.com/rust-lang/crates.io-index" 2170 | checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" 2171 | dependencies = [ 2172 | "bytemuck", 2173 | "rand", 2174 | "serde", 2175 | ] 2176 | 2177 | [[package]] 2178 | name = "glob" 2179 | version = "0.3.1" 2180 | source = "registry+https://github.com/rust-lang/crates.io-index" 2181 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 2182 | 2183 | [[package]] 2184 | name = "glow" 2185 | version = "0.14.2" 2186 | source = "registry+https://github.com/rust-lang/crates.io-index" 2187 | checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" 2188 | dependencies = [ 2189 | "js-sys", 2190 | "slotmap", 2191 | "wasm-bindgen", 2192 | "web-sys", 2193 | ] 2194 | 2195 | [[package]] 2196 | name = "gltf" 2197 | version = "1.4.1" 2198 | source = "registry+https://github.com/rust-lang/crates.io-index" 2199 | checksum = "e3ce1918195723ce6ac74e80542c5a96a40c2b26162c1957a5cd70799b8cacf7" 2200 | dependencies = [ 2201 | "byteorder", 2202 | "gltf-json", 2203 | "lazy_static", 2204 | "serde_json", 2205 | ] 2206 | 2207 | [[package]] 2208 | name = "gltf-derive" 2209 | version = "1.4.1" 2210 | source = "registry+https://github.com/rust-lang/crates.io-index" 2211 | checksum = "14070e711538afba5d6c807edb74bcb84e5dbb9211a3bf5dea0dfab5b24f4c51" 2212 | dependencies = [ 2213 | "inflections", 2214 | "proc-macro2", 2215 | "quote", 2216 | "syn", 2217 | ] 2218 | 2219 | [[package]] 2220 | name = "gltf-json" 2221 | version = "1.4.1" 2222 | source = "registry+https://github.com/rust-lang/crates.io-index" 2223 | checksum = "e6176f9d60a7eab0a877e8e96548605dedbde9190a7ae1e80bbcc1c9af03ab14" 2224 | dependencies = [ 2225 | "gltf-derive", 2226 | "serde", 2227 | "serde_derive", 2228 | "serde_json", 2229 | ] 2230 | 2231 | [[package]] 2232 | name = "glutin_wgl_sys" 2233 | version = "0.6.1" 2234 | source = "registry+https://github.com/rust-lang/crates.io-index" 2235 | checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" 2236 | dependencies = [ 2237 | "gl_generator", 2238 | ] 2239 | 2240 | [[package]] 2241 | name = "gpu-alloc" 2242 | version = "0.6.0" 2243 | source = "registry+https://github.com/rust-lang/crates.io-index" 2244 | checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 2245 | dependencies = [ 2246 | "bitflags 2.9.0", 2247 | "gpu-alloc-types", 2248 | ] 2249 | 2250 | [[package]] 2251 | name = "gpu-alloc-types" 2252 | version = "0.3.0" 2253 | source = "registry+https://github.com/rust-lang/crates.io-index" 2254 | checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 2255 | dependencies = [ 2256 | "bitflags 2.9.0", 2257 | ] 2258 | 2259 | [[package]] 2260 | name = "gpu-allocator" 2261 | version = "0.27.0" 2262 | source = "registry+https://github.com/rust-lang/crates.io-index" 2263 | checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" 2264 | dependencies = [ 2265 | "log", 2266 | "presser", 2267 | "thiserror", 2268 | "windows 0.54.0", 2269 | ] 2270 | 2271 | [[package]] 2272 | name = "gpu-descriptor" 2273 | version = "0.3.1" 2274 | source = "registry+https://github.com/rust-lang/crates.io-index" 2275 | checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" 2276 | dependencies = [ 2277 | "bitflags 2.9.0", 2278 | "gpu-descriptor-types", 2279 | "hashbrown 0.15.2", 2280 | ] 2281 | 2282 | [[package]] 2283 | name = "gpu-descriptor-types" 2284 | version = "0.2.0" 2285 | source = "registry+https://github.com/rust-lang/crates.io-index" 2286 | checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" 2287 | dependencies = [ 2288 | "bitflags 2.9.0", 2289 | ] 2290 | 2291 | [[package]] 2292 | name = "grid" 2293 | version = "0.14.0" 2294 | source = "registry+https://github.com/rust-lang/crates.io-index" 2295 | checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" 2296 | 2297 | [[package]] 2298 | name = "guillotiere" 2299 | version = "0.6.2" 2300 | source = "registry+https://github.com/rust-lang/crates.io-index" 2301 | checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" 2302 | dependencies = [ 2303 | "euclid", 2304 | "svg_fmt", 2305 | ] 2306 | 2307 | [[package]] 2308 | name = "hashbrown" 2309 | version = "0.14.5" 2310 | source = "registry+https://github.com/rust-lang/crates.io-index" 2311 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 2312 | dependencies = [ 2313 | "ahash", 2314 | "allocator-api2", 2315 | "serde", 2316 | ] 2317 | 2318 | [[package]] 2319 | name = "hashbrown" 2320 | version = "0.15.2" 2321 | source = "registry+https://github.com/rust-lang/crates.io-index" 2322 | checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" 2323 | dependencies = [ 2324 | "foldhash", 2325 | ] 2326 | 2327 | [[package]] 2328 | name = "hermit-abi" 2329 | version = "0.3.9" 2330 | source = "registry+https://github.com/rust-lang/crates.io-index" 2331 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 2332 | 2333 | [[package]] 2334 | name = "hexasphere" 2335 | version = "15.1.0" 2336 | source = "registry+https://github.com/rust-lang/crates.io-index" 2337 | checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679" 2338 | dependencies = [ 2339 | "constgebra", 2340 | "glam", 2341 | "tinyvec", 2342 | ] 2343 | 2344 | [[package]] 2345 | name = "hexf-parse" 2346 | version = "0.2.1" 2347 | source = "registry+https://github.com/rust-lang/crates.io-index" 2348 | checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 2349 | 2350 | [[package]] 2351 | name = "image" 2352 | version = "0.25.6" 2353 | source = "registry+https://github.com/rust-lang/crates.io-index" 2354 | checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a" 2355 | dependencies = [ 2356 | "bytemuck", 2357 | "byteorder-lite", 2358 | "num-traits", 2359 | "png", 2360 | ] 2361 | 2362 | [[package]] 2363 | name = "immutable-chunkmap" 2364 | version = "2.0.6" 2365 | source = "registry+https://github.com/rust-lang/crates.io-index" 2366 | checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" 2367 | dependencies = [ 2368 | "arrayvec", 2369 | ] 2370 | 2371 | [[package]] 2372 | name = "indexmap" 2373 | version = "2.2.6" 2374 | source = "registry+https://github.com/rust-lang/crates.io-index" 2375 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 2376 | dependencies = [ 2377 | "equivalent", 2378 | "hashbrown 0.14.5", 2379 | ] 2380 | 2381 | [[package]] 2382 | name = "inflections" 2383 | version = "1.1.1" 2384 | source = "registry+https://github.com/rust-lang/crates.io-index" 2385 | checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" 2386 | 2387 | [[package]] 2388 | name = "inotify" 2389 | version = "0.11.0" 2390 | source = "registry+https://github.com/rust-lang/crates.io-index" 2391 | checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" 2392 | dependencies = [ 2393 | "bitflags 2.9.0", 2394 | "inotify-sys", 2395 | "libc", 2396 | ] 2397 | 2398 | [[package]] 2399 | name = "inotify-sys" 2400 | version = "0.1.5" 2401 | source = "registry+https://github.com/rust-lang/crates.io-index" 2402 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 2403 | dependencies = [ 2404 | "libc", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "io-kit-sys" 2409 | version = "0.4.1" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" 2412 | dependencies = [ 2413 | "core-foundation-sys", 2414 | "mach2", 2415 | ] 2416 | 2417 | [[package]] 2418 | name = "itertools" 2419 | version = "0.12.1" 2420 | source = "registry+https://github.com/rust-lang/crates.io-index" 2421 | checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" 2422 | dependencies = [ 2423 | "either", 2424 | ] 2425 | 2426 | [[package]] 2427 | name = "itertools" 2428 | version = "0.13.0" 2429 | source = "registry+https://github.com/rust-lang/crates.io-index" 2430 | checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" 2431 | dependencies = [ 2432 | "either", 2433 | ] 2434 | 2435 | [[package]] 2436 | name = "itoa" 2437 | version = "1.0.11" 2438 | source = "registry+https://github.com/rust-lang/crates.io-index" 2439 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 2440 | 2441 | [[package]] 2442 | name = "jni" 2443 | version = "0.21.1" 2444 | source = "registry+https://github.com/rust-lang/crates.io-index" 2445 | checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" 2446 | dependencies = [ 2447 | "cesu8", 2448 | "cfg-if", 2449 | "combine", 2450 | "jni-sys", 2451 | "log", 2452 | "thiserror", 2453 | "walkdir", 2454 | "windows-sys 0.45.0", 2455 | ] 2456 | 2457 | [[package]] 2458 | name = "jni-sys" 2459 | version = "0.3.0" 2460 | source = "registry+https://github.com/rust-lang/crates.io-index" 2461 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 2462 | 2463 | [[package]] 2464 | name = "jobserver" 2465 | version = "0.1.31" 2466 | source = "registry+https://github.com/rust-lang/crates.io-index" 2467 | checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" 2468 | dependencies = [ 2469 | "libc", 2470 | ] 2471 | 2472 | [[package]] 2473 | name = "js-sys" 2474 | version = "0.3.77" 2475 | source = "registry+https://github.com/rust-lang/crates.io-index" 2476 | checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" 2477 | dependencies = [ 2478 | "once_cell", 2479 | "wasm-bindgen", 2480 | ] 2481 | 2482 | [[package]] 2483 | name = "khronos-egl" 2484 | version = "6.0.0" 2485 | source = "registry+https://github.com/rust-lang/crates.io-index" 2486 | checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" 2487 | dependencies = [ 2488 | "libc", 2489 | "libloading", 2490 | "pkg-config", 2491 | ] 2492 | 2493 | [[package]] 2494 | name = "khronos_api" 2495 | version = "3.1.0" 2496 | source = "registry+https://github.com/rust-lang/crates.io-index" 2497 | checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" 2498 | 2499 | [[package]] 2500 | name = "ktx2" 2501 | version = "0.3.0" 2502 | source = "registry+https://github.com/rust-lang/crates.io-index" 2503 | checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" 2504 | dependencies = [ 2505 | "bitflags 1.3.2", 2506 | ] 2507 | 2508 | [[package]] 2509 | name = "lazy_static" 2510 | version = "1.4.0" 2511 | source = "registry+https://github.com/rust-lang/crates.io-index" 2512 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 2513 | 2514 | [[package]] 2515 | name = "lazycell" 2516 | version = "1.3.0" 2517 | source = "registry+https://github.com/rust-lang/crates.io-index" 2518 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 2519 | 2520 | [[package]] 2521 | name = "lewton" 2522 | version = "0.10.2" 2523 | source = "registry+https://github.com/rust-lang/crates.io-index" 2524 | checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" 2525 | dependencies = [ 2526 | "byteorder", 2527 | "ogg", 2528 | "tinyvec", 2529 | ] 2530 | 2531 | [[package]] 2532 | name = "libc" 2533 | version = "0.2.171" 2534 | source = "registry+https://github.com/rust-lang/crates.io-index" 2535 | checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" 2536 | 2537 | [[package]] 2538 | name = "libloading" 2539 | version = "0.8.3" 2540 | source = "registry+https://github.com/rust-lang/crates.io-index" 2541 | checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" 2542 | dependencies = [ 2543 | "cfg-if", 2544 | "windows-targets 0.48.5", 2545 | ] 2546 | 2547 | [[package]] 2548 | name = "libm" 2549 | version = "0.2.11" 2550 | source = "registry+https://github.com/rust-lang/crates.io-index" 2551 | checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" 2552 | 2553 | [[package]] 2554 | name = "libredox" 2555 | version = "0.0.2" 2556 | source = "registry+https://github.com/rust-lang/crates.io-index" 2557 | checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" 2558 | dependencies = [ 2559 | "bitflags 2.9.0", 2560 | "libc", 2561 | "redox_syscall 0.4.1", 2562 | ] 2563 | 2564 | [[package]] 2565 | name = "libudev-sys" 2566 | version = "0.1.4" 2567 | source = "registry+https://github.com/rust-lang/crates.io-index" 2568 | checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" 2569 | dependencies = [ 2570 | "libc", 2571 | "pkg-config", 2572 | ] 2573 | 2574 | [[package]] 2575 | name = "linux-raw-sys" 2576 | version = "0.4.14" 2577 | source = "registry+https://github.com/rust-lang/crates.io-index" 2578 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 2579 | 2580 | [[package]] 2581 | name = "litrs" 2582 | version = "0.4.1" 2583 | source = "registry+https://github.com/rust-lang/crates.io-index" 2584 | checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" 2585 | 2586 | [[package]] 2587 | name = "lock_api" 2588 | version = "0.4.12" 2589 | source = "registry+https://github.com/rust-lang/crates.io-index" 2590 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 2591 | dependencies = [ 2592 | "autocfg", 2593 | "scopeguard", 2594 | ] 2595 | 2596 | [[package]] 2597 | name = "log" 2598 | version = "0.4.21" 2599 | source = "registry+https://github.com/rust-lang/crates.io-index" 2600 | checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" 2601 | 2602 | [[package]] 2603 | name = "mach2" 2604 | version = "0.4.2" 2605 | source = "registry+https://github.com/rust-lang/crates.io-index" 2606 | checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" 2607 | dependencies = [ 2608 | "libc", 2609 | ] 2610 | 2611 | [[package]] 2612 | name = "malloc_buf" 2613 | version = "0.0.6" 2614 | source = "registry+https://github.com/rust-lang/crates.io-index" 2615 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 2616 | dependencies = [ 2617 | "libc", 2618 | ] 2619 | 2620 | [[package]] 2621 | name = "matchers" 2622 | version = "0.1.0" 2623 | source = "registry+https://github.com/rust-lang/crates.io-index" 2624 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 2625 | dependencies = [ 2626 | "regex-automata 0.1.10", 2627 | ] 2628 | 2629 | [[package]] 2630 | name = "memchr" 2631 | version = "2.7.2" 2632 | source = "registry+https://github.com/rust-lang/crates.io-index" 2633 | checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" 2634 | 2635 | [[package]] 2636 | name = "memmap2" 2637 | version = "0.9.5" 2638 | source = "registry+https://github.com/rust-lang/crates.io-index" 2639 | checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" 2640 | dependencies = [ 2641 | "libc", 2642 | ] 2643 | 2644 | [[package]] 2645 | name = "metal" 2646 | version = "0.29.0" 2647 | source = "registry+https://github.com/rust-lang/crates.io-index" 2648 | checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" 2649 | dependencies = [ 2650 | "bitflags 2.9.0", 2651 | "block", 2652 | "core-graphics-types", 2653 | "foreign-types", 2654 | "log", 2655 | "objc", 2656 | "paste", 2657 | ] 2658 | 2659 | [[package]] 2660 | name = "minimal-lexical" 2661 | version = "0.2.1" 2662 | source = "registry+https://github.com/rust-lang/crates.io-index" 2663 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 2664 | 2665 | [[package]] 2666 | name = "miniz_oxide" 2667 | version = "0.7.3" 2668 | source = "registry+https://github.com/rust-lang/crates.io-index" 2669 | checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" 2670 | dependencies = [ 2671 | "adler", 2672 | "simd-adler32", 2673 | ] 2674 | 2675 | [[package]] 2676 | name = "naga" 2677 | version = "23.1.0" 2678 | source = "registry+https://github.com/rust-lang/crates.io-index" 2679 | checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" 2680 | dependencies = [ 2681 | "arrayvec", 2682 | "bit-set 0.8.0", 2683 | "bitflags 2.9.0", 2684 | "cfg_aliases 0.1.1", 2685 | "codespan-reporting", 2686 | "hexf-parse", 2687 | "indexmap", 2688 | "log", 2689 | "pp-rs", 2690 | "rustc-hash", 2691 | "spirv", 2692 | "termcolor", 2693 | "thiserror", 2694 | "unicode-xid", 2695 | ] 2696 | 2697 | [[package]] 2698 | name = "naga_oil" 2699 | version = "0.16.0" 2700 | source = "registry+https://github.com/rust-lang/crates.io-index" 2701 | checksum = "31ea1f080bb359927cd5404d0af1e5e6758f4f2d82ecfbebb0a0c434764e40f1" 2702 | dependencies = [ 2703 | "bit-set 0.5.3", 2704 | "codespan-reporting", 2705 | "data-encoding", 2706 | "indexmap", 2707 | "naga", 2708 | "once_cell", 2709 | "regex", 2710 | "regex-syntax 0.8.3", 2711 | "rustc-hash", 2712 | "thiserror", 2713 | "tracing", 2714 | "unicode-ident", 2715 | ] 2716 | 2717 | [[package]] 2718 | name = "ndk" 2719 | version = "0.8.0" 2720 | source = "registry+https://github.com/rust-lang/crates.io-index" 2721 | checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" 2722 | dependencies = [ 2723 | "bitflags 2.9.0", 2724 | "jni-sys", 2725 | "log", 2726 | "ndk-sys 0.5.0+25.2.9519653", 2727 | "num_enum", 2728 | "thiserror", 2729 | ] 2730 | 2731 | [[package]] 2732 | name = "ndk" 2733 | version = "0.9.0" 2734 | source = "registry+https://github.com/rust-lang/crates.io-index" 2735 | checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" 2736 | dependencies = [ 2737 | "bitflags 2.9.0", 2738 | "jni-sys", 2739 | "log", 2740 | "ndk-sys 0.6.0+11769913", 2741 | "num_enum", 2742 | "raw-window-handle", 2743 | "thiserror", 2744 | ] 2745 | 2746 | [[package]] 2747 | name = "ndk-context" 2748 | version = "0.1.1" 2749 | source = "registry+https://github.com/rust-lang/crates.io-index" 2750 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 2751 | 2752 | [[package]] 2753 | name = "ndk-sys" 2754 | version = "0.5.0+25.2.9519653" 2755 | source = "registry+https://github.com/rust-lang/crates.io-index" 2756 | checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" 2757 | dependencies = [ 2758 | "jni-sys", 2759 | ] 2760 | 2761 | [[package]] 2762 | name = "ndk-sys" 2763 | version = "0.6.0+11769913" 2764 | source = "registry+https://github.com/rust-lang/crates.io-index" 2765 | checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" 2766 | dependencies = [ 2767 | "jni-sys", 2768 | ] 2769 | 2770 | [[package]] 2771 | name = "nix" 2772 | version = "0.29.0" 2773 | source = "registry+https://github.com/rust-lang/crates.io-index" 2774 | checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" 2775 | dependencies = [ 2776 | "bitflags 2.9.0", 2777 | "cfg-if", 2778 | "cfg_aliases 0.2.1", 2779 | "libc", 2780 | ] 2781 | 2782 | [[package]] 2783 | name = "nom" 2784 | version = "7.1.3" 2785 | source = "registry+https://github.com/rust-lang/crates.io-index" 2786 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 2787 | dependencies = [ 2788 | "memchr", 2789 | "minimal-lexical", 2790 | ] 2791 | 2792 | [[package]] 2793 | name = "nonmax" 2794 | version = "0.5.5" 2795 | source = "registry+https://github.com/rust-lang/crates.io-index" 2796 | checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" 2797 | 2798 | [[package]] 2799 | name = "ntapi" 2800 | version = "0.4.1" 2801 | source = "registry+https://github.com/rust-lang/crates.io-index" 2802 | checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" 2803 | dependencies = [ 2804 | "winapi", 2805 | ] 2806 | 2807 | [[package]] 2808 | name = "nu-ansi-term" 2809 | version = "0.46.0" 2810 | source = "registry+https://github.com/rust-lang/crates.io-index" 2811 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 2812 | dependencies = [ 2813 | "overload", 2814 | "winapi", 2815 | ] 2816 | 2817 | [[package]] 2818 | name = "num-derive" 2819 | version = "0.4.2" 2820 | source = "registry+https://github.com/rust-lang/crates.io-index" 2821 | checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" 2822 | dependencies = [ 2823 | "proc-macro2", 2824 | "quote", 2825 | "syn", 2826 | ] 2827 | 2828 | [[package]] 2829 | name = "num-traits" 2830 | version = "0.2.19" 2831 | source = "registry+https://github.com/rust-lang/crates.io-index" 2832 | checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 2833 | dependencies = [ 2834 | "autocfg", 2835 | "libm", 2836 | ] 2837 | 2838 | [[package]] 2839 | name = "num_enum" 2840 | version = "0.7.2" 2841 | source = "registry+https://github.com/rust-lang/crates.io-index" 2842 | checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" 2843 | dependencies = [ 2844 | "num_enum_derive", 2845 | ] 2846 | 2847 | [[package]] 2848 | name = "num_enum_derive" 2849 | version = "0.7.2" 2850 | source = "registry+https://github.com/rust-lang/crates.io-index" 2851 | checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" 2852 | dependencies = [ 2853 | "proc-macro-crate", 2854 | "proc-macro2", 2855 | "quote", 2856 | "syn", 2857 | ] 2858 | 2859 | [[package]] 2860 | name = "objc" 2861 | version = "0.2.7" 2862 | source = "registry+https://github.com/rust-lang/crates.io-index" 2863 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 2864 | dependencies = [ 2865 | "malloc_buf", 2866 | ] 2867 | 2868 | [[package]] 2869 | name = "objc-sys" 2870 | version = "0.3.5" 2871 | source = "registry+https://github.com/rust-lang/crates.io-index" 2872 | checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" 2873 | 2874 | [[package]] 2875 | name = "objc2" 2876 | version = "0.5.2" 2877 | source = "registry+https://github.com/rust-lang/crates.io-index" 2878 | checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" 2879 | dependencies = [ 2880 | "objc-sys", 2881 | "objc2-encode", 2882 | ] 2883 | 2884 | [[package]] 2885 | name = "objc2-app-kit" 2886 | version = "0.2.2" 2887 | source = "registry+https://github.com/rust-lang/crates.io-index" 2888 | checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" 2889 | dependencies = [ 2890 | "bitflags 2.9.0", 2891 | "block2", 2892 | "libc", 2893 | "objc2", 2894 | "objc2-core-data", 2895 | "objc2-core-image", 2896 | "objc2-foundation", 2897 | "objc2-quartz-core", 2898 | ] 2899 | 2900 | [[package]] 2901 | name = "objc2-cloud-kit" 2902 | version = "0.2.2" 2903 | source = "registry+https://github.com/rust-lang/crates.io-index" 2904 | checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" 2905 | dependencies = [ 2906 | "bitflags 2.9.0", 2907 | "block2", 2908 | "objc2", 2909 | "objc2-core-location", 2910 | "objc2-foundation", 2911 | ] 2912 | 2913 | [[package]] 2914 | name = "objc2-contacts" 2915 | version = "0.2.2" 2916 | source = "registry+https://github.com/rust-lang/crates.io-index" 2917 | checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" 2918 | dependencies = [ 2919 | "block2", 2920 | "objc2", 2921 | "objc2-foundation", 2922 | ] 2923 | 2924 | [[package]] 2925 | name = "objc2-core-data" 2926 | version = "0.2.2" 2927 | source = "registry+https://github.com/rust-lang/crates.io-index" 2928 | checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" 2929 | dependencies = [ 2930 | "bitflags 2.9.0", 2931 | "block2", 2932 | "objc2", 2933 | "objc2-foundation", 2934 | ] 2935 | 2936 | [[package]] 2937 | name = "objc2-core-image" 2938 | version = "0.2.2" 2939 | source = "registry+https://github.com/rust-lang/crates.io-index" 2940 | checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" 2941 | dependencies = [ 2942 | "block2", 2943 | "objc2", 2944 | "objc2-foundation", 2945 | "objc2-metal", 2946 | ] 2947 | 2948 | [[package]] 2949 | name = "objc2-core-location" 2950 | version = "0.2.2" 2951 | source = "registry+https://github.com/rust-lang/crates.io-index" 2952 | checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" 2953 | dependencies = [ 2954 | "block2", 2955 | "objc2", 2956 | "objc2-contacts", 2957 | "objc2-foundation", 2958 | ] 2959 | 2960 | [[package]] 2961 | name = "objc2-encode" 2962 | version = "4.1.0" 2963 | source = "registry+https://github.com/rust-lang/crates.io-index" 2964 | checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" 2965 | 2966 | [[package]] 2967 | name = "objc2-foundation" 2968 | version = "0.2.2" 2969 | source = "registry+https://github.com/rust-lang/crates.io-index" 2970 | checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" 2971 | dependencies = [ 2972 | "bitflags 2.9.0", 2973 | "block2", 2974 | "dispatch", 2975 | "libc", 2976 | "objc2", 2977 | ] 2978 | 2979 | [[package]] 2980 | name = "objc2-link-presentation" 2981 | version = "0.2.2" 2982 | source = "registry+https://github.com/rust-lang/crates.io-index" 2983 | checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" 2984 | dependencies = [ 2985 | "block2", 2986 | "objc2", 2987 | "objc2-app-kit", 2988 | "objc2-foundation", 2989 | ] 2990 | 2991 | [[package]] 2992 | name = "objc2-metal" 2993 | version = "0.2.2" 2994 | source = "registry+https://github.com/rust-lang/crates.io-index" 2995 | checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" 2996 | dependencies = [ 2997 | "bitflags 2.9.0", 2998 | "block2", 2999 | "objc2", 3000 | "objc2-foundation", 3001 | ] 3002 | 3003 | [[package]] 3004 | name = "objc2-quartz-core" 3005 | version = "0.2.2" 3006 | source = "registry+https://github.com/rust-lang/crates.io-index" 3007 | checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" 3008 | dependencies = [ 3009 | "bitflags 2.9.0", 3010 | "block2", 3011 | "objc2", 3012 | "objc2-foundation", 3013 | "objc2-metal", 3014 | ] 3015 | 3016 | [[package]] 3017 | name = "objc2-symbols" 3018 | version = "0.2.2" 3019 | source = "registry+https://github.com/rust-lang/crates.io-index" 3020 | checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" 3021 | dependencies = [ 3022 | "objc2", 3023 | "objc2-foundation", 3024 | ] 3025 | 3026 | [[package]] 3027 | name = "objc2-ui-kit" 3028 | version = "0.2.2" 3029 | source = "registry+https://github.com/rust-lang/crates.io-index" 3030 | checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" 3031 | dependencies = [ 3032 | "bitflags 2.9.0", 3033 | "block2", 3034 | "objc2", 3035 | "objc2-cloud-kit", 3036 | "objc2-core-data", 3037 | "objc2-core-image", 3038 | "objc2-core-location", 3039 | "objc2-foundation", 3040 | "objc2-link-presentation", 3041 | "objc2-quartz-core", 3042 | "objc2-symbols", 3043 | "objc2-uniform-type-identifiers", 3044 | "objc2-user-notifications", 3045 | ] 3046 | 3047 | [[package]] 3048 | name = "objc2-uniform-type-identifiers" 3049 | version = "0.2.2" 3050 | source = "registry+https://github.com/rust-lang/crates.io-index" 3051 | checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" 3052 | dependencies = [ 3053 | "block2", 3054 | "objc2", 3055 | "objc2-foundation", 3056 | ] 3057 | 3058 | [[package]] 3059 | name = "objc2-user-notifications" 3060 | version = "0.2.2" 3061 | source = "registry+https://github.com/rust-lang/crates.io-index" 3062 | checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" 3063 | dependencies = [ 3064 | "bitflags 2.9.0", 3065 | "block2", 3066 | "objc2", 3067 | "objc2-core-location", 3068 | "objc2-foundation", 3069 | ] 3070 | 3071 | [[package]] 3072 | name = "oboe" 3073 | version = "0.6.1" 3074 | source = "registry+https://github.com/rust-lang/crates.io-index" 3075 | checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" 3076 | dependencies = [ 3077 | "jni", 3078 | "ndk 0.8.0", 3079 | "ndk-context", 3080 | "num-derive", 3081 | "num-traits", 3082 | "oboe-sys", 3083 | ] 3084 | 3085 | [[package]] 3086 | name = "oboe-sys" 3087 | version = "0.6.1" 3088 | source = "registry+https://github.com/rust-lang/crates.io-index" 3089 | checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" 3090 | dependencies = [ 3091 | "cc", 3092 | ] 3093 | 3094 | [[package]] 3095 | name = "offset-allocator" 3096 | version = "0.2.0" 3097 | source = "registry+https://github.com/rust-lang/crates.io-index" 3098 | checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" 3099 | dependencies = [ 3100 | "log", 3101 | "nonmax", 3102 | ] 3103 | 3104 | [[package]] 3105 | name = "ogg" 3106 | version = "0.8.0" 3107 | source = "registry+https://github.com/rust-lang/crates.io-index" 3108 | checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" 3109 | dependencies = [ 3110 | "byteorder", 3111 | ] 3112 | 3113 | [[package]] 3114 | name = "once_cell" 3115 | version = "1.21.3" 3116 | source = "registry+https://github.com/rust-lang/crates.io-index" 3117 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 3118 | 3119 | [[package]] 3120 | name = "orbclient" 3121 | version = "0.3.47" 3122 | source = "registry+https://github.com/rust-lang/crates.io-index" 3123 | checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" 3124 | dependencies = [ 3125 | "libredox", 3126 | ] 3127 | 3128 | [[package]] 3129 | name = "overload" 3130 | version = "0.1.1" 3131 | source = "registry+https://github.com/rust-lang/crates.io-index" 3132 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 3133 | 3134 | [[package]] 3135 | name = "parking" 3136 | version = "2.2.0" 3137 | source = "registry+https://github.com/rust-lang/crates.io-index" 3138 | checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" 3139 | 3140 | [[package]] 3141 | name = "parking_lot" 3142 | version = "0.12.2" 3143 | source = "registry+https://github.com/rust-lang/crates.io-index" 3144 | checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" 3145 | dependencies = [ 3146 | "lock_api", 3147 | "parking_lot_core", 3148 | ] 3149 | 3150 | [[package]] 3151 | name = "parking_lot_core" 3152 | version = "0.9.10" 3153 | source = "registry+https://github.com/rust-lang/crates.io-index" 3154 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 3155 | dependencies = [ 3156 | "cfg-if", 3157 | "libc", 3158 | "redox_syscall 0.5.1", 3159 | "smallvec", 3160 | "windows-targets 0.52.6", 3161 | ] 3162 | 3163 | [[package]] 3164 | name = "paste" 3165 | version = "1.0.15" 3166 | source = "registry+https://github.com/rust-lang/crates.io-index" 3167 | checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" 3168 | 3169 | [[package]] 3170 | name = "percent-encoding" 3171 | version = "2.3.1" 3172 | source = "registry+https://github.com/rust-lang/crates.io-index" 3173 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 3174 | 3175 | [[package]] 3176 | name = "petgraph" 3177 | version = "0.6.5" 3178 | source = "registry+https://github.com/rust-lang/crates.io-index" 3179 | checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" 3180 | dependencies = [ 3181 | "fixedbitset 0.4.2", 3182 | "indexmap", 3183 | "serde", 3184 | "serde_derive", 3185 | ] 3186 | 3187 | [[package]] 3188 | name = "pin-project" 3189 | version = "1.1.10" 3190 | source = "registry+https://github.com/rust-lang/crates.io-index" 3191 | checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" 3192 | dependencies = [ 3193 | "pin-project-internal", 3194 | ] 3195 | 3196 | [[package]] 3197 | name = "pin-project-internal" 3198 | version = "1.1.10" 3199 | source = "registry+https://github.com/rust-lang/crates.io-index" 3200 | checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" 3201 | dependencies = [ 3202 | "proc-macro2", 3203 | "quote", 3204 | "syn", 3205 | ] 3206 | 3207 | [[package]] 3208 | name = "pin-project-lite" 3209 | version = "0.2.14" 3210 | source = "registry+https://github.com/rust-lang/crates.io-index" 3211 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 3212 | 3213 | [[package]] 3214 | name = "piper" 3215 | version = "0.2.2" 3216 | source = "registry+https://github.com/rust-lang/crates.io-index" 3217 | checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" 3218 | dependencies = [ 3219 | "atomic-waker", 3220 | "fastrand", 3221 | "futures-io", 3222 | ] 3223 | 3224 | [[package]] 3225 | name = "pkg-config" 3226 | version = "0.3.30" 3227 | source = "registry+https://github.com/rust-lang/crates.io-index" 3228 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 3229 | 3230 | [[package]] 3231 | name = "png" 3232 | version = "0.17.13" 3233 | source = "registry+https://github.com/rust-lang/crates.io-index" 3234 | checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1" 3235 | dependencies = [ 3236 | "bitflags 1.3.2", 3237 | "crc32fast", 3238 | "fdeflate", 3239 | "flate2", 3240 | "miniz_oxide", 3241 | ] 3242 | 3243 | [[package]] 3244 | name = "polling" 3245 | version = "3.7.0" 3246 | source = "registry+https://github.com/rust-lang/crates.io-index" 3247 | checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" 3248 | dependencies = [ 3249 | "cfg-if", 3250 | "concurrent-queue", 3251 | "hermit-abi", 3252 | "pin-project-lite", 3253 | "rustix", 3254 | "tracing", 3255 | "windows-sys 0.52.0", 3256 | ] 3257 | 3258 | [[package]] 3259 | name = "portable-atomic" 3260 | version = "1.11.0" 3261 | source = "registry+https://github.com/rust-lang/crates.io-index" 3262 | checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" 3263 | 3264 | [[package]] 3265 | name = "portable-atomic-util" 3266 | version = "0.2.4" 3267 | source = "registry+https://github.com/rust-lang/crates.io-index" 3268 | checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" 3269 | dependencies = [ 3270 | "portable-atomic", 3271 | ] 3272 | 3273 | [[package]] 3274 | name = "pp-rs" 3275 | version = "0.2.1" 3276 | source = "registry+https://github.com/rust-lang/crates.io-index" 3277 | checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" 3278 | dependencies = [ 3279 | "unicode-xid", 3280 | ] 3281 | 3282 | [[package]] 3283 | name = "ppv-lite86" 3284 | version = "0.2.21" 3285 | source = "registry+https://github.com/rust-lang/crates.io-index" 3286 | checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 3287 | dependencies = [ 3288 | "zerocopy 0.8.24", 3289 | ] 3290 | 3291 | [[package]] 3292 | name = "presser" 3293 | version = "0.3.1" 3294 | source = "registry+https://github.com/rust-lang/crates.io-index" 3295 | checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" 3296 | 3297 | [[package]] 3298 | name = "prettyplease" 3299 | version = "0.2.31" 3300 | source = "registry+https://github.com/rust-lang/crates.io-index" 3301 | checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" 3302 | dependencies = [ 3303 | "proc-macro2", 3304 | "syn", 3305 | ] 3306 | 3307 | [[package]] 3308 | name = "proc-macro-crate" 3309 | version = "3.1.0" 3310 | source = "registry+https://github.com/rust-lang/crates.io-index" 3311 | checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" 3312 | dependencies = [ 3313 | "toml_edit 0.21.1", 3314 | ] 3315 | 3316 | [[package]] 3317 | name = "proc-macro2" 3318 | version = "1.0.94" 3319 | source = "registry+https://github.com/rust-lang/crates.io-index" 3320 | checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" 3321 | dependencies = [ 3322 | "unicode-ident", 3323 | ] 3324 | 3325 | [[package]] 3326 | name = "profiling" 3327 | version = "1.0.15" 3328 | source = "registry+https://github.com/rust-lang/crates.io-index" 3329 | checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" 3330 | 3331 | [[package]] 3332 | name = "quote" 3333 | version = "1.0.36" 3334 | source = "registry+https://github.com/rust-lang/crates.io-index" 3335 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 3336 | dependencies = [ 3337 | "proc-macro2", 3338 | ] 3339 | 3340 | [[package]] 3341 | name = "radsort" 3342 | version = "0.1.0" 3343 | source = "registry+https://github.com/rust-lang/crates.io-index" 3344 | checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" 3345 | 3346 | [[package]] 3347 | name = "rand" 3348 | version = "0.8.5" 3349 | source = "registry+https://github.com/rust-lang/crates.io-index" 3350 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 3351 | dependencies = [ 3352 | "libc", 3353 | "rand_chacha", 3354 | "rand_core", 3355 | ] 3356 | 3357 | [[package]] 3358 | name = "rand_chacha" 3359 | version = "0.3.1" 3360 | source = "registry+https://github.com/rust-lang/crates.io-index" 3361 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 3362 | dependencies = [ 3363 | "ppv-lite86", 3364 | "rand_core", 3365 | ] 3366 | 3367 | [[package]] 3368 | name = "rand_core" 3369 | version = "0.6.4" 3370 | source = "registry+https://github.com/rust-lang/crates.io-index" 3371 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 3372 | dependencies = [ 3373 | "getrandom", 3374 | ] 3375 | 3376 | [[package]] 3377 | name = "rand_distr" 3378 | version = "0.4.3" 3379 | source = "registry+https://github.com/rust-lang/crates.io-index" 3380 | checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" 3381 | dependencies = [ 3382 | "num-traits", 3383 | "rand", 3384 | ] 3385 | 3386 | [[package]] 3387 | name = "range-alloc" 3388 | version = "0.1.3" 3389 | source = "registry+https://github.com/rust-lang/crates.io-index" 3390 | checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" 3391 | 3392 | [[package]] 3393 | name = "rangemap" 3394 | version = "1.5.1" 3395 | source = "registry+https://github.com/rust-lang/crates.io-index" 3396 | checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" 3397 | 3398 | [[package]] 3399 | name = "raw-window-handle" 3400 | version = "0.6.2" 3401 | source = "registry+https://github.com/rust-lang/crates.io-index" 3402 | checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" 3403 | 3404 | [[package]] 3405 | name = "rayon" 3406 | version = "1.10.0" 3407 | source = "registry+https://github.com/rust-lang/crates.io-index" 3408 | checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" 3409 | dependencies = [ 3410 | "either", 3411 | "rayon-core", 3412 | ] 3413 | 3414 | [[package]] 3415 | name = "rayon-core" 3416 | version = "1.12.1" 3417 | source = "registry+https://github.com/rust-lang/crates.io-index" 3418 | checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" 3419 | dependencies = [ 3420 | "crossbeam-deque", 3421 | "crossbeam-utils", 3422 | ] 3423 | 3424 | [[package]] 3425 | name = "read-fonts" 3426 | version = "0.22.7" 3427 | source = "registry+https://github.com/rust-lang/crates.io-index" 3428 | checksum = "69aacb76b5c29acfb7f90155d39759a29496aebb49395830e928a9703d2eec2f" 3429 | dependencies = [ 3430 | "bytemuck", 3431 | "font-types", 3432 | ] 3433 | 3434 | [[package]] 3435 | name = "rectangle-pack" 3436 | version = "0.4.2" 3437 | source = "registry+https://github.com/rust-lang/crates.io-index" 3438 | checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" 3439 | 3440 | [[package]] 3441 | name = "redox_syscall" 3442 | version = "0.4.1" 3443 | source = "registry+https://github.com/rust-lang/crates.io-index" 3444 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 3445 | dependencies = [ 3446 | "bitflags 1.3.2", 3447 | ] 3448 | 3449 | [[package]] 3450 | name = "redox_syscall" 3451 | version = "0.5.1" 3452 | source = "registry+https://github.com/rust-lang/crates.io-index" 3453 | checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" 3454 | dependencies = [ 3455 | "bitflags 2.9.0", 3456 | ] 3457 | 3458 | [[package]] 3459 | name = "regex" 3460 | version = "1.10.4" 3461 | source = "registry+https://github.com/rust-lang/crates.io-index" 3462 | checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" 3463 | dependencies = [ 3464 | "aho-corasick", 3465 | "memchr", 3466 | "regex-automata 0.4.6", 3467 | "regex-syntax 0.8.3", 3468 | ] 3469 | 3470 | [[package]] 3471 | name = "regex-automata" 3472 | version = "0.1.10" 3473 | source = "registry+https://github.com/rust-lang/crates.io-index" 3474 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 3475 | dependencies = [ 3476 | "regex-syntax 0.6.29", 3477 | ] 3478 | 3479 | [[package]] 3480 | name = "regex-automata" 3481 | version = "0.4.6" 3482 | source = "registry+https://github.com/rust-lang/crates.io-index" 3483 | checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" 3484 | dependencies = [ 3485 | "aho-corasick", 3486 | "memchr", 3487 | "regex-syntax 0.8.3", 3488 | ] 3489 | 3490 | [[package]] 3491 | name = "regex-syntax" 3492 | version = "0.6.29" 3493 | source = "registry+https://github.com/rust-lang/crates.io-index" 3494 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 3495 | 3496 | [[package]] 3497 | name = "regex-syntax" 3498 | version = "0.8.3" 3499 | source = "registry+https://github.com/rust-lang/crates.io-index" 3500 | checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" 3501 | 3502 | [[package]] 3503 | name = "renderdoc-sys" 3504 | version = "1.1.0" 3505 | source = "registry+https://github.com/rust-lang/crates.io-index" 3506 | checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" 3507 | 3508 | [[package]] 3509 | name = "rodio" 3510 | version = "0.19.0" 3511 | source = "registry+https://github.com/rust-lang/crates.io-index" 3512 | checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" 3513 | dependencies = [ 3514 | "cpal", 3515 | "lewton", 3516 | "thiserror", 3517 | ] 3518 | 3519 | [[package]] 3520 | name = "ron" 3521 | version = "0.8.1" 3522 | source = "registry+https://github.com/rust-lang/crates.io-index" 3523 | checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" 3524 | dependencies = [ 3525 | "base64 0.21.7", 3526 | "bitflags 2.9.0", 3527 | "serde", 3528 | "serde_derive", 3529 | ] 3530 | 3531 | [[package]] 3532 | name = "roxmltree" 3533 | version = "0.20.0" 3534 | source = "registry+https://github.com/rust-lang/crates.io-index" 3535 | checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" 3536 | 3537 | [[package]] 3538 | name = "rustc-hash" 3539 | version = "1.1.0" 3540 | source = "registry+https://github.com/rust-lang/crates.io-index" 3541 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 3542 | 3543 | [[package]] 3544 | name = "rustix" 3545 | version = "0.38.34" 3546 | source = "registry+https://github.com/rust-lang/crates.io-index" 3547 | checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" 3548 | dependencies = [ 3549 | "bitflags 2.9.0", 3550 | "errno", 3551 | "libc", 3552 | "linux-raw-sys", 3553 | "windows-sys 0.52.0", 3554 | ] 3555 | 3556 | [[package]] 3557 | name = "rustversion" 3558 | version = "1.0.20" 3559 | source = "registry+https://github.com/rust-lang/crates.io-index" 3560 | checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" 3561 | 3562 | [[package]] 3563 | name = "rustybuzz" 3564 | version = "0.14.1" 3565 | source = "registry+https://github.com/rust-lang/crates.io-index" 3566 | checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" 3567 | dependencies = [ 3568 | "bitflags 2.9.0", 3569 | "bytemuck", 3570 | "libm", 3571 | "smallvec", 3572 | "ttf-parser 0.21.1", 3573 | "unicode-bidi-mirroring", 3574 | "unicode-ccc", 3575 | "unicode-properties", 3576 | "unicode-script", 3577 | ] 3578 | 3579 | [[package]] 3580 | name = "ruzstd" 3581 | version = "0.7.3" 3582 | source = "registry+https://github.com/rust-lang/crates.io-index" 3583 | checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" 3584 | dependencies = [ 3585 | "twox-hash", 3586 | ] 3587 | 3588 | [[package]] 3589 | name = "ryu" 3590 | version = "1.0.18" 3591 | source = "registry+https://github.com/rust-lang/crates.io-index" 3592 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 3593 | 3594 | [[package]] 3595 | name = "same-file" 3596 | version = "1.0.6" 3597 | source = "registry+https://github.com/rust-lang/crates.io-index" 3598 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 3599 | dependencies = [ 3600 | "winapi-util", 3601 | ] 3602 | 3603 | [[package]] 3604 | name = "scopeguard" 3605 | version = "1.2.0" 3606 | source = "registry+https://github.com/rust-lang/crates.io-index" 3607 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 3608 | 3609 | [[package]] 3610 | name = "self_cell" 3611 | version = "1.1.0" 3612 | source = "registry+https://github.com/rust-lang/crates.io-index" 3613 | checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" 3614 | 3615 | [[package]] 3616 | name = "send_wrapper" 3617 | version = "0.6.0" 3618 | source = "registry+https://github.com/rust-lang/crates.io-index" 3619 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 3620 | 3621 | [[package]] 3622 | name = "serde" 3623 | version = "1.0.202" 3624 | source = "registry+https://github.com/rust-lang/crates.io-index" 3625 | checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" 3626 | dependencies = [ 3627 | "serde_derive", 3628 | ] 3629 | 3630 | [[package]] 3631 | name = "serde_derive" 3632 | version = "1.0.202" 3633 | source = "registry+https://github.com/rust-lang/crates.io-index" 3634 | checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" 3635 | dependencies = [ 3636 | "proc-macro2", 3637 | "quote", 3638 | "syn", 3639 | ] 3640 | 3641 | [[package]] 3642 | name = "serde_json" 3643 | version = "1.0.117" 3644 | source = "registry+https://github.com/rust-lang/crates.io-index" 3645 | checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" 3646 | dependencies = [ 3647 | "itoa", 3648 | "ryu", 3649 | "serde", 3650 | ] 3651 | 3652 | [[package]] 3653 | name = "sharded-slab" 3654 | version = "0.1.7" 3655 | source = "registry+https://github.com/rust-lang/crates.io-index" 3656 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 3657 | dependencies = [ 3658 | "lazy_static", 3659 | ] 3660 | 3661 | [[package]] 3662 | name = "shlex" 3663 | version = "1.3.0" 3664 | source = "registry+https://github.com/rust-lang/crates.io-index" 3665 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 3666 | 3667 | [[package]] 3668 | name = "simd-adler32" 3669 | version = "0.3.7" 3670 | source = "registry+https://github.com/rust-lang/crates.io-index" 3671 | checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" 3672 | 3673 | [[package]] 3674 | name = "skrifa" 3675 | version = "0.22.3" 3676 | source = "registry+https://github.com/rust-lang/crates.io-index" 3677 | checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" 3678 | dependencies = [ 3679 | "bytemuck", 3680 | "read-fonts", 3681 | ] 3682 | 3683 | [[package]] 3684 | name = "slab" 3685 | version = "0.4.9" 3686 | source = "registry+https://github.com/rust-lang/crates.io-index" 3687 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 3688 | dependencies = [ 3689 | "autocfg", 3690 | ] 3691 | 3692 | [[package]] 3693 | name = "slotmap" 3694 | version = "1.0.7" 3695 | source = "registry+https://github.com/rust-lang/crates.io-index" 3696 | checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" 3697 | dependencies = [ 3698 | "version_check", 3699 | ] 3700 | 3701 | [[package]] 3702 | name = "smallvec" 3703 | version = "1.13.2" 3704 | source = "registry+https://github.com/rust-lang/crates.io-index" 3705 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 3706 | 3707 | [[package]] 3708 | name = "smol_str" 3709 | version = "0.2.2" 3710 | source = "registry+https://github.com/rust-lang/crates.io-index" 3711 | checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" 3712 | dependencies = [ 3713 | "serde", 3714 | ] 3715 | 3716 | [[package]] 3717 | name = "spirv" 3718 | version = "0.3.0+sdk-1.3.268.0" 3719 | source = "registry+https://github.com/rust-lang/crates.io-index" 3720 | checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" 3721 | dependencies = [ 3722 | "bitflags 2.9.0", 3723 | ] 3724 | 3725 | [[package]] 3726 | name = "stackfuture" 3727 | version = "0.3.0" 3728 | source = "registry+https://github.com/rust-lang/crates.io-index" 3729 | checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2" 3730 | 3731 | [[package]] 3732 | name = "static_assertions" 3733 | version = "1.1.0" 3734 | source = "registry+https://github.com/rust-lang/crates.io-index" 3735 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 3736 | 3737 | [[package]] 3738 | name = "svg_fmt" 3739 | version = "0.4.3" 3740 | source = "registry+https://github.com/rust-lang/crates.io-index" 3741 | checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" 3742 | 3743 | [[package]] 3744 | name = "swash" 3745 | version = "0.1.19" 3746 | source = "registry+https://github.com/rust-lang/crates.io-index" 3747 | checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" 3748 | dependencies = [ 3749 | "skrifa", 3750 | "yazi", 3751 | "zeno", 3752 | ] 3753 | 3754 | [[package]] 3755 | name = "syn" 3756 | version = "2.0.100" 3757 | source = "registry+https://github.com/rust-lang/crates.io-index" 3758 | checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" 3759 | dependencies = [ 3760 | "proc-macro2", 3761 | "quote", 3762 | "unicode-ident", 3763 | ] 3764 | 3765 | [[package]] 3766 | name = "sys-locale" 3767 | version = "0.3.2" 3768 | source = "registry+https://github.com/rust-lang/crates.io-index" 3769 | checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" 3770 | dependencies = [ 3771 | "libc", 3772 | ] 3773 | 3774 | [[package]] 3775 | name = "sysinfo" 3776 | version = "0.32.1" 3777 | source = "registry+https://github.com/rust-lang/crates.io-index" 3778 | checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" 3779 | dependencies = [ 3780 | "core-foundation-sys", 3781 | "libc", 3782 | "memchr", 3783 | "ntapi", 3784 | "windows 0.54.0", 3785 | ] 3786 | 3787 | [[package]] 3788 | name = "taffy" 3789 | version = "0.5.2" 3790 | source = "registry+https://github.com/rust-lang/crates.io-index" 3791 | checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" 3792 | dependencies = [ 3793 | "arrayvec", 3794 | "grid", 3795 | "num-traits", 3796 | "serde", 3797 | "slotmap", 3798 | ] 3799 | 3800 | [[package]] 3801 | name = "termcolor" 3802 | version = "1.4.1" 3803 | source = "registry+https://github.com/rust-lang/crates.io-index" 3804 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3805 | dependencies = [ 3806 | "winapi-util", 3807 | ] 3808 | 3809 | [[package]] 3810 | name = "thiserror" 3811 | version = "1.0.69" 3812 | source = "registry+https://github.com/rust-lang/crates.io-index" 3813 | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" 3814 | dependencies = [ 3815 | "thiserror-impl", 3816 | ] 3817 | 3818 | [[package]] 3819 | name = "thiserror-impl" 3820 | version = "1.0.69" 3821 | source = "registry+https://github.com/rust-lang/crates.io-index" 3822 | checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" 3823 | dependencies = [ 3824 | "proc-macro2", 3825 | "quote", 3826 | "syn", 3827 | ] 3828 | 3829 | [[package]] 3830 | name = "thread_local" 3831 | version = "1.1.8" 3832 | source = "registry+https://github.com/rust-lang/crates.io-index" 3833 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 3834 | dependencies = [ 3835 | "cfg-if", 3836 | "once_cell", 3837 | ] 3838 | 3839 | [[package]] 3840 | name = "tiny-keccak" 3841 | version = "2.0.2" 3842 | source = "registry+https://github.com/rust-lang/crates.io-index" 3843 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 3844 | dependencies = [ 3845 | "crunchy", 3846 | ] 3847 | 3848 | [[package]] 3849 | name = "tinyvec" 3850 | version = "1.9.0" 3851 | source = "registry+https://github.com/rust-lang/crates.io-index" 3852 | checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" 3853 | dependencies = [ 3854 | "tinyvec_macros", 3855 | ] 3856 | 3857 | [[package]] 3858 | name = "tinyvec_macros" 3859 | version = "0.1.1" 3860 | source = "registry+https://github.com/rust-lang/crates.io-index" 3861 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3862 | 3863 | [[package]] 3864 | name = "toml_datetime" 3865 | version = "0.6.6" 3866 | source = "registry+https://github.com/rust-lang/crates.io-index" 3867 | checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" 3868 | 3869 | [[package]] 3870 | name = "toml_edit" 3871 | version = "0.21.1" 3872 | source = "registry+https://github.com/rust-lang/crates.io-index" 3873 | checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" 3874 | dependencies = [ 3875 | "indexmap", 3876 | "toml_datetime", 3877 | "winnow 0.5.40", 3878 | ] 3879 | 3880 | [[package]] 3881 | name = "toml_edit" 3882 | version = "0.22.16" 3883 | source = "registry+https://github.com/rust-lang/crates.io-index" 3884 | checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" 3885 | dependencies = [ 3886 | "indexmap", 3887 | "toml_datetime", 3888 | "winnow 0.6.26", 3889 | ] 3890 | 3891 | [[package]] 3892 | name = "tracing" 3893 | version = "0.1.40" 3894 | source = "registry+https://github.com/rust-lang/crates.io-index" 3895 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3896 | dependencies = [ 3897 | "pin-project-lite", 3898 | "tracing-attributes", 3899 | "tracing-core", 3900 | ] 3901 | 3902 | [[package]] 3903 | name = "tracing-attributes" 3904 | version = "0.1.27" 3905 | source = "registry+https://github.com/rust-lang/crates.io-index" 3906 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3907 | dependencies = [ 3908 | "proc-macro2", 3909 | "quote", 3910 | "syn", 3911 | ] 3912 | 3913 | [[package]] 3914 | name = "tracing-core" 3915 | version = "0.1.32" 3916 | source = "registry+https://github.com/rust-lang/crates.io-index" 3917 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3918 | dependencies = [ 3919 | "once_cell", 3920 | "valuable", 3921 | ] 3922 | 3923 | [[package]] 3924 | name = "tracing-log" 3925 | version = "0.2.0" 3926 | source = "registry+https://github.com/rust-lang/crates.io-index" 3927 | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 3928 | dependencies = [ 3929 | "log", 3930 | "once_cell", 3931 | "tracing-core", 3932 | ] 3933 | 3934 | [[package]] 3935 | name = "tracing-oslog" 3936 | version = "0.2.0" 3937 | source = "registry+https://github.com/rust-lang/crates.io-index" 3938 | checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" 3939 | dependencies = [ 3940 | "bindgen 0.70.1", 3941 | "cc", 3942 | "cfg-if", 3943 | "once_cell", 3944 | "parking_lot", 3945 | "tracing-core", 3946 | "tracing-subscriber", 3947 | ] 3948 | 3949 | [[package]] 3950 | name = "tracing-subscriber" 3951 | version = "0.3.18" 3952 | source = "registry+https://github.com/rust-lang/crates.io-index" 3953 | checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" 3954 | dependencies = [ 3955 | "matchers", 3956 | "nu-ansi-term", 3957 | "once_cell", 3958 | "regex", 3959 | "sharded-slab", 3960 | "smallvec", 3961 | "thread_local", 3962 | "tracing", 3963 | "tracing-core", 3964 | "tracing-log", 3965 | ] 3966 | 3967 | [[package]] 3968 | name = "tracing-wasm" 3969 | version = "0.2.1" 3970 | source = "registry+https://github.com/rust-lang/crates.io-index" 3971 | checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" 3972 | dependencies = [ 3973 | "tracing", 3974 | "tracing-subscriber", 3975 | "wasm-bindgen", 3976 | ] 3977 | 3978 | [[package]] 3979 | name = "ttf-parser" 3980 | version = "0.20.0" 3981 | source = "registry+https://github.com/rust-lang/crates.io-index" 3982 | checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" 3983 | 3984 | [[package]] 3985 | name = "ttf-parser" 3986 | version = "0.21.1" 3987 | source = "registry+https://github.com/rust-lang/crates.io-index" 3988 | checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" 3989 | 3990 | [[package]] 3991 | name = "twox-hash" 3992 | version = "1.6.3" 3993 | source = "registry+https://github.com/rust-lang/crates.io-index" 3994 | checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" 3995 | dependencies = [ 3996 | "cfg-if", 3997 | "static_assertions", 3998 | ] 3999 | 4000 | [[package]] 4001 | name = "typeid" 4002 | version = "1.0.0" 4003 | source = "registry+https://github.com/rust-lang/crates.io-index" 4004 | checksum = "059d83cc991e7a42fc37bd50941885db0888e34209f8cfd9aab07ddec03bc9cf" 4005 | 4006 | [[package]] 4007 | name = "unicode-bidi" 4008 | version = "0.3.18" 4009 | source = "registry+https://github.com/rust-lang/crates.io-index" 4010 | checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" 4011 | 4012 | [[package]] 4013 | name = "unicode-bidi-mirroring" 4014 | version = "0.2.0" 4015 | source = "registry+https://github.com/rust-lang/crates.io-index" 4016 | checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" 4017 | 4018 | [[package]] 4019 | name = "unicode-ccc" 4020 | version = "0.2.0" 4021 | source = "registry+https://github.com/rust-lang/crates.io-index" 4022 | checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" 4023 | 4024 | [[package]] 4025 | name = "unicode-ident" 4026 | version = "1.0.12" 4027 | source = "registry+https://github.com/rust-lang/crates.io-index" 4028 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 4029 | 4030 | [[package]] 4031 | name = "unicode-linebreak" 4032 | version = "0.1.5" 4033 | source = "registry+https://github.com/rust-lang/crates.io-index" 4034 | checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" 4035 | 4036 | [[package]] 4037 | name = "unicode-properties" 4038 | version = "0.1.3" 4039 | source = "registry+https://github.com/rust-lang/crates.io-index" 4040 | checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" 4041 | 4042 | [[package]] 4043 | name = "unicode-script" 4044 | version = "0.5.7" 4045 | source = "registry+https://github.com/rust-lang/crates.io-index" 4046 | checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" 4047 | 4048 | [[package]] 4049 | name = "unicode-segmentation" 4050 | version = "1.11.0" 4051 | source = "registry+https://github.com/rust-lang/crates.io-index" 4052 | checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" 4053 | 4054 | [[package]] 4055 | name = "unicode-width" 4056 | version = "0.1.12" 4057 | source = "registry+https://github.com/rust-lang/crates.io-index" 4058 | checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" 4059 | 4060 | [[package]] 4061 | name = "unicode-xid" 4062 | version = "0.2.6" 4063 | source = "registry+https://github.com/rust-lang/crates.io-index" 4064 | checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" 4065 | 4066 | [[package]] 4067 | name = "uuid" 4068 | version = "1.12.1" 4069 | source = "registry+https://github.com/rust-lang/crates.io-index" 4070 | checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" 4071 | dependencies = [ 4072 | "getrandom", 4073 | "serde", 4074 | ] 4075 | 4076 | [[package]] 4077 | name = "valuable" 4078 | version = "0.1.0" 4079 | source = "registry+https://github.com/rust-lang/crates.io-index" 4080 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 4081 | 4082 | [[package]] 4083 | name = "vec_map" 4084 | version = "0.8.2" 4085 | source = "registry+https://github.com/rust-lang/crates.io-index" 4086 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 4087 | 4088 | [[package]] 4089 | name = "version_check" 4090 | version = "0.9.4" 4091 | source = "registry+https://github.com/rust-lang/crates.io-index" 4092 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 4093 | 4094 | [[package]] 4095 | name = "walkdir" 4096 | version = "2.5.0" 4097 | source = "registry+https://github.com/rust-lang/crates.io-index" 4098 | checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 4099 | dependencies = [ 4100 | "same-file", 4101 | "winapi-util", 4102 | ] 4103 | 4104 | [[package]] 4105 | name = "wasi" 4106 | version = "0.11.0+wasi-snapshot-preview1" 4107 | source = "registry+https://github.com/rust-lang/crates.io-index" 4108 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 4109 | 4110 | [[package]] 4111 | name = "wasm-bindgen" 4112 | version = "0.2.100" 4113 | source = "registry+https://github.com/rust-lang/crates.io-index" 4114 | checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" 4115 | dependencies = [ 4116 | "cfg-if", 4117 | "once_cell", 4118 | "rustversion", 4119 | "wasm-bindgen-macro", 4120 | ] 4121 | 4122 | [[package]] 4123 | name = "wasm-bindgen-backend" 4124 | version = "0.2.100" 4125 | source = "registry+https://github.com/rust-lang/crates.io-index" 4126 | checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" 4127 | dependencies = [ 4128 | "bumpalo", 4129 | "log", 4130 | "proc-macro2", 4131 | "quote", 4132 | "syn", 4133 | "wasm-bindgen-shared", 4134 | ] 4135 | 4136 | [[package]] 4137 | name = "wasm-bindgen-futures" 4138 | version = "0.4.50" 4139 | source = "registry+https://github.com/rust-lang/crates.io-index" 4140 | checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" 4141 | dependencies = [ 4142 | "cfg-if", 4143 | "js-sys", 4144 | "once_cell", 4145 | "wasm-bindgen", 4146 | "web-sys", 4147 | ] 4148 | 4149 | [[package]] 4150 | name = "wasm-bindgen-macro" 4151 | version = "0.2.100" 4152 | source = "registry+https://github.com/rust-lang/crates.io-index" 4153 | checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" 4154 | dependencies = [ 4155 | "quote", 4156 | "wasm-bindgen-macro-support", 4157 | ] 4158 | 4159 | [[package]] 4160 | name = "wasm-bindgen-macro-support" 4161 | version = "0.2.100" 4162 | source = "registry+https://github.com/rust-lang/crates.io-index" 4163 | checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" 4164 | dependencies = [ 4165 | "proc-macro2", 4166 | "quote", 4167 | "syn", 4168 | "wasm-bindgen-backend", 4169 | "wasm-bindgen-shared", 4170 | ] 4171 | 4172 | [[package]] 4173 | name = "wasm-bindgen-shared" 4174 | version = "0.2.100" 4175 | source = "registry+https://github.com/rust-lang/crates.io-index" 4176 | checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" 4177 | dependencies = [ 4178 | "unicode-ident", 4179 | ] 4180 | 4181 | [[package]] 4182 | name = "web-sys" 4183 | version = "0.3.77" 4184 | source = "registry+https://github.com/rust-lang/crates.io-index" 4185 | checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" 4186 | dependencies = [ 4187 | "js-sys", 4188 | "wasm-bindgen", 4189 | ] 4190 | 4191 | [[package]] 4192 | name = "web-time" 4193 | version = "1.1.0" 4194 | source = "registry+https://github.com/rust-lang/crates.io-index" 4195 | checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" 4196 | dependencies = [ 4197 | "js-sys", 4198 | "wasm-bindgen", 4199 | ] 4200 | 4201 | [[package]] 4202 | name = "wgpu" 4203 | version = "23.0.1" 4204 | source = "registry+https://github.com/rust-lang/crates.io-index" 4205 | checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" 4206 | dependencies = [ 4207 | "arrayvec", 4208 | "cfg_aliases 0.1.1", 4209 | "document-features", 4210 | "js-sys", 4211 | "log", 4212 | "naga", 4213 | "parking_lot", 4214 | "profiling", 4215 | "raw-window-handle", 4216 | "smallvec", 4217 | "static_assertions", 4218 | "wasm-bindgen", 4219 | "wasm-bindgen-futures", 4220 | "web-sys", 4221 | "wgpu-core", 4222 | "wgpu-hal", 4223 | "wgpu-types", 4224 | ] 4225 | 4226 | [[package]] 4227 | name = "wgpu-core" 4228 | version = "23.0.1" 4229 | source = "registry+https://github.com/rust-lang/crates.io-index" 4230 | checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" 4231 | dependencies = [ 4232 | "arrayvec", 4233 | "bit-vec 0.8.0", 4234 | "bitflags 2.9.0", 4235 | "cfg_aliases 0.1.1", 4236 | "document-features", 4237 | "indexmap", 4238 | "log", 4239 | "naga", 4240 | "once_cell", 4241 | "parking_lot", 4242 | "profiling", 4243 | "raw-window-handle", 4244 | "rustc-hash", 4245 | "smallvec", 4246 | "thiserror", 4247 | "wgpu-hal", 4248 | "wgpu-types", 4249 | ] 4250 | 4251 | [[package]] 4252 | name = "wgpu-hal" 4253 | version = "23.0.1" 4254 | source = "registry+https://github.com/rust-lang/crates.io-index" 4255 | checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" 4256 | dependencies = [ 4257 | "android_system_properties", 4258 | "arrayvec", 4259 | "ash", 4260 | "bit-set 0.8.0", 4261 | "bitflags 2.9.0", 4262 | "block", 4263 | "bytemuck", 4264 | "cfg_aliases 0.1.1", 4265 | "core-graphics-types", 4266 | "glow", 4267 | "glutin_wgl_sys", 4268 | "gpu-alloc", 4269 | "gpu-allocator", 4270 | "gpu-descriptor", 4271 | "js-sys", 4272 | "khronos-egl", 4273 | "libc", 4274 | "libloading", 4275 | "log", 4276 | "metal", 4277 | "naga", 4278 | "ndk-sys 0.5.0+25.2.9519653", 4279 | "objc", 4280 | "once_cell", 4281 | "parking_lot", 4282 | "profiling", 4283 | "range-alloc", 4284 | "raw-window-handle", 4285 | "renderdoc-sys", 4286 | "rustc-hash", 4287 | "smallvec", 4288 | "thiserror", 4289 | "wasm-bindgen", 4290 | "web-sys", 4291 | "wgpu-types", 4292 | "windows 0.58.0", 4293 | "windows-core 0.58.0", 4294 | ] 4295 | 4296 | [[package]] 4297 | name = "wgpu-types" 4298 | version = "23.0.0" 4299 | source = "registry+https://github.com/rust-lang/crates.io-index" 4300 | checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" 4301 | dependencies = [ 4302 | "bitflags 2.9.0", 4303 | "js-sys", 4304 | "web-sys", 4305 | ] 4306 | 4307 | [[package]] 4308 | name = "winapi" 4309 | version = "0.3.9" 4310 | source = "registry+https://github.com/rust-lang/crates.io-index" 4311 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 4312 | dependencies = [ 4313 | "winapi-i686-pc-windows-gnu", 4314 | "winapi-x86_64-pc-windows-gnu", 4315 | ] 4316 | 4317 | [[package]] 4318 | name = "winapi-i686-pc-windows-gnu" 4319 | version = "0.4.0" 4320 | source = "registry+https://github.com/rust-lang/crates.io-index" 4321 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 4322 | 4323 | [[package]] 4324 | name = "winapi-util" 4325 | version = "0.1.8" 4326 | source = "registry+https://github.com/rust-lang/crates.io-index" 4327 | checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" 4328 | dependencies = [ 4329 | "windows-sys 0.52.0", 4330 | ] 4331 | 4332 | [[package]] 4333 | name = "winapi-x86_64-pc-windows-gnu" 4334 | version = "0.4.0" 4335 | source = "registry+https://github.com/rust-lang/crates.io-index" 4336 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 4337 | 4338 | [[package]] 4339 | name = "windows" 4340 | version = "0.54.0" 4341 | source = "registry+https://github.com/rust-lang/crates.io-index" 4342 | checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" 4343 | dependencies = [ 4344 | "windows-core 0.54.0", 4345 | "windows-targets 0.52.6", 4346 | ] 4347 | 4348 | [[package]] 4349 | name = "windows" 4350 | version = "0.58.0" 4351 | source = "registry+https://github.com/rust-lang/crates.io-index" 4352 | checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" 4353 | dependencies = [ 4354 | "windows-core 0.58.0", 4355 | "windows-targets 0.52.6", 4356 | ] 4357 | 4358 | [[package]] 4359 | name = "windows-core" 4360 | version = "0.54.0" 4361 | source = "registry+https://github.com/rust-lang/crates.io-index" 4362 | checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" 4363 | dependencies = [ 4364 | "windows-result 0.1.1", 4365 | "windows-targets 0.52.6", 4366 | ] 4367 | 4368 | [[package]] 4369 | name = "windows-core" 4370 | version = "0.58.0" 4371 | source = "registry+https://github.com/rust-lang/crates.io-index" 4372 | checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" 4373 | dependencies = [ 4374 | "windows-implement", 4375 | "windows-interface", 4376 | "windows-result 0.2.0", 4377 | "windows-strings", 4378 | "windows-targets 0.52.6", 4379 | ] 4380 | 4381 | [[package]] 4382 | name = "windows-implement" 4383 | version = "0.58.0" 4384 | source = "registry+https://github.com/rust-lang/crates.io-index" 4385 | checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" 4386 | dependencies = [ 4387 | "proc-macro2", 4388 | "quote", 4389 | "syn", 4390 | ] 4391 | 4392 | [[package]] 4393 | name = "windows-interface" 4394 | version = "0.58.0" 4395 | source = "registry+https://github.com/rust-lang/crates.io-index" 4396 | checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" 4397 | dependencies = [ 4398 | "proc-macro2", 4399 | "quote", 4400 | "syn", 4401 | ] 4402 | 4403 | [[package]] 4404 | name = "windows-result" 4405 | version = "0.1.1" 4406 | source = "registry+https://github.com/rust-lang/crates.io-index" 4407 | checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b" 4408 | dependencies = [ 4409 | "windows-targets 0.52.6", 4410 | ] 4411 | 4412 | [[package]] 4413 | name = "windows-result" 4414 | version = "0.2.0" 4415 | source = "registry+https://github.com/rust-lang/crates.io-index" 4416 | checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" 4417 | dependencies = [ 4418 | "windows-targets 0.52.6", 4419 | ] 4420 | 4421 | [[package]] 4422 | name = "windows-strings" 4423 | version = "0.1.0" 4424 | source = "registry+https://github.com/rust-lang/crates.io-index" 4425 | checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" 4426 | dependencies = [ 4427 | "windows-result 0.2.0", 4428 | "windows-targets 0.52.6", 4429 | ] 4430 | 4431 | [[package]] 4432 | name = "windows-sys" 4433 | version = "0.45.0" 4434 | source = "registry+https://github.com/rust-lang/crates.io-index" 4435 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 4436 | dependencies = [ 4437 | "windows-targets 0.42.2", 4438 | ] 4439 | 4440 | [[package]] 4441 | name = "windows-sys" 4442 | version = "0.52.0" 4443 | source = "registry+https://github.com/rust-lang/crates.io-index" 4444 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 4445 | dependencies = [ 4446 | "windows-targets 0.52.6", 4447 | ] 4448 | 4449 | [[package]] 4450 | name = "windows-sys" 4451 | version = "0.59.0" 4452 | source = "registry+https://github.com/rust-lang/crates.io-index" 4453 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 4454 | dependencies = [ 4455 | "windows-targets 0.52.6", 4456 | ] 4457 | 4458 | [[package]] 4459 | name = "windows-targets" 4460 | version = "0.42.2" 4461 | source = "registry+https://github.com/rust-lang/crates.io-index" 4462 | checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" 4463 | dependencies = [ 4464 | "windows_aarch64_gnullvm 0.42.2", 4465 | "windows_aarch64_msvc 0.42.2", 4466 | "windows_i686_gnu 0.42.2", 4467 | "windows_i686_msvc 0.42.2", 4468 | "windows_x86_64_gnu 0.42.2", 4469 | "windows_x86_64_gnullvm 0.42.2", 4470 | "windows_x86_64_msvc 0.42.2", 4471 | ] 4472 | 4473 | [[package]] 4474 | name = "windows-targets" 4475 | version = "0.48.5" 4476 | source = "registry+https://github.com/rust-lang/crates.io-index" 4477 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 4478 | dependencies = [ 4479 | "windows_aarch64_gnullvm 0.48.5", 4480 | "windows_aarch64_msvc 0.48.5", 4481 | "windows_i686_gnu 0.48.5", 4482 | "windows_i686_msvc 0.48.5", 4483 | "windows_x86_64_gnu 0.48.5", 4484 | "windows_x86_64_gnullvm 0.48.5", 4485 | "windows_x86_64_msvc 0.48.5", 4486 | ] 4487 | 4488 | [[package]] 4489 | name = "windows-targets" 4490 | version = "0.52.6" 4491 | source = "registry+https://github.com/rust-lang/crates.io-index" 4492 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 4493 | dependencies = [ 4494 | "windows_aarch64_gnullvm 0.52.6", 4495 | "windows_aarch64_msvc 0.52.6", 4496 | "windows_i686_gnu 0.52.6", 4497 | "windows_i686_gnullvm", 4498 | "windows_i686_msvc 0.52.6", 4499 | "windows_x86_64_gnu 0.52.6", 4500 | "windows_x86_64_gnullvm 0.52.6", 4501 | "windows_x86_64_msvc 0.52.6", 4502 | ] 4503 | 4504 | [[package]] 4505 | name = "windows_aarch64_gnullvm" 4506 | version = "0.42.2" 4507 | source = "registry+https://github.com/rust-lang/crates.io-index" 4508 | checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" 4509 | 4510 | [[package]] 4511 | name = "windows_aarch64_gnullvm" 4512 | version = "0.48.5" 4513 | source = "registry+https://github.com/rust-lang/crates.io-index" 4514 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 4515 | 4516 | [[package]] 4517 | name = "windows_aarch64_gnullvm" 4518 | version = "0.52.6" 4519 | source = "registry+https://github.com/rust-lang/crates.io-index" 4520 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 4521 | 4522 | [[package]] 4523 | name = "windows_aarch64_msvc" 4524 | version = "0.42.2" 4525 | source = "registry+https://github.com/rust-lang/crates.io-index" 4526 | checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" 4527 | 4528 | [[package]] 4529 | name = "windows_aarch64_msvc" 4530 | version = "0.48.5" 4531 | source = "registry+https://github.com/rust-lang/crates.io-index" 4532 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 4533 | 4534 | [[package]] 4535 | name = "windows_aarch64_msvc" 4536 | version = "0.52.6" 4537 | source = "registry+https://github.com/rust-lang/crates.io-index" 4538 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 4539 | 4540 | [[package]] 4541 | name = "windows_i686_gnu" 4542 | version = "0.42.2" 4543 | source = "registry+https://github.com/rust-lang/crates.io-index" 4544 | checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" 4545 | 4546 | [[package]] 4547 | name = "windows_i686_gnu" 4548 | version = "0.48.5" 4549 | source = "registry+https://github.com/rust-lang/crates.io-index" 4550 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 4551 | 4552 | [[package]] 4553 | name = "windows_i686_gnu" 4554 | version = "0.52.6" 4555 | source = "registry+https://github.com/rust-lang/crates.io-index" 4556 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 4557 | 4558 | [[package]] 4559 | name = "windows_i686_gnullvm" 4560 | version = "0.52.6" 4561 | source = "registry+https://github.com/rust-lang/crates.io-index" 4562 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 4563 | 4564 | [[package]] 4565 | name = "windows_i686_msvc" 4566 | version = "0.42.2" 4567 | source = "registry+https://github.com/rust-lang/crates.io-index" 4568 | checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" 4569 | 4570 | [[package]] 4571 | name = "windows_i686_msvc" 4572 | version = "0.48.5" 4573 | source = "registry+https://github.com/rust-lang/crates.io-index" 4574 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 4575 | 4576 | [[package]] 4577 | name = "windows_i686_msvc" 4578 | version = "0.52.6" 4579 | source = "registry+https://github.com/rust-lang/crates.io-index" 4580 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 4581 | 4582 | [[package]] 4583 | name = "windows_x86_64_gnu" 4584 | version = "0.42.2" 4585 | source = "registry+https://github.com/rust-lang/crates.io-index" 4586 | checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" 4587 | 4588 | [[package]] 4589 | name = "windows_x86_64_gnu" 4590 | version = "0.48.5" 4591 | source = "registry+https://github.com/rust-lang/crates.io-index" 4592 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 4593 | 4594 | [[package]] 4595 | name = "windows_x86_64_gnu" 4596 | version = "0.52.6" 4597 | source = "registry+https://github.com/rust-lang/crates.io-index" 4598 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 4599 | 4600 | [[package]] 4601 | name = "windows_x86_64_gnullvm" 4602 | version = "0.42.2" 4603 | source = "registry+https://github.com/rust-lang/crates.io-index" 4604 | checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" 4605 | 4606 | [[package]] 4607 | name = "windows_x86_64_gnullvm" 4608 | version = "0.48.5" 4609 | source = "registry+https://github.com/rust-lang/crates.io-index" 4610 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 4611 | 4612 | [[package]] 4613 | name = "windows_x86_64_gnullvm" 4614 | version = "0.52.6" 4615 | source = "registry+https://github.com/rust-lang/crates.io-index" 4616 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 4617 | 4618 | [[package]] 4619 | name = "windows_x86_64_msvc" 4620 | version = "0.42.2" 4621 | source = "registry+https://github.com/rust-lang/crates.io-index" 4622 | checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" 4623 | 4624 | [[package]] 4625 | name = "windows_x86_64_msvc" 4626 | version = "0.48.5" 4627 | source = "registry+https://github.com/rust-lang/crates.io-index" 4628 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 4629 | 4630 | [[package]] 4631 | name = "windows_x86_64_msvc" 4632 | version = "0.52.6" 4633 | source = "registry+https://github.com/rust-lang/crates.io-index" 4634 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 4635 | 4636 | [[package]] 4637 | name = "winit" 4638 | version = "0.30.5" 4639 | source = "registry+https://github.com/rust-lang/crates.io-index" 4640 | checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" 4641 | dependencies = [ 4642 | "android-activity", 4643 | "atomic-waker", 4644 | "bitflags 2.9.0", 4645 | "block2", 4646 | "bytemuck", 4647 | "calloop", 4648 | "cfg_aliases 0.2.1", 4649 | "concurrent-queue", 4650 | "core-foundation 0.9.4", 4651 | "core-graphics", 4652 | "cursor-icon", 4653 | "dpi", 4654 | "js-sys", 4655 | "libc", 4656 | "ndk 0.9.0", 4657 | "objc2", 4658 | "objc2-app-kit", 4659 | "objc2-foundation", 4660 | "objc2-ui-kit", 4661 | "orbclient", 4662 | "percent-encoding", 4663 | "pin-project", 4664 | "raw-window-handle", 4665 | "redox_syscall 0.4.1", 4666 | "rustix", 4667 | "smol_str", 4668 | "tracing", 4669 | "unicode-segmentation", 4670 | "wasm-bindgen", 4671 | "wasm-bindgen-futures", 4672 | "web-sys", 4673 | "web-time", 4674 | "windows-sys 0.52.0", 4675 | "x11-dl", 4676 | "x11rb", 4677 | "xkbcommon-dl", 4678 | ] 4679 | 4680 | [[package]] 4681 | name = "winnow" 4682 | version = "0.5.40" 4683 | source = "registry+https://github.com/rust-lang/crates.io-index" 4684 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 4685 | dependencies = [ 4686 | "memchr", 4687 | ] 4688 | 4689 | [[package]] 4690 | name = "winnow" 4691 | version = "0.6.26" 4692 | source = "registry+https://github.com/rust-lang/crates.io-index" 4693 | checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" 4694 | dependencies = [ 4695 | "memchr", 4696 | ] 4697 | 4698 | [[package]] 4699 | name = "x11-dl" 4700 | version = "2.21.0" 4701 | source = "registry+https://github.com/rust-lang/crates.io-index" 4702 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 4703 | dependencies = [ 4704 | "libc", 4705 | "once_cell", 4706 | "pkg-config", 4707 | ] 4708 | 4709 | [[package]] 4710 | name = "x11rb" 4711 | version = "0.13.1" 4712 | source = "registry+https://github.com/rust-lang/crates.io-index" 4713 | checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" 4714 | dependencies = [ 4715 | "as-raw-xcb-connection", 4716 | "gethostname", 4717 | "libc", 4718 | "libloading", 4719 | "once_cell", 4720 | "rustix", 4721 | "x11rb-protocol", 4722 | ] 4723 | 4724 | [[package]] 4725 | name = "x11rb-protocol" 4726 | version = "0.13.1" 4727 | source = "registry+https://github.com/rust-lang/crates.io-index" 4728 | checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" 4729 | 4730 | [[package]] 4731 | name = "xkbcommon-dl" 4732 | version = "0.4.2" 4733 | source = "registry+https://github.com/rust-lang/crates.io-index" 4734 | checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" 4735 | dependencies = [ 4736 | "bitflags 2.9.0", 4737 | "dlib", 4738 | "log", 4739 | "once_cell", 4740 | "xkeysym", 4741 | ] 4742 | 4743 | [[package]] 4744 | name = "xkeysym" 4745 | version = "0.2.0" 4746 | source = "registry+https://github.com/rust-lang/crates.io-index" 4747 | checksum = "054a8e68b76250b253f671d1268cb7f1ae089ec35e195b2efb2a4e9a836d0621" 4748 | 4749 | [[package]] 4750 | name = "xml-rs" 4751 | version = "0.8.20" 4752 | source = "registry+https://github.com/rust-lang/crates.io-index" 4753 | checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193" 4754 | 4755 | [[package]] 4756 | name = "yazi" 4757 | version = "0.1.6" 4758 | source = "registry+https://github.com/rust-lang/crates.io-index" 4759 | checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" 4760 | 4761 | [[package]] 4762 | name = "zeno" 4763 | version = "0.2.3" 4764 | source = "registry+https://github.com/rust-lang/crates.io-index" 4765 | checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" 4766 | 4767 | [[package]] 4768 | name = "zerocopy" 4769 | version = "0.7.34" 4770 | source = "registry+https://github.com/rust-lang/crates.io-index" 4771 | checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" 4772 | dependencies = [ 4773 | "zerocopy-derive 0.7.34", 4774 | ] 4775 | 4776 | [[package]] 4777 | name = "zerocopy" 4778 | version = "0.8.24" 4779 | source = "registry+https://github.com/rust-lang/crates.io-index" 4780 | checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" 4781 | dependencies = [ 4782 | "zerocopy-derive 0.8.24", 4783 | ] 4784 | 4785 | [[package]] 4786 | name = "zerocopy-derive" 4787 | version = "0.7.34" 4788 | source = "registry+https://github.com/rust-lang/crates.io-index" 4789 | checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" 4790 | dependencies = [ 4791 | "proc-macro2", 4792 | "quote", 4793 | "syn", 4794 | ] 4795 | 4796 | [[package]] 4797 | name = "zerocopy-derive" 4798 | version = "0.8.24" 4799 | source = "registry+https://github.com/rust-lang/crates.io-index" 4800 | checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" 4801 | dependencies = [ 4802 | "proc-macro2", 4803 | "quote", 4804 | "syn", 4805 | ] 4806 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bevy_render_example" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [dependencies] 7 | bevy = "0.15" 8 | bytemuck = "1.7" 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bevy Custom Render Pipeline Example 2 | 3 | Example for my talk 'Hooking into the Bevy Rendering Pipeline' 4 | 5 | @ [Bevy Meetup](https://www.meetup.com/bevy-game-development) 6 | 7 | Output: 2D Mesh with a a texture and a vertex animation 8 | 9 | ![gif](docs/example.gif) 10 | 11 | The slides are on [github pages](https://lommix.github.io/bevy_pipeline_talk_slides) 12 | -------------------------------------------------------------------------------- /assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lommix/bevy_pipeline_example/cfd33354c54cfb9494d9e497f1e3cd798d1d1d6d/assets/icon.png -------------------------------------------------------------------------------- /assets/shader.wgsl: -------------------------------------------------------------------------------- 1 | #import bevy_render::{ maths::affine3_to_square, view::View, globals::Globals } 2 | 3 | @group(0) @binding(0) var view: View; 4 | @group(0) @binding(1) var globals: Globals; 5 | 6 | @group(1) @binding(0) var texture: texture_2d; 7 | @group(1) @binding(1) var texture_sampler: sampler; 8 | 9 | struct VertexInput{ 10 | @builtin(vertex_index) index: u32, 11 | 12 | // vertex buffer 13 | @location(0) position : vec3, 14 | 15 | // instance buffer 16 | @location(1) i_translation: vec4, 17 | @location(2) i_rotation: vec4, 18 | @location(3) i_scale: vec4, 19 | } 20 | 21 | 22 | struct VertexOutput { 23 | @builtin(position) clip_position: vec4, 24 | @location(1) uv : vec2, 25 | }; 26 | 27 | 28 | @vertex 29 | fn vertex(in: VertexInput) -> VertexOutput{ 30 | var out : VertexOutput; 31 | 32 | // vertices 33 | // 0,1 1,1 34 | // X-----X 35 | // | /| 36 | // | / | 37 | // | / | 38 | // | / | 39 | // |/ | 40 | // X-----X 41 | // 0,0 1,0 42 | 43 | // compute the instance matrix 44 | let instance_transform = affine3_to_square(mat3x4( 45 | in.i_translation, 46 | in.i_rotation, 47 | in.i_scale, 48 | )); 49 | 50 | // read the texture size 51 | let size = vec2(textureDimensions(texture)); 52 | 53 | // some simple vertex animation 54 | let animation_scale = vec2(1., max(abs(sin(globals.time)), 0.2)); 55 | 56 | // offset the vertex, so our quad center matches the transform 57 | let offset_position = in.position - vec3(0.5, 0.5, 0.); 58 | 59 | // multiple the vertex by the projection matrix and the instance transform 60 | out.clip_position = 61 | view.clip_from_world 62 | * instance_transform 63 | * vec4(offset_position * vec3(size * animation_scale,1.), 1.0); 64 | 65 | // inverse y axis for uv map 66 | out.uv = vec2(in.position.x, 1. - in.position.y); 67 | 68 | return out; 69 | } 70 | 71 | 72 | @fragment 73 | fn fragment(in : VertexOutput) -> @location(0) vec4 { 74 | return textureSample(texture, texture_sampler, in.uv); 75 | } 76 | -------------------------------------------------------------------------------- /docs/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lommix/bevy_pipeline_example/cfd33354c54cfb9494d9e497f1e3cd798d1d1d6d/docs/example.gif -------------------------------------------------------------------------------- /docs/example.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lommix/bevy_pipeline_example/cfd33354c54cfb9494d9e497f1e3cd798d1d1d6d/docs/example.mp4 -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use bevy::{ 2 | prelude::*, 3 | render::view::{check_visibility, VisibilitySystems}, 4 | }; 5 | use render::CustomSprite; 6 | 7 | mod render; 8 | 9 | fn main() -> AppExit { 10 | App::new() 11 | .add_plugins(DefaultPlugins) 12 | .add_plugins(render::MyRenderPlugin) 13 | .add_systems(Startup, setup) 14 | .add_systems( 15 | PostUpdate, 16 | check_visibility::>.in_set(VisibilitySystems::CheckVisibility), 17 | ) 18 | .run() 19 | } 20 | 21 | fn setup(mut cmd: Commands, server: Res) { 22 | cmd.spawn(Camera2d); 23 | 24 | let position = Vec3::new(0., 0., 0.); 25 | 26 | cmd.spawn(( 27 | Transform::from_translation(position), 28 | Visibility::default(), 29 | render::CustomSprite { 30 | texture: server.load("icon.png"), 31 | }, 32 | )); 33 | } 34 | -------------------------------------------------------------------------------- /src/render.rs: -------------------------------------------------------------------------------- 1 | use bevy::{ 2 | core_pipeline::core_2d::{Transparent2d, CORE_2D_DEPTH_FORMAT}, 3 | ecs::{ 4 | query::ROQueryItem, 5 | system::{ 6 | lifetimeless::{Read, SRes}, 7 | SystemParamItem, 8 | }, 9 | }, 10 | math::FloatOrd, 11 | prelude::*, 12 | render::{ 13 | mesh::PrimitiveTopology, 14 | render_asset::RenderAssets, 15 | render_phase::{ 16 | AddRenderCommand, DrawFunctions, PhaseItem, PhaseItemExtraIndex, RenderCommand, 17 | RenderCommandResult, SetItemPipeline, TrackedRenderPass, ViewSortedRenderPhases, 18 | }, 19 | render_resource::{ 20 | AsBindGroup, BindGroup, BindGroupLayout, BlendState, Buffer, BufferInitDescriptor, 21 | BufferUsages, ColorTargetState, ColorWrites, CompareFunction, DepthBiasState, 22 | DepthStencilState, FragmentState, FrontFace, IndexFormat, MultisampleState, 23 | PipelineCache, PolygonMode, PrimitiveState, RawBufferVec, RenderPipelineDescriptor, 24 | SpecializedRenderPipeline, SpecializedRenderPipelines, StencilFaceState, StencilState, 25 | TextureFormat, VertexAttribute, VertexBufferLayout, VertexFormat, VertexState, 26 | VertexStepMode, 27 | }, 28 | renderer::{RenderDevice, RenderQueue}, 29 | storage::GpuShaderStorageBuffer, 30 | sync_world::{MainEntity, RenderEntity, SyncToRenderWorld}, 31 | texture::{FallbackImage, GpuImage}, 32 | view::RenderVisibleEntities, 33 | Extract, Render, RenderApp, RenderSet, 34 | }, 35 | sprite::{Mesh2dPipeline, SetMesh2dViewBindGroup}, 36 | }; 37 | 38 | use bytemuck::{Pod, Zeroable}; 39 | 40 | pub struct MyRenderPlugin; 41 | impl Plugin for MyRenderPlugin { 42 | fn build(&self, app: &mut App) { 43 | let Some(render_app) = app.get_sub_app_mut(RenderApp) else { 44 | return; 45 | }; 46 | 47 | render_app 48 | .add_render_command::() 49 | .init_resource::>() 50 | .add_systems(ExtractSchedule, extract) 51 | .add_systems( 52 | Render, 53 | ( 54 | queue.in_set(RenderSet::Queue), 55 | prepare.in_set(RenderSet::PrepareBindGroups), 56 | ), 57 | ); 58 | } 59 | fn finish(&self, app: &mut App) { 60 | let Some(render_app) = app.get_sub_app_mut(RenderApp) else { 61 | return; 62 | }; 63 | 64 | render_app.init_resource::(); 65 | render_app.init_resource::(); 66 | } 67 | } 68 | 69 | // ------------------- 70 | // My Data 71 | #[derive(AsBindGroup, Component, Clone)] 72 | #[require(SyncToRenderWorld)] 73 | pub struct CustomSprite { 74 | #[texture(0)] 75 | #[sampler(1)] 76 | pub texture: Handle, 77 | } 78 | 79 | #[derive(Component)] 80 | struct ExtractedSpriteInstance { 81 | instance_data: SpriteTransformMatrix, 82 | z_order: f32, 83 | } 84 | 85 | #[derive(Resource)] 86 | pub struct FixedQuadMesh { 87 | vertex_buffer: RawBufferVec, 88 | index_buffer: RawBufferVec, 89 | } 90 | 91 | impl FromWorld for FixedQuadMesh { 92 | fn from_world(world: &mut World) -> Self { 93 | let render_device = world.resource::(); 94 | let render_queue = world.resource::(); 95 | 96 | let mut vertex_buffer = RawBufferVec::::new(BufferUsages::VERTEX); 97 | let mut index_buffer = RawBufferVec::::new(BufferUsages::INDEX); 98 | 99 | vertex_buffer.extend([ 100 | Vec3::new(0., 0., 0.), 101 | Vec3::new(1., 0., 0.), 102 | Vec3::new(1., 1., 0.), 103 | Vec3::new(0., 1., 0.), 104 | ]); 105 | vertex_buffer.write_buffer(render_device, render_queue); 106 | 107 | index_buffer.extend([ 108 | 0, 1, 2, // first triangle 109 | 0, 2, 3, // second triangle 110 | ]); 111 | 112 | index_buffer.write_buffer(render_device, render_queue); 113 | 114 | Self { 115 | vertex_buffer, 116 | index_buffer, 117 | } 118 | } 119 | } 120 | 121 | // ------------------- 122 | // extract 123 | #[derive(Clone, Copy, Pod, Zeroable)] 124 | #[repr(C)] 125 | pub struct SpriteTransformMatrix([Vec4; 3]); 126 | 127 | impl From<&GlobalTransform> for SpriteTransformMatrix { 128 | fn from(value: &GlobalTransform) -> Self { 129 | let transposed_transform_3x3 = value 130 | .compute_transform() 131 | .compute_affine() 132 | .matrix3 133 | .transpose(); 134 | 135 | Self([ 136 | transposed_transform_3x3 137 | .x_axis 138 | .extend(value.translation().x), 139 | transposed_transform_3x3 140 | .y_axis 141 | .extend(value.translation().y), 142 | transposed_transform_3x3 143 | .z_axis 144 | .extend(value.translation().z), 145 | ]) 146 | } 147 | } 148 | 149 | /// copy data from the game world into the render world 150 | fn extract( 151 | mut commands: Commands, 152 | sprites: Extract< 153 | Query<( 154 | RenderEntity, 155 | &GlobalTransform, 156 | &ViewVisibility, 157 | &CustomSprite, 158 | )>, 159 | >, 160 | ) { 161 | for (render_entity, transform, visibilty, sprite) in sprites.iter() { 162 | if !visibilty.get() { 163 | continue; 164 | } 165 | 166 | commands.entity(render_entity).insert(( 167 | ExtractedSpriteInstance { 168 | instance_data: SpriteTransformMatrix::from(transform), 169 | z_order: transform.translation().z, 170 | }, 171 | sprite.clone(), 172 | )); 173 | } 174 | } 175 | 176 | // QUEUE: get all the camera/views, and add the appropriate items to that view's render phase. 177 | // ie, just stuff visible to that view. 178 | // (remember each view/camera has a render phase comp that holds phase items) 179 | fn queue( 180 | transparent_2d_draw_functions: Res>, 181 | my_pipeline: Res, 182 | pipeline_cache: Res, 183 | mut pipelines: ResMut>, 184 | mut render_phases: ResMut>, 185 | visible_entities: Query<(Entity, &RenderVisibleEntities)>, 186 | extracted_sprites: Query<(Entity, &MainEntity, &ExtractedSpriteInstance)>, 187 | ) { 188 | let my_draw_function = transparent_2d_draw_functions.read().id::(); 189 | 190 | // iterate over each camera 191 | for (view_entity, view_visible_entities) in visible_entities.iter() { 192 | let Some(render_phase) = render_phases.get_mut(&view_entity) else { 193 | // info!("no render phase found for camera"); 194 | continue; 195 | }; 196 | // load the pipline from the loaded pipeline cache 197 | let key = CustomPipelineKey; 198 | let pipeline = pipelines.specialize(&pipeline_cache, &my_pipeline, key); 199 | 200 | if extracted_sprites.is_empty() { 201 | // warn!("No extracted sprites found"); 202 | continue; 203 | } 204 | 205 | for (render_entity, main_entity, sprite) in extracted_sprites.iter() { 206 | //check if the current camera can see our entity 207 | if !view_visible_entities 208 | .get::>() 209 | .contains(&(render_entity, *main_entity)) 210 | { 211 | // warn!("Camera cannot see entity"); 212 | continue; 213 | } 214 | 215 | // add a `PhaseItem` for our entity to the cameras render phase 216 | render_phase.add(Transparent2d { 217 | sort_key: FloatOrd(sprite.z_order), 218 | entity: (render_entity, *main_entity), 219 | pipeline, 220 | draw_function: my_draw_function, 221 | batch_range: 0..1, 222 | extra_index: PhaseItemExtraIndex::NONE, 223 | }) 224 | } 225 | } 226 | } 227 | 228 | // ------------------- 229 | // prepared buffers, ready to be passed to the gpu 230 | #[derive(Component)] 231 | pub struct PreparedSprites { 232 | uniform_buffer: BindGroup, 233 | instance_buffer: Buffer, 234 | count: u32, 235 | } 236 | 237 | // transform our data into a wgpu buffer and prepare it for binding in the final draw command 238 | fn prepare( 239 | mut cmd: Commands, 240 | render_device: Res, 241 | images: Res>, 242 | shader_storage_buffer: Res>, 243 | fallback_image: Res, 244 | pipeline: Res, 245 | extracted_sprites: Query<(Entity, &ExtractedSpriteInstance, &CustomSprite)>, 246 | ) { 247 | let mut param = (images, fallback_image, shader_storage_buffer); 248 | for (entity, sprite_instance, custom_sprite) in extracted_sprites.iter() { 249 | let instance_buffer = render_device.create_buffer_with_data(&BufferInitDescriptor { 250 | label: Some("transform buffer"), 251 | contents: bytemuck::cast_slice(&[sprite_instance.instance_data]), 252 | usage: BufferUsages::VERTEX | BufferUsages::COPY_DST, 253 | }); 254 | 255 | let Ok(uniform_buffer) = 256 | custom_sprite.as_bind_group(&pipeline.uniform_layout, &render_device, &mut param) 257 | else { 258 | continue; 259 | }; 260 | 261 | cmd.entity(entity).insert(PreparedSprites { 262 | uniform_buffer: uniform_buffer.bind_group, 263 | instance_buffer, 264 | count: 1, 265 | }); 266 | } 267 | } 268 | 269 | // ------------------- 270 | // Pipeline 271 | #[derive(Resource)] 272 | pub struct CustomPipeline { 273 | view_layout: BindGroupLayout, 274 | uniform_layout: BindGroupLayout, 275 | shader: Handle, 276 | } 277 | 278 | #[derive(PartialEq, Eq, Clone, Hash)] 279 | pub struct CustomPipelineKey; 280 | 281 | impl FromWorld for CustomPipeline { 282 | fn from_world(world: &mut World) -> Self { 283 | let server = world.resource::(); 284 | let render_device = world.resource::(); 285 | 286 | // copy view layout from the mesh 2d pipeline. 287 | // this adds the view and globals uniform buffer bindings 288 | let mesh_pipeline = world.resource::(); 289 | 290 | let view_layout = mesh_pipeline.view_layout.clone(); 291 | let uniform_layout = CustomSprite::bind_group_layout(render_device); 292 | 293 | Self { 294 | view_layout, 295 | uniform_layout, 296 | shader: server.load("shader.wgsl"), 297 | } 298 | } 299 | } 300 | 301 | impl SpecializedRenderPipeline for CustomPipeline { 302 | type Key = CustomPipelineKey; 303 | 304 | #[rustfmt::skip] 305 | fn specialize(&self, _key: Self::Key) -> RenderPipelineDescriptor { 306 | // TODO: we can add appropriate padding in the shader for webgl2 if desired: 307 | let shader_defs = vec![ 308 | // #[cfg(feature = "webgl")] 309 | // "SIXTEEN_BYTE_ALIGNMENT".into(), 310 | ]; 311 | // TODO feels wrong to have to copy and paste in a bunch of defaults here, 312 | // can i clone them from the mes2d pipeline or something? 313 | RenderPipelineDescriptor { 314 | label: Some("my pipeline".into()), 315 | layout: vec![ 316 | self.view_layout.clone(), 317 | self.uniform_layout.clone() 318 | ], 319 | vertex: VertexState { 320 | shader: self.shader.clone(), 321 | shader_defs: vec![], 322 | entry_point: "vertex".into(), 323 | buffers: vec![ 324 | // vertex buffer 325 | VertexBufferLayout{ 326 | array_stride: 12, 327 | step_mode: VertexStepMode::Vertex, 328 | attributes: vec![ 329 | VertexAttribute{ 330 | format: VertexFormat::Float32x3, 331 | offset: 0, 332 | shader_location: 0 333 | } 334 | ] 335 | }, 336 | // instance buffer 337 | VertexBufferLayout { 338 | array_stride: 48, 339 | step_mode: VertexStepMode::Instance, 340 | attributes: vec![ 341 | // translation 342 | VertexAttribute { 343 | format: VertexFormat::Float32x4, 344 | offset: 0, 345 | shader_location: 1, 346 | }, 347 | // rotation 348 | VertexAttribute { 349 | format: VertexFormat::Float32x4, 350 | offset: 16, 351 | shader_location: 2, 352 | }, 353 | // scale 354 | VertexAttribute { 355 | format: VertexFormat::Float32x4, 356 | offset: 32, 357 | shader_location: 3, 358 | }, 359 | ], 360 | }], 361 | }, 362 | fragment: Some(FragmentState { 363 | shader: self.shader.clone(), 364 | shader_defs, 365 | entry_point: "fragment".into(), 366 | targets: vec![Some(ColorTargetState { 367 | format: TextureFormat::Rgba8UnormSrgb, 368 | blend: Some(BlendState::ALPHA_BLENDING), 369 | write_mask: ColorWrites::ALL, 370 | })], 371 | }), 372 | primitive: PrimitiveState { 373 | front_face: FrontFace::Ccw, 374 | cull_mode: None, 375 | unclipped_depth: false, 376 | polygon_mode: PolygonMode::Fill, 377 | conservative: false, 378 | topology: PrimitiveTopology::TriangleList, 379 | strip_index_format: None, 380 | }, 381 | push_constant_ranges: vec![], 382 | // TODO: copied from the 2d pipeline, but can't we clone it from somewhere without copy paste, so it doesn't rot? 383 | depth_stencil: Some(DepthStencilState { 384 | format: CORE_2D_DEPTH_FORMAT, 385 | depth_write_enabled: false, 386 | depth_compare: CompareFunction::Always, 387 | stencil: StencilState { 388 | front: StencilFaceState::IGNORE, 389 | back: StencilFaceState::IGNORE, 390 | read_mask: 0, 391 | write_mask: 0, 392 | }, 393 | bias: DepthBiasState { 394 | constant: 0, 395 | slope_scale: 0.0, 396 | clamp: 0.0, 397 | }, 398 | }), 399 | multisample: MultisampleState{ 400 | count: 4, 401 | mask: !0, 402 | alpha_to_coverage_enabled: false, 403 | }, 404 | zero_initialize_workgroup_memory: true, 405 | } 406 | } 407 | } 408 | 409 | // ------------------- 410 | // Draw command 411 | type MyDrawCommand = ( 412 | // ready our pipline to start sending commands 413 | SetItemPipeline, 414 | // bind the camera view uniform 415 | SetMesh2dViewBindGroup<0>, 416 | // bind our custom uniform 417 | SetBindGroup<1>, 418 | // finally send the draw command 419 | DrawSprite, 420 | ); 421 | 422 | // copy our uniform buffer to the gpu 423 | pub struct SetBindGroup; 424 | impl RenderCommand

for SetBindGroup { 425 | type Param = (); 426 | type ViewQuery = (); 427 | type ItemQuery = Read; 428 | 429 | #[inline] 430 | fn render<'w>( 431 | _item: &P, 432 | _view: ROQueryItem<'w, Self::ViewQuery>, 433 | prepared_data: Option>, 434 | _param: SystemParamItem<'w, '_, Self::Param>, 435 | pass: &mut TrackedRenderPass<'w>, 436 | ) -> RenderCommandResult { 437 | let Some(prepared_sprite) = prepared_data else { 438 | // this happens once. i suppose it doesn't matter, so skip not failure. 439 | // return RenderCommandResult::Failure("missing prepared sprite"); 440 | return RenderCommandResult::Skip; 441 | }; 442 | 443 | // bind our texture 444 | pass.set_bind_group(I, &prepared_sprite.uniform_buffer, &[]); 445 | 446 | RenderCommandResult::Success 447 | } 448 | } 449 | 450 | // ----------------------------- 451 | // send the draw command 452 | pub struct DrawSprite; 453 | impl RenderCommand

for DrawSprite { 454 | type Param = SRes; 455 | type ViewQuery = (); 456 | type ItemQuery = Read; 457 | 458 | #[inline] 459 | fn render<'w>( 460 | _item: &P, 461 | _view: ROQueryItem<'w, Self::ViewQuery>, 462 | prepared_data: Option>, 463 | param: SystemParamItem<'w, '_, Self::Param>, 464 | pass: &mut TrackedRenderPass<'w>, 465 | ) -> RenderCommandResult { 466 | let Some(prepared_sprite) = prepared_data else { 467 | return RenderCommandResult::Failure("missing prepared sprite"); 468 | }; 469 | 470 | let quad_data = param.into_inner(); 471 | 472 | let Some(index_buffer) = quad_data.index_buffer.buffer() else { 473 | return RenderCommandResult::Failure("missing index buffer"); 474 | }; 475 | 476 | let Some(vertex_buffer) = quad_data.vertex_buffer.buffer() else { 477 | return RenderCommandResult::Failure("missing vertex buffer"); 478 | }; 479 | 480 | // pass the vertex buffer 481 | pass.set_vertex_buffer(0, vertex_buffer.slice(..)); 482 | 483 | // pass the instance buffer 484 | pass.set_vertex_buffer(1, prepared_sprite.instance_buffer.slice(..)); 485 | 486 | // pass the index buffer 487 | pass.set_index_buffer(index_buffer.slice(..), 0, IndexFormat::Uint32); 488 | 489 | // finally draw 490 | pass.draw_indexed(0..6, 0, 0..prepared_sprite.count); 491 | 492 | RenderCommandResult::Success 493 | } 494 | } 495 | --------------------------------------------------------------------------------