+4
.cargo/config.toml
+4
.cargo/config.toml
+81
-3515
Cargo.lock
+81
-3515
Cargo.lock
···
19
19
checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
20
20
21
21
[[package]]
22
-
name = "accesskit"
23
-
version = "0.18.0"
24
-
source = "registry+https://github.com/rust-lang/crates.io-index"
25
-
checksum = "becf0eb5215b6ecb0a739c31c21bd83c4f326524c9b46b7e882d77559b60a529"
26
-
27
-
[[package]]
28
-
name = "accesskit_consumer"
29
-
version = "0.27.0"
30
-
source = "registry+https://github.com/rust-lang/crates.io-index"
31
-
checksum = "d0bf66a7bf0b7ea4fd7742d50b64782a88f99217cf246b3f93b4162528dde520"
32
-
dependencies = [
33
-
"accesskit",
34
-
"hashbrown",
35
-
"immutable-chunkmap",
36
-
]
37
-
38
-
[[package]]
39
-
name = "accesskit_macos"
40
-
version = "0.19.0"
41
-
source = "registry+https://github.com/rust-lang/crates.io-index"
42
-
checksum = "09e230718177753b4e4ad9e1d9f6cfc2f4921212d4c1c480b253f526babb258d"
43
-
dependencies = [
44
-
"accesskit",
45
-
"accesskit_consumer",
46
-
"hashbrown",
47
-
"objc2 0.5.2",
48
-
"objc2-app-kit 0.2.2",
49
-
"objc2-foundation 0.2.2",
50
-
]
51
-
52
-
[[package]]
53
-
name = "accesskit_windows"
54
-
version = "0.25.0"
55
-
source = "registry+https://github.com/rust-lang/crates.io-index"
56
-
checksum = "65178f3df98a51e4238e584fcb255cb1a4f9111820848eeddd37663be40a625f"
57
-
dependencies = [
58
-
"accesskit",
59
-
"accesskit_consumer",
60
-
"hashbrown",
61
-
"paste",
62
-
"static_assertions",
63
-
"windows 0.58.0",
64
-
"windows-core 0.58.0",
65
-
]
66
-
67
-
[[package]]
68
-
name = "accesskit_winit"
69
-
version = "0.25.0"
70
-
source = "registry+https://github.com/rust-lang/crates.io-index"
71
-
checksum = "34d941bb8c414caba6e206de669c7dc0dbeb305640ea890772ee422a40e6b89f"
72
-
dependencies = [
73
-
"accesskit",
74
-
"accesskit_macos",
75
-
"accesskit_windows",
76
-
"raw-window-handle",
77
-
"winit",
78
-
]
79
-
80
-
[[package]]
81
22
name = "adler2"
82
23
version = "2.0.0"
83
24
source = "registry+https://github.com/rust-lang/crates.io-index"
···
97
38
]
98
39
99
40
[[package]]
100
-
name = "aho-corasick"
101
-
version = "1.1.3"
102
-
source = "registry+https://github.com/rust-lang/crates.io-index"
103
-
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
104
-
dependencies = [
105
-
"memchr",
106
-
]
107
-
108
-
[[package]]
109
41
name = "aligned-vec"
110
42
version = "0.5.0"
111
43
source = "registry+https://github.com/rust-lang/crates.io-index"
112
44
checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
113
45
114
46
[[package]]
115
-
name = "alsa"
116
-
version = "0.9.1"
117
-
source = "registry+https://github.com/rust-lang/crates.io-index"
118
-
checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43"
119
-
dependencies = [
120
-
"alsa-sys",
121
-
"bitflags 2.9.0",
122
-
"cfg-if",
123
-
"libc",
124
-
]
125
-
126
-
[[package]]
127
-
name = "alsa-sys"
128
-
version = "0.3.1"
129
-
source = "registry+https://github.com/rust-lang/crates.io-index"
130
-
checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
131
-
dependencies = [
132
-
"libc",
133
-
"pkg-config",
134
-
]
135
-
136
-
[[package]]
137
47
name = "android-activity"
138
48
version = "0.6.0"
139
49
source = "registry+https://github.com/rust-lang/crates.io-index"
···
147
57
"jni-sys",
148
58
"libc",
149
59
"log",
150
-
"ndk 0.9.0",
60
+
"ndk",
151
61
"ndk-context",
152
62
"ndk-sys 0.6.0+11769913",
153
63
"num_enum",
···
161
71
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
162
72
163
73
[[package]]
164
-
name = "android_log-sys"
165
-
version = "0.3.2"
166
-
source = "registry+https://github.com/rust-lang/crates.io-index"
167
-
checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d"
168
-
169
-
[[package]]
170
74
name = "android_system_properties"
171
75
version = "0.1.5"
172
76
source = "registry+https://github.com/rust-lang/crates.io-index"
···
197
101
checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
198
102
199
103
[[package]]
200
-
name = "arboard"
201
-
version = "3.5.0"
202
-
source = "registry+https://github.com/rust-lang/crates.io-index"
203
-
checksum = "c1df21f715862ede32a0c525ce2ca4d52626bb0007f8c18b87a384503ac33e70"
204
-
dependencies = [
205
-
"clipboard-win",
206
-
"image 0.25.6",
207
-
"log",
208
-
"objc2 0.6.1",
209
-
"objc2-app-kit 0.3.1",
210
-
"objc2-core-foundation",
211
-
"objc2-core-graphics",
212
-
"objc2-foundation 0.3.1",
213
-
"parking_lot",
214
-
"percent-encoding",
215
-
"windows-sys 0.59.0",
216
-
"x11rb",
217
-
]
218
-
219
-
[[package]]
220
104
name = "arg_enum_proc_macro"
221
105
version = "0.3.4"
222
106
source = "registry+https://github.com/rust-lang/crates.io-index"
···
261
145
]
262
146
263
147
[[package]]
264
-
name = "assert_type_match"
265
-
version = "0.1.1"
266
-
source = "registry+https://github.com/rust-lang/crates.io-index"
267
-
checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043"
268
-
dependencies = [
269
-
"proc-macro2",
270
-
"quote",
271
-
"syn 2.0.101",
272
-
]
273
-
274
-
[[package]]
275
-
name = "async-broadcast"
276
-
version = "0.7.2"
277
-
source = "registry+https://github.com/rust-lang/crates.io-index"
278
-
checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
279
-
dependencies = [
280
-
"event-listener",
281
-
"event-listener-strategy",
282
-
"futures-core",
283
-
"pin-project-lite",
284
-
]
285
-
286
-
[[package]]
287
-
name = "async-channel"
288
-
version = "2.3.1"
289
-
source = "registry+https://github.com/rust-lang/crates.io-index"
290
-
checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
291
-
dependencies = [
292
-
"concurrent-queue",
293
-
"event-listener-strategy",
294
-
"futures-core",
295
-
"pin-project-lite",
296
-
]
297
-
298
-
[[package]]
299
-
name = "async-executor"
300
-
version = "1.13.2"
301
-
source = "registry+https://github.com/rust-lang/crates.io-index"
302
-
checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa"
303
-
dependencies = [
304
-
"async-task",
305
-
"concurrent-queue",
306
-
"fastrand",
307
-
"futures-lite",
308
-
"pin-project-lite",
309
-
"slab",
310
-
]
311
-
312
-
[[package]]
313
-
name = "async-fs"
314
-
version = "2.1.2"
315
-
source = "registry+https://github.com/rust-lang/crates.io-index"
316
-
checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
317
-
dependencies = [
318
-
"async-lock",
319
-
"blocking",
320
-
"futures-lite",
321
-
]
322
-
323
-
[[package]]
324
-
name = "async-lock"
325
-
version = "3.4.0"
326
-
source = "registry+https://github.com/rust-lang/crates.io-index"
327
-
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
328
-
dependencies = [
329
-
"event-listener",
330
-
"event-listener-strategy",
331
-
"pin-project-lite",
332
-
]
333
-
334
-
[[package]]
335
-
name = "async-task"
336
-
version = "4.7.1"
337
-
source = "registry+https://github.com/rust-lang/crates.io-index"
338
-
checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
339
-
dependencies = [
340
-
"portable-atomic",
341
-
]
342
-
343
-
[[package]]
344
148
name = "atomic-waker"
345
149
version = "1.1.2"
346
150
source = "registry+https://github.com/rust-lang/crates.io-index"
347
151
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
348
-
dependencies = [
349
-
"portable-atomic",
350
-
]
351
-
352
-
[[package]]
353
-
name = "atomicow"
354
-
version = "1.1.0"
355
-
source = "registry+https://github.com/rust-lang/crates.io-index"
356
-
checksum = "f52e8890bb9844440d0c412fa74b67fd2f14e85248b6e00708059b6da9e5f8bf"
357
-
dependencies = [
358
-
"portable-atomic",
359
-
"portable-atomic-util",
360
-
]
361
152
362
153
[[package]]
363
154
name = "autocfg"
···
395
186
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
396
187
397
188
[[package]]
398
-
name = "base64"
399
-
version = "0.21.7"
400
-
source = "registry+https://github.com/rust-lang/crates.io-index"
401
-
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
402
-
403
-
[[package]]
404
-
name = "base64"
405
-
version = "0.22.1"
406
-
source = "registry+https://github.com/rust-lang/crates.io-index"
407
-
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
408
-
409
-
[[package]]
410
-
name = "bevy"
411
-
version = "0.16.0"
412
-
source = "registry+https://github.com/rust-lang/crates.io-index"
413
-
checksum = "2a5cd3b24a5adb7c7378da7b3eea47639877643d11b6b087fc8a8094f2528615"
414
-
dependencies = [
415
-
"bevy_internal",
416
-
]
417
-
418
-
[[package]]
419
-
name = "bevy_a11y"
420
-
version = "0.16.0"
421
-
source = "registry+https://github.com/rust-lang/crates.io-index"
422
-
checksum = "91ed969a58fbe449ef35ebec58ab19578302537f34ee8a35d04e5a038b3c40f5"
423
-
dependencies = [
424
-
"accesskit",
425
-
"bevy_app",
426
-
"bevy_derive",
427
-
"bevy_ecs",
428
-
"bevy_reflect",
429
-
]
430
-
431
-
[[package]]
432
-
name = "bevy_animation"
433
-
version = "0.16.0"
434
-
source = "registry+https://github.com/rust-lang/crates.io-index"
435
-
checksum = "3647b67c6bfd456922b2720ccef980dec01742d155d0eb454dc3d8fdc65e7aff"
436
-
dependencies = [
437
-
"bevy_app",
438
-
"bevy_asset",
439
-
"bevy_color",
440
-
"bevy_derive",
441
-
"bevy_ecs",
442
-
"bevy_log",
443
-
"bevy_math",
444
-
"bevy_mesh",
445
-
"bevy_platform",
446
-
"bevy_reflect",
447
-
"bevy_render",
448
-
"bevy_time",
449
-
"bevy_transform",
450
-
"bevy_utils",
451
-
"blake3",
452
-
"derive_more",
453
-
"downcast-rs 2.0.1",
454
-
"either",
455
-
"petgraph",
456
-
"ron",
457
-
"serde",
458
-
"smallvec",
459
-
"thiserror 2.0.12",
460
-
"thread_local",
461
-
"tracing",
462
-
"uuid",
463
-
]
464
-
465
-
[[package]]
466
-
name = "bevy_app"
467
-
version = "0.16.0"
468
-
source = "registry+https://github.com/rust-lang/crates.io-index"
469
-
checksum = "a2b6267ac23a9947d5b2725ff047a1e1add70076d85fa9fb73d044ab9bea1f3c"
470
-
dependencies = [
471
-
"bevy_derive",
472
-
"bevy_ecs",
473
-
"bevy_platform",
474
-
"bevy_reflect",
475
-
"bevy_tasks",
476
-
"bevy_utils",
477
-
"cfg-if",
478
-
"console_error_panic_hook",
479
-
"ctrlc",
480
-
"downcast-rs 2.0.1",
481
-
"log",
482
-
"thiserror 2.0.12",
483
-
"variadics_please",
484
-
"wasm-bindgen",
485
-
"web-sys",
486
-
]
487
-
488
-
[[package]]
489
-
name = "bevy_asset"
490
-
version = "0.16.0"
491
-
source = "registry+https://github.com/rust-lang/crates.io-index"
492
-
checksum = "0698040d63199391ea77fd02e039630748e3e335c3070c6d932fd96cbf80f5d6"
493
-
dependencies = [
494
-
"async-broadcast",
495
-
"async-fs",
496
-
"async-lock",
497
-
"atomicow",
498
-
"bevy_app",
499
-
"bevy_asset_macros",
500
-
"bevy_ecs",
501
-
"bevy_platform",
502
-
"bevy_reflect",
503
-
"bevy_tasks",
504
-
"bevy_utils",
505
-
"bevy_window",
506
-
"bitflags 2.9.0",
507
-
"blake3",
508
-
"crossbeam-channel",
509
-
"derive_more",
510
-
"disqualified",
511
-
"downcast-rs 2.0.1",
512
-
"either",
513
-
"futures-io",
514
-
"futures-lite",
515
-
"js-sys",
516
-
"parking_lot",
517
-
"ron",
518
-
"serde",
519
-
"stackfuture",
520
-
"thiserror 2.0.12",
521
-
"tracing",
522
-
"uuid",
523
-
"wasm-bindgen",
524
-
"wasm-bindgen-futures",
525
-
"web-sys",
526
-
]
527
-
528
-
[[package]]
529
-
name = "bevy_asset_macros"
530
-
version = "0.16.0"
531
-
source = "registry+https://github.com/rust-lang/crates.io-index"
532
-
checksum = "0bf8c00b5d532f8e5ac7b49af10602f9f7774a2d522cf0638323b5dfeee7b31c"
533
-
dependencies = [
534
-
"bevy_macro_utils",
535
-
"proc-macro2",
536
-
"quote",
537
-
"syn 2.0.101",
538
-
]
539
-
540
-
[[package]]
541
-
name = "bevy_audio"
542
-
version = "0.16.0"
543
-
source = "registry+https://github.com/rust-lang/crates.io-index"
544
-
checksum = "74e54154e6369abdbaf5098e20424d59197c9b701d4f79fe8d0d2bde03d25f12"
545
-
dependencies = [
546
-
"bevy_app",
547
-
"bevy_asset",
548
-
"bevy_derive",
549
-
"bevy_ecs",
550
-
"bevy_math",
551
-
"bevy_reflect",
552
-
"bevy_transform",
553
-
"cpal",
554
-
"rodio",
555
-
"tracing",
556
-
]
557
-
558
-
[[package]]
559
-
name = "bevy_color"
560
-
version = "0.16.1"
561
-
source = "registry+https://github.com/rust-lang/crates.io-index"
562
-
checksum = "ddf6a5ad35496bbc41713efbcf06ab72b9a310fabcab0f9db1debb56e8488c6e"
563
-
dependencies = [
564
-
"bevy_math",
565
-
"bevy_reflect",
566
-
"bytemuck",
567
-
"derive_more",
568
-
"encase",
569
-
"serde",
570
-
"thiserror 2.0.12",
571
-
"wgpu-types 24.0.0",
572
-
]
573
-
574
-
[[package]]
575
-
name = "bevy_core_pipeline"
576
-
version = "0.16.0"
577
-
source = "registry+https://github.com/rust-lang/crates.io-index"
578
-
checksum = "55c2310717b9794e4a45513ee5946a7be0838852a4c1e185884195e1a8688ff3"
579
-
dependencies = [
580
-
"bevy_app",
581
-
"bevy_asset",
582
-
"bevy_color",
583
-
"bevy_derive",
584
-
"bevy_diagnostic",
585
-
"bevy_ecs",
586
-
"bevy_image",
587
-
"bevy_math",
588
-
"bevy_platform",
589
-
"bevy_reflect",
590
-
"bevy_render",
591
-
"bevy_transform",
592
-
"bevy_utils",
593
-
"bevy_window",
594
-
"bitflags 2.9.0",
595
-
"bytemuck",
596
-
"nonmax",
597
-
"radsort",
598
-
"serde",
599
-
"smallvec",
600
-
"thiserror 2.0.12",
601
-
"tracing",
602
-
]
603
-
604
-
[[package]]
605
-
name = "bevy_derive"
606
-
version = "0.16.0"
607
-
source = "registry+https://github.com/rust-lang/crates.io-index"
608
-
checksum = "f626531b9c05c25a758ede228727bd11c2c2c8498ecbed9925044386d525a2a3"
609
-
dependencies = [
610
-
"bevy_macro_utils",
611
-
"quote",
612
-
"syn 2.0.101",
613
-
]
614
-
615
-
[[package]]
616
-
name = "bevy_dev_tools"
617
-
version = "0.16.0"
618
-
source = "registry+https://github.com/rust-lang/crates.io-index"
619
-
checksum = "3e1ae2246832d0fce2f6eb3b7f3d05084a06e36b24bb72cb8b9a171de7e4a341"
620
-
dependencies = [
621
-
"bevy_app",
622
-
"bevy_asset",
623
-
"bevy_color",
624
-
"bevy_diagnostic",
625
-
"bevy_ecs",
626
-
"bevy_input",
627
-
"bevy_picking",
628
-
"bevy_reflect",
629
-
"bevy_render",
630
-
"bevy_state",
631
-
"bevy_text",
632
-
"bevy_time",
633
-
"bevy_ui",
634
-
"bevy_utils",
635
-
"bevy_window",
636
-
"tracing",
637
-
]
638
-
639
-
[[package]]
640
-
name = "bevy_diagnostic"
641
-
version = "0.16.0"
642
-
source = "registry+https://github.com/rust-lang/crates.io-index"
643
-
checksum = "048a1ff3944a534b8472516866284181eef0a75b6dd4d39b6e5925715e350766"
644
-
dependencies = [
645
-
"bevy_app",
646
-
"bevy_ecs",
647
-
"bevy_platform",
648
-
"bevy_tasks",
649
-
"bevy_time",
650
-
"bevy_utils",
651
-
"const-fnv1a-hash",
652
-
"log",
653
-
"serde",
654
-
"sysinfo",
655
-
]
656
-
657
-
[[package]]
658
-
name = "bevy_ecs"
659
-
version = "0.16.0"
660
-
source = "registry+https://github.com/rust-lang/crates.io-index"
661
-
checksum = "d9e807b5d9aab3bb8dfe47e7a44c9ff088bad2ceefe299b80ac77609a87fe9d4"
662
-
dependencies = [
663
-
"arrayvec",
664
-
"bevy_ecs_macros",
665
-
"bevy_platform",
666
-
"bevy_ptr",
667
-
"bevy_reflect",
668
-
"bevy_tasks",
669
-
"bevy_utils",
670
-
"bitflags 2.9.0",
671
-
"bumpalo",
672
-
"concurrent-queue",
673
-
"derive_more",
674
-
"disqualified",
675
-
"fixedbitset",
676
-
"indexmap",
677
-
"log",
678
-
"nonmax",
679
-
"serde",
680
-
"smallvec",
681
-
"thiserror 2.0.12",
682
-
"variadics_please",
683
-
]
684
-
685
-
[[package]]
686
-
name = "bevy_ecs_macros"
687
-
version = "0.16.0"
688
-
source = "registry+https://github.com/rust-lang/crates.io-index"
689
-
checksum = "467d7bb98aeb8dd30f36e6a773000c12a891d4f1bee2adc3841ec89cc8eaf54e"
690
-
dependencies = [
691
-
"bevy_macro_utils",
692
-
"proc-macro2",
693
-
"quote",
694
-
"syn 2.0.101",
695
-
]
696
-
697
-
[[package]]
698
-
name = "bevy_egui"
699
-
version = "0.34.1"
700
-
source = "registry+https://github.com/rust-lang/crates.io-index"
701
-
checksum = "3a3d58a8afdb6100bca50251043a85320391742cae125d559f6cca3a16b84cdd"
702
-
dependencies = [
703
-
"arboard",
704
-
"bevy_app",
705
-
"bevy_asset",
706
-
"bevy_derive",
707
-
"bevy_ecs",
708
-
"bevy_image",
709
-
"bevy_input",
710
-
"bevy_log",
711
-
"bevy_math",
712
-
"bevy_picking",
713
-
"bevy_platform",
714
-
"bevy_reflect",
715
-
"bevy_render",
716
-
"bevy_time",
717
-
"bevy_window",
718
-
"bevy_winit",
719
-
"bytemuck",
720
-
"crossbeam-channel",
721
-
"egui",
722
-
"encase",
723
-
"image 0.25.6",
724
-
"js-sys",
725
-
"thread_local",
726
-
"wasm-bindgen",
727
-
"wasm-bindgen-futures",
728
-
"web-sys",
729
-
"webbrowser",
730
-
"wgpu-types 24.0.0",
731
-
"winit",
732
-
]
733
-
734
-
[[package]]
735
-
name = "bevy_encase_derive"
736
-
version = "0.16.0"
737
-
source = "registry+https://github.com/rust-lang/crates.io-index"
738
-
checksum = "b8bb31dc1090c6f8fabbf6b21994d19a12766e786885ee48ffc547f0f1fa7863"
739
-
dependencies = [
740
-
"bevy_macro_utils",
741
-
"encase_derive_impl",
742
-
]
743
-
744
-
[[package]]
745
-
name = "bevy_gilrs"
746
-
version = "0.16.0"
747
-
source = "registry+https://github.com/rust-lang/crates.io-index"
748
-
checksum = "950c84596dbff8a9691a050c37bb610ef9398af56369c2c2dd6dc41ef7b717a5"
749
-
dependencies = [
750
-
"bevy_app",
751
-
"bevy_ecs",
752
-
"bevy_input",
753
-
"bevy_platform",
754
-
"bevy_time",
755
-
"bevy_utils",
756
-
"gilrs",
757
-
"thiserror 2.0.12",
758
-
"tracing",
759
-
]
760
-
761
-
[[package]]
762
-
name = "bevy_gizmos"
763
-
version = "0.16.0"
764
-
source = "registry+https://github.com/rust-lang/crates.io-index"
765
-
checksum = "54af8145b35ab2a830a6dd1058e23c1e1ddc4b893db79d295259ef82f51c7520"
766
-
dependencies = [
767
-
"bevy_app",
768
-
"bevy_asset",
769
-
"bevy_color",
770
-
"bevy_core_pipeline",
771
-
"bevy_ecs",
772
-
"bevy_gizmos_macros",
773
-
"bevy_image",
774
-
"bevy_math",
775
-
"bevy_pbr",
776
-
"bevy_reflect",
777
-
"bevy_render",
778
-
"bevy_sprite",
779
-
"bevy_time",
780
-
"bevy_transform",
781
-
"bevy_utils",
782
-
"bytemuck",
783
-
"tracing",
784
-
]
785
-
786
-
[[package]]
787
-
name = "bevy_gizmos_macros"
788
-
version = "0.16.0"
789
-
source = "registry+https://github.com/rust-lang/crates.io-index"
790
-
checksum = "40137ace61f092b7a09eba41d7d1e6aef941f53a7818b06ef86dcce7b6a1fd3f"
791
-
dependencies = [
792
-
"bevy_macro_utils",
793
-
"proc-macro2",
794
-
"quote",
795
-
"syn 2.0.101",
796
-
]
797
-
798
-
[[package]]
799
-
name = "bevy_gltf"
800
-
version = "0.16.0"
801
-
source = "registry+https://github.com/rust-lang/crates.io-index"
802
-
checksum = "aa25b809ee024ef2682bafc1ca22ca8275552edb549dc6f69a030fdffd976c63"
803
-
dependencies = [
804
-
"base64 0.22.1",
805
-
"bevy_animation",
806
-
"bevy_app",
807
-
"bevy_asset",
808
-
"bevy_color",
809
-
"bevy_core_pipeline",
810
-
"bevy_ecs",
811
-
"bevy_image",
812
-
"bevy_math",
813
-
"bevy_mesh",
814
-
"bevy_pbr",
815
-
"bevy_platform",
816
-
"bevy_reflect",
817
-
"bevy_render",
818
-
"bevy_scene",
819
-
"bevy_tasks",
820
-
"bevy_transform",
821
-
"bevy_utils",
822
-
"fixedbitset",
823
-
"gltf",
824
-
"itertools 0.14.0",
825
-
"percent-encoding",
826
-
"serde",
827
-
"serde_json",
828
-
"smallvec",
829
-
"thiserror 2.0.12",
830
-
"tracing",
831
-
]
832
-
833
-
[[package]]
834
-
name = "bevy_image"
835
-
version = "0.16.0"
836
-
source = "registry+https://github.com/rust-lang/crates.io-index"
837
-
checksum = "840b25f7f58894c641739f756959028a04f519c448db7e2cd3e2e29fc5fd188d"
838
-
dependencies = [
839
-
"bevy_app",
840
-
"bevy_asset",
841
-
"bevy_color",
842
-
"bevy_math",
843
-
"bevy_platform",
844
-
"bevy_reflect",
845
-
"bevy_utils",
846
-
"bitflags 2.9.0",
847
-
"bytemuck",
848
-
"futures-lite",
849
-
"guillotiere",
850
-
"half",
851
-
"image 0.25.6",
852
-
"ktx2",
853
-
"rectangle-pack",
854
-
"ruzstd",
855
-
"serde",
856
-
"thiserror 2.0.12",
857
-
"tracing",
858
-
"wgpu-types 24.0.0",
859
-
]
860
-
861
-
[[package]]
862
-
name = "bevy_input"
863
-
version = "0.16.0"
864
-
source = "registry+https://github.com/rust-lang/crates.io-index"
865
-
checksum = "763410715714f3d4d2dcdf077af276e2e4ea93fd8081b183d446d060ea95baaa"
866
-
dependencies = [
867
-
"bevy_app",
868
-
"bevy_ecs",
869
-
"bevy_math",
870
-
"bevy_platform",
871
-
"bevy_reflect",
872
-
"bevy_utils",
873
-
"derive_more",
874
-
"log",
875
-
"smol_str",
876
-
"thiserror 2.0.12",
877
-
]
878
-
879
-
[[package]]
880
-
name = "bevy_input_focus"
881
-
version = "0.16.0"
882
-
source = "registry+https://github.com/rust-lang/crates.io-index"
883
-
checksum = "d7e7b4ed65e10927a39a987cf85ef98727dd319aafb6e6835f2cb05b883c6d66"
884
-
dependencies = [
885
-
"bevy_app",
886
-
"bevy_ecs",
887
-
"bevy_input",
888
-
"bevy_math",
889
-
"bevy_reflect",
890
-
"bevy_window",
891
-
"log",
892
-
"thiserror 2.0.12",
893
-
]
894
-
895
-
[[package]]
896
-
name = "bevy_internal"
897
-
version = "0.16.0"
898
-
source = "registry+https://github.com/rust-lang/crates.io-index"
899
-
checksum = "526ffd64c58004cb97308826e896c07d0e23dc056c243b97492e31cdf72e2830"
900
-
dependencies = [
901
-
"bevy_a11y",
902
-
"bevy_animation",
903
-
"bevy_app",
904
-
"bevy_asset",
905
-
"bevy_audio",
906
-
"bevy_color",
907
-
"bevy_core_pipeline",
908
-
"bevy_derive",
909
-
"bevy_dev_tools",
910
-
"bevy_diagnostic",
911
-
"bevy_ecs",
912
-
"bevy_gilrs",
913
-
"bevy_gizmos",
914
-
"bevy_gltf",
915
-
"bevy_image",
916
-
"bevy_input",
917
-
"bevy_input_focus",
918
-
"bevy_log",
919
-
"bevy_math",
920
-
"bevy_pbr",
921
-
"bevy_picking",
922
-
"bevy_platform",
923
-
"bevy_ptr",
924
-
"bevy_reflect",
925
-
"bevy_render",
926
-
"bevy_scene",
927
-
"bevy_sprite",
928
-
"bevy_state",
929
-
"bevy_tasks",
930
-
"bevy_text",
931
-
"bevy_time",
932
-
"bevy_transform",
933
-
"bevy_ui",
934
-
"bevy_utils",
935
-
"bevy_window",
936
-
"bevy_winit",
937
-
]
938
-
939
-
[[package]]
940
-
name = "bevy_log"
941
-
version = "0.16.0"
942
-
source = "registry+https://github.com/rust-lang/crates.io-index"
943
-
checksum = "7156df8d2f11135cf71c03eb4c11132b65201fd4f51648571e59e39c9c9ee2f6"
944
-
dependencies = [
945
-
"android_log-sys",
946
-
"bevy_app",
947
-
"bevy_ecs",
948
-
"bevy_utils",
949
-
"tracing",
950
-
"tracing-log",
951
-
"tracing-oslog",
952
-
"tracing-subscriber",
953
-
"tracing-wasm",
954
-
]
955
-
956
-
[[package]]
957
-
name = "bevy_macro_utils"
958
-
version = "0.16.0"
959
-
source = "registry+https://github.com/rust-lang/crates.io-index"
960
-
checksum = "7a2473db70d8785b5c75d6dd951a2e51e9be2c2311122db9692c79c9d887517b"
961
-
dependencies = [
962
-
"parking_lot",
963
-
"proc-macro2",
964
-
"quote",
965
-
"syn 2.0.101",
966
-
"toml_edit",
967
-
]
968
-
969
-
[[package]]
970
-
name = "bevy_math"
971
-
version = "0.16.0"
972
-
source = "registry+https://github.com/rust-lang/crates.io-index"
973
-
checksum = "f1a3a926d02dc501c6156a047510bdb538dcb1fa744eeba13c824b73ba88de55"
974
-
dependencies = [
975
-
"approx",
976
-
"bevy_reflect",
977
-
"derive_more",
978
-
"glam 0.29.3",
979
-
"itertools 0.14.0",
980
-
"libm",
981
-
"rand",
982
-
"rand_distr",
983
-
"serde",
984
-
"smallvec",
985
-
"thiserror 2.0.12",
986
-
"variadics_please",
987
-
]
988
-
989
-
[[package]]
990
-
name = "bevy_mesh"
991
-
version = "0.16.0"
992
-
source = "registry+https://github.com/rust-lang/crates.io-index"
993
-
checksum = "12af58280c7453e32e2f083d86eaa4c9b9d03ea8683977108ded8f1930c539f2"
994
-
dependencies = [
995
-
"bevy_asset",
996
-
"bevy_derive",
997
-
"bevy_ecs",
998
-
"bevy_image",
999
-
"bevy_math",
1000
-
"bevy_mikktspace",
1001
-
"bevy_platform",
1002
-
"bevy_reflect",
1003
-
"bevy_transform",
1004
-
"bevy_utils",
1005
-
"bitflags 2.9.0",
1006
-
"bytemuck",
1007
-
"hexasphere",
1008
-
"serde",
1009
-
"thiserror 2.0.12",
1010
-
"tracing",
1011
-
"wgpu-types 24.0.0",
1012
-
]
1013
-
1014
-
[[package]]
1015
-
name = "bevy_mikktspace"
1016
-
version = "0.16.0"
1017
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1018
-
checksum = "75e0258423c689f764556e36b5d9eebdbf624b29a1fd5b33cd9f6c42dcc4d5f3"
1019
-
dependencies = [
1020
-
"glam 0.29.3",
1021
-
]
1022
-
1023
-
[[package]]
1024
-
name = "bevy_pbr"
1025
-
version = "0.16.0"
1026
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1027
-
checksum = "d9fe0de43b68bf9e5090a33efc963f125e9d3f9d97be9ebece7bcfdde1b6da80"
1028
-
dependencies = [
1029
-
"bevy_app",
1030
-
"bevy_asset",
1031
-
"bevy_color",
1032
-
"bevy_core_pipeline",
1033
-
"bevy_derive",
1034
-
"bevy_diagnostic",
1035
-
"bevy_ecs",
1036
-
"bevy_image",
1037
-
"bevy_math",
1038
-
"bevy_platform",
1039
-
"bevy_reflect",
1040
-
"bevy_render",
1041
-
"bevy_transform",
1042
-
"bevy_utils",
1043
-
"bevy_window",
1044
-
"bitflags 2.9.0",
1045
-
"bytemuck",
1046
-
"derive_more",
1047
-
"fixedbitset",
1048
-
"nonmax",
1049
-
"offset-allocator",
1050
-
"radsort",
1051
-
"smallvec",
1052
-
"static_assertions",
1053
-
"thiserror 2.0.12",
1054
-
"tracing",
1055
-
]
1056
-
1057
-
[[package]]
1058
-
name = "bevy_picking"
1059
-
version = "0.16.0"
1060
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1061
-
checksum = "f73674f62b1033006bd75c89033f5d3516386cfd7d43bb9f7665012c0ab14d22"
1062
-
dependencies = [
1063
-
"bevy_app",
1064
-
"bevy_asset",
1065
-
"bevy_derive",
1066
-
"bevy_ecs",
1067
-
"bevy_input",
1068
-
"bevy_math",
1069
-
"bevy_mesh",
1070
-
"bevy_platform",
1071
-
"bevy_reflect",
1072
-
"bevy_render",
1073
-
"bevy_time",
1074
-
"bevy_transform",
1075
-
"bevy_utils",
1076
-
"bevy_window",
1077
-
"crossbeam-channel",
1078
-
"tracing",
1079
-
"uuid",
1080
-
]
1081
-
1082
-
[[package]]
1083
-
name = "bevy_platform"
1084
-
version = "0.16.0"
1085
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1086
-
checksum = "704db2c11b7bc31093df4fbbdd3769f9606a6a5287149f4b51f2680f25834ebc"
1087
-
dependencies = [
1088
-
"cfg-if",
1089
-
"critical-section",
1090
-
"foldhash",
1091
-
"getrandom 0.2.16",
1092
-
"hashbrown",
1093
-
"portable-atomic",
1094
-
"portable-atomic-util",
1095
-
"serde",
1096
-
"spin",
1097
-
"web-time",
1098
-
]
1099
-
1100
-
[[package]]
1101
-
name = "bevy_ptr"
1102
-
version = "0.16.0"
1103
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1104
-
checksum = "86f1275dfb4cfef4ffc90c3fa75408964864facf833acc932413d52aa5364ba4"
1105
-
1106
-
[[package]]
1107
-
name = "bevy_reflect"
1108
-
version = "0.16.0"
1109
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1110
-
checksum = "607ebacc31029cf2f39ac330eabf1d4bc411b159528ec08dbe6b0593eaccfd41"
1111
-
dependencies = [
1112
-
"assert_type_match",
1113
-
"bevy_platform",
1114
-
"bevy_ptr",
1115
-
"bevy_reflect_derive",
1116
-
"bevy_utils",
1117
-
"derive_more",
1118
-
"disqualified",
1119
-
"downcast-rs 2.0.1",
1120
-
"erased-serde",
1121
-
"foldhash",
1122
-
"glam 0.29.3",
1123
-
"petgraph",
1124
-
"serde",
1125
-
"smallvec",
1126
-
"smol_str",
1127
-
"thiserror 2.0.12",
1128
-
"uuid",
1129
-
"variadics_please",
1130
-
"wgpu-types 24.0.0",
1131
-
]
1132
-
1133
-
[[package]]
1134
-
name = "bevy_reflect_derive"
1135
-
version = "0.16.0"
1136
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1137
-
checksum = "cf35e45e4eb239018369f63f2adc2107a54c329f9276d020e01eee1625b0238b"
1138
-
dependencies = [
1139
-
"bevy_macro_utils",
1140
-
"proc-macro2",
1141
-
"quote",
1142
-
"syn 2.0.101",
1143
-
"uuid",
1144
-
]
1145
-
1146
-
[[package]]
1147
-
name = "bevy_render"
1148
-
version = "0.16.0"
1149
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1150
-
checksum = "85a7306235b3343b032801504f3e884b93abfb7ba58179fc555c479df509f349"
1151
-
dependencies = [
1152
-
"async-channel",
1153
-
"bevy_app",
1154
-
"bevy_asset",
1155
-
"bevy_color",
1156
-
"bevy_derive",
1157
-
"bevy_diagnostic",
1158
-
"bevy_ecs",
1159
-
"bevy_encase_derive",
1160
-
"bevy_image",
1161
-
"bevy_math",
1162
-
"bevy_mesh",
1163
-
"bevy_platform",
1164
-
"bevy_reflect",
1165
-
"bevy_render_macros",
1166
-
"bevy_tasks",
1167
-
"bevy_time",
1168
-
"bevy_transform",
1169
-
"bevy_utils",
1170
-
"bevy_window",
1171
-
"bitflags 2.9.0",
1172
-
"bytemuck",
1173
-
"codespan-reporting 0.11.1",
1174
-
"derive_more",
1175
-
"downcast-rs 2.0.1",
1176
-
"encase",
1177
-
"fixedbitset",
1178
-
"futures-lite",
1179
-
"image 0.25.6",
1180
-
"indexmap",
1181
-
"js-sys",
1182
-
"ktx2",
1183
-
"naga 24.0.0",
1184
-
"naga_oil",
1185
-
"nonmax",
1186
-
"offset-allocator",
1187
-
"send_wrapper",
1188
-
"serde",
1189
-
"smallvec",
1190
-
"thiserror 2.0.12",
1191
-
"tracing",
1192
-
"variadics_please",
1193
-
"wasm-bindgen",
1194
-
"web-sys",
1195
-
"wgpu 24.0.3",
1196
-
]
1197
-
1198
-
[[package]]
1199
-
name = "bevy_render_macros"
1200
-
version = "0.16.0"
1201
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1202
-
checksum = "b85c4fb26b66d3a257b655485d11b9b6df9d3c85026493ba8092767a5edfc1b2"
1203
-
dependencies = [
1204
-
"bevy_macro_utils",
1205
-
"proc-macro2",
1206
-
"quote",
1207
-
"syn 2.0.101",
1208
-
]
1209
-
1210
-
[[package]]
1211
-
name = "bevy_scene"
1212
-
version = "0.16.0"
1213
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1214
-
checksum = "e7b628f560f2d2fe9f35ecd4526627ba3992f082de03fd745536e4053a0266fe"
1215
-
dependencies = [
1216
-
"bevy_app",
1217
-
"bevy_asset",
1218
-
"bevy_derive",
1219
-
"bevy_ecs",
1220
-
"bevy_platform",
1221
-
"bevy_reflect",
1222
-
"bevy_render",
1223
-
"bevy_transform",
1224
-
"bevy_utils",
1225
-
"derive_more",
1226
-
"serde",
1227
-
"thiserror 2.0.12",
1228
-
"uuid",
1229
-
]
1230
-
1231
-
[[package]]
1232
-
name = "bevy_sprite"
1233
-
version = "0.16.0"
1234
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1235
-
checksum = "01f97bf54fb1c37a1077139b59bb32bc77f7ca53149cfcaa512adbb69a2d492c"
1236
-
dependencies = [
1237
-
"bevy_app",
1238
-
"bevy_asset",
1239
-
"bevy_color",
1240
-
"bevy_core_pipeline",
1241
-
"bevy_derive",
1242
-
"bevy_ecs",
1243
-
"bevy_image",
1244
-
"bevy_math",
1245
-
"bevy_picking",
1246
-
"bevy_platform",
1247
-
"bevy_reflect",
1248
-
"bevy_render",
1249
-
"bevy_transform",
1250
-
"bevy_utils",
1251
-
"bevy_window",
1252
-
"bitflags 2.9.0",
1253
-
"bytemuck",
1254
-
"derive_more",
1255
-
"fixedbitset",
1256
-
"nonmax",
1257
-
"radsort",
1258
-
"tracing",
1259
-
]
1260
-
1261
-
[[package]]
1262
-
name = "bevy_state"
1263
-
version = "0.16.0"
1264
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1265
-
checksum = "682c343c354b191fe6669823bce3b0695ee1ae4ac36f582e29c436a72b67cdd5"
1266
-
dependencies = [
1267
-
"bevy_app",
1268
-
"bevy_ecs",
1269
-
"bevy_platform",
1270
-
"bevy_reflect",
1271
-
"bevy_state_macros",
1272
-
"bevy_utils",
1273
-
"log",
1274
-
"variadics_please",
1275
-
]
1276
-
1277
-
[[package]]
1278
-
name = "bevy_state_macros"
1279
-
version = "0.16.0"
1280
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1281
-
checksum = "55b4bf3970c4f0e60572901df4641656722172c222d71a80c430d36b0e31426c"
1282
-
dependencies = [
1283
-
"bevy_macro_utils",
1284
-
"proc-macro2",
1285
-
"quote",
1286
-
"syn 2.0.101",
1287
-
]
1288
-
1289
-
[[package]]
1290
-
name = "bevy_tasks"
1291
-
version = "0.16.0"
1292
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1293
-
checksum = "444c450b65e108855f42ecb6db0c041a56ea7d7f10cc6222f0ca95e9536a7d19"
1294
-
dependencies = [
1295
-
"async-channel",
1296
-
"async-executor",
1297
-
"async-task",
1298
-
"atomic-waker",
1299
-
"bevy_platform",
1300
-
"cfg-if",
1301
-
"concurrent-queue",
1302
-
"crossbeam-queue",
1303
-
"derive_more",
1304
-
"futures-channel",
1305
-
"futures-lite",
1306
-
"heapless",
1307
-
"pin-project",
1308
-
"wasm-bindgen-futures",
1309
-
]
1310
-
1311
-
[[package]]
1312
-
name = "bevy_text"
1313
-
version = "0.16.0"
1314
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1315
-
checksum = "8ef071262c5a9afbc39caba4c0b282c7d045fbb5cf33bdab1924bd2343403833"
1316
-
dependencies = [
1317
-
"bevy_app",
1318
-
"bevy_asset",
1319
-
"bevy_color",
1320
-
"bevy_derive",
1321
-
"bevy_ecs",
1322
-
"bevy_image",
1323
-
"bevy_log",
1324
-
"bevy_math",
1325
-
"bevy_platform",
1326
-
"bevy_reflect",
1327
-
"bevy_render",
1328
-
"bevy_sprite",
1329
-
"bevy_transform",
1330
-
"bevy_utils",
1331
-
"bevy_window",
1332
-
"cosmic-text",
1333
-
"serde",
1334
-
"smallvec",
1335
-
"sys-locale",
1336
-
"thiserror 2.0.12",
1337
-
"tracing",
1338
-
"unicode-bidi",
1339
-
]
1340
-
1341
-
[[package]]
1342
-
name = "bevy_time"
1343
-
version = "0.16.0"
1344
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1345
-
checksum = "456369ca10f8e039aaf273332744674844827854833ee29e28f9e161702f2f55"
1346
-
dependencies = [
1347
-
"bevy_app",
1348
-
"bevy_ecs",
1349
-
"bevy_platform",
1350
-
"bevy_reflect",
1351
-
"crossbeam-channel",
1352
-
"log",
1353
-
"serde",
1354
-
]
1355
-
1356
-
[[package]]
1357
-
name = "bevy_transform"
1358
-
version = "0.16.0"
1359
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1360
-
checksum = "8479cdd5461246943956a7c8347e4e5d6ff857e57add889fb50eee0b5c26ab48"
1361
-
dependencies = [
1362
-
"bevy_app",
1363
-
"bevy_ecs",
1364
-
"bevy_log",
1365
-
"bevy_math",
1366
-
"bevy_reflect",
1367
-
"bevy_tasks",
1368
-
"bevy_utils",
1369
-
"derive_more",
1370
-
"serde",
1371
-
"thiserror 2.0.12",
1372
-
]
1373
-
1374
-
[[package]]
1375
-
name = "bevy_ui"
1376
-
version = "0.16.0"
1377
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1378
-
checksum = "110dc5d0059f112263512be8cd7bfe0466dfb7c26b9bf4c74529355249fd23f9"
1379
-
dependencies = [
1380
-
"accesskit",
1381
-
"bevy_a11y",
1382
-
"bevy_app",
1383
-
"bevy_asset",
1384
-
"bevy_color",
1385
-
"bevy_core_pipeline",
1386
-
"bevy_derive",
1387
-
"bevy_ecs",
1388
-
"bevy_image",
1389
-
"bevy_input",
1390
-
"bevy_math",
1391
-
"bevy_picking",
1392
-
"bevy_platform",
1393
-
"bevy_reflect",
1394
-
"bevy_render",
1395
-
"bevy_sprite",
1396
-
"bevy_text",
1397
-
"bevy_transform",
1398
-
"bevy_utils",
1399
-
"bevy_window",
1400
-
"bytemuck",
1401
-
"derive_more",
1402
-
"nonmax",
1403
-
"smallvec",
1404
-
"taffy",
1405
-
"thiserror 2.0.12",
1406
-
"tracing",
1407
-
]
1408
-
1409
-
[[package]]
1410
-
name = "bevy_utils"
1411
-
version = "0.16.0"
1412
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1413
-
checksum = "ac2da3b3c1f94dadefcbe837aaa4aa119fcea37f7bdc5307eb05b4ede1921e24"
1414
-
dependencies = [
1415
-
"bevy_platform",
1416
-
"thread_local",
1417
-
]
1418
-
1419
-
[[package]]
1420
-
name = "bevy_viewer"
1421
-
version = "0.1.0"
1422
-
dependencies = [
1423
-
"bevy",
1424
-
"bevy_egui",
1425
-
"binrw",
1426
-
"futures",
1427
-
"image 0.25.6",
1428
-
"vfl",
1429
-
]
1430
-
1431
-
[[package]]
1432
-
name = "bevy_window"
1433
-
version = "0.16.0"
1434
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1435
-
checksum = "0d83327cc5584da463d12b7a88ddb97f9e006828832287e1564531171fffdeb4"
1436
-
dependencies = [
1437
-
"android-activity",
1438
-
"bevy_app",
1439
-
"bevy_ecs",
1440
-
"bevy_input",
1441
-
"bevy_math",
1442
-
"bevy_platform",
1443
-
"bevy_reflect",
1444
-
"bevy_utils",
1445
-
"log",
1446
-
"raw-window-handle",
1447
-
"serde",
1448
-
"smol_str",
1449
-
]
1450
-
1451
-
[[package]]
1452
-
name = "bevy_winit"
1453
-
version = "0.16.0"
1454
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1455
-
checksum = "57b14928923ae4274f4b867dce3d0e7b2c8a31bebcb0f6e65a4261c3e0765064"
1456
-
dependencies = [
1457
-
"accesskit",
1458
-
"accesskit_winit",
1459
-
"approx",
1460
-
"bevy_a11y",
1461
-
"bevy_app",
1462
-
"bevy_asset",
1463
-
"bevy_derive",
1464
-
"bevy_ecs",
1465
-
"bevy_image",
1466
-
"bevy_input",
1467
-
"bevy_input_focus",
1468
-
"bevy_log",
1469
-
"bevy_math",
1470
-
"bevy_platform",
1471
-
"bevy_reflect",
1472
-
"bevy_tasks",
1473
-
"bevy_utils",
1474
-
"bevy_window",
1475
-
"bytemuck",
1476
-
"cfg-if",
1477
-
"crossbeam-channel",
1478
-
"raw-window-handle",
1479
-
"tracing",
1480
-
"wasm-bindgen",
1481
-
"web-sys",
1482
-
"wgpu-types 24.0.0",
1483
-
"winit",
1484
-
]
1485
-
1486
-
[[package]]
1487
-
name = "bindgen"
1488
-
version = "0.70.1"
1489
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1490
-
checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f"
1491
-
dependencies = [
1492
-
"bitflags 2.9.0",
1493
-
"cexpr",
1494
-
"clang-sys",
1495
-
"itertools 0.13.0",
1496
-
"log",
1497
-
"prettyplease",
1498
-
"proc-macro2",
1499
-
"quote",
1500
-
"regex",
1501
-
"rustc-hash",
1502
-
"shlex",
1503
-
"syn 2.0.101",
1504
-
]
1505
-
1506
-
[[package]]
1507
189
name = "binrw"
1508
190
version = "0.15.0"
1509
191
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1529
211
1530
212
[[package]]
1531
213
name = "bit-set"
1532
-
version = "0.5.3"
1533
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1534
-
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
1535
-
dependencies = [
1536
-
"bit-vec 0.6.3",
1537
-
]
1538
-
1539
-
[[package]]
1540
-
name = "bit-set"
1541
214
version = "0.8.0"
1542
215
source = "registry+https://github.com/rust-lang/crates.io-index"
1543
216
checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
1544
217
dependencies = [
1545
-
"bit-vec 0.8.0",
218
+
"bit-vec",
1546
219
]
1547
-
1548
-
[[package]]
1549
-
name = "bit-vec"
1550
-
version = "0.6.3"
1551
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1552
-
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
1553
220
1554
221
[[package]]
1555
222
name = "bit-vec"
···
1585
252
checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2"
1586
253
1587
254
[[package]]
1588
-
name = "blake3"
1589
-
version = "1.8.2"
1590
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1591
-
checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
1592
-
dependencies = [
1593
-
"arrayref",
1594
-
"arrayvec",
1595
-
"cc",
1596
-
"cfg-if",
1597
-
"constant_time_eq",
1598
-
]
1599
-
1600
-
[[package]]
1601
255
name = "block"
1602
256
version = "0.1.6"
1603
257
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1609
263
source = "registry+https://github.com/rust-lang/crates.io-index"
1610
264
checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
1611
265
dependencies = [
1612
-
"objc2 0.5.2",
1613
-
]
1614
-
1615
-
[[package]]
1616
-
name = "blocking"
1617
-
version = "1.6.1"
1618
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1619
-
checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
1620
-
dependencies = [
1621
-
"async-channel",
1622
-
"async-task",
1623
-
"futures-io",
1624
-
"futures-lite",
1625
-
"piper",
266
+
"objc2",
1626
267
]
1627
268
1628
269
[[package]]
···
1719
360
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
1720
361
1721
362
[[package]]
1722
-
name = "cexpr"
1723
-
version = "0.6.0"
1724
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1725
-
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
1726
-
dependencies = [
1727
-
"nom",
1728
-
]
1729
-
1730
-
[[package]]
1731
363
name = "cfg-expr"
1732
364
version = "0.15.8"
1733
365
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1750
382
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
1751
383
1752
384
[[package]]
1753
-
name = "clang-sys"
1754
-
version = "1.8.1"
1755
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1756
-
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
1757
-
dependencies = [
1758
-
"glob",
1759
-
"libc",
1760
-
"libloading",
1761
-
]
1762
-
1763
-
[[package]]
1764
-
name = "clipboard-win"
1765
-
version = "5.4.0"
1766
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1767
-
checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892"
1768
-
dependencies = [
1769
-
"error-code",
1770
-
]
1771
-
1772
-
[[package]]
1773
-
name = "codespan-reporting"
1774
-
version = "0.11.1"
1775
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1776
-
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
1777
-
dependencies = [
1778
-
"termcolor",
1779
-
"unicode-width",
1780
-
]
1781
-
1782
-
[[package]]
1783
385
name = "codespan-reporting"
1784
386
version = "0.12.0"
1785
387
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1813
415
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
1814
416
dependencies = [
1815
417
"crossbeam-utils",
1816
-
"portable-atomic",
1817
-
]
1818
-
1819
-
[[package]]
1820
-
name = "console_error_panic_hook"
1821
-
version = "0.1.7"
1822
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1823
-
checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
1824
-
dependencies = [
1825
-
"cfg-if",
1826
-
"wasm-bindgen",
1827
-
]
1828
-
1829
-
[[package]]
1830
-
name = "const-fnv1a-hash"
1831
-
version = "1.1.0"
1832
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1833
-
checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca"
1834
-
1835
-
[[package]]
1836
-
name = "const_panic"
1837
-
version = "0.2.12"
1838
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1839
-
checksum = "2459fc9262a1aa204eb4b5764ad4f189caec88aea9634389c0a25f8be7f6265e"
1840
-
1841
-
[[package]]
1842
-
name = "const_soft_float"
1843
-
version = "0.1.4"
1844
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1845
-
checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff"
1846
-
1847
-
[[package]]
1848
-
name = "constant_time_eq"
1849
-
version = "0.3.1"
1850
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1851
-
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
1852
-
1853
-
[[package]]
1854
-
name = "constgebra"
1855
-
version = "0.1.4"
1856
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1857
-
checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc"
1858
-
dependencies = [
1859
-
"const_soft_float",
1860
418
]
1861
419
1862
420
[[package]]
···
1879
437
]
1880
438
1881
439
[[package]]
1882
-
name = "core-foundation"
1883
-
version = "0.10.0"
1884
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1885
-
checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63"
1886
-
dependencies = [
1887
-
"core-foundation-sys",
1888
-
"libc",
1889
-
]
1890
-
1891
-
[[package]]
1892
440
name = "core-foundation-sys"
1893
441
version = "0.8.7"
1894
442
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1901
449
checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
1902
450
dependencies = [
1903
451
"bitflags 1.3.2",
1904
-
"core-foundation 0.9.4",
452
+
"core-foundation",
1905
453
"core-graphics-types",
1906
454
"foreign-types",
1907
455
"libc",
···
1914
462
checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
1915
463
dependencies = [
1916
464
"bitflags 1.3.2",
1917
-
"core-foundation 0.9.4",
465
+
"core-foundation",
1918
466
"libc",
1919
467
]
1920
468
1921
469
[[package]]
1922
-
name = "coreaudio-rs"
1923
-
version = "0.11.3"
1924
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1925
-
checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace"
1926
-
dependencies = [
1927
-
"bitflags 1.3.2",
1928
-
"core-foundation-sys",
1929
-
"coreaudio-sys",
1930
-
]
1931
-
1932
-
[[package]]
1933
-
name = "coreaudio-sys"
1934
-
version = "0.2.16"
1935
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1936
-
checksum = "2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b"
1937
-
dependencies = [
1938
-
"bindgen",
1939
-
]
1940
-
1941
-
[[package]]
1942
-
name = "cosmic-text"
1943
-
version = "0.13.2"
1944
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1945
-
checksum = "e418dd4f5128c3e93eab12246391c54a20c496811131f85754dc8152ee207892"
1946
-
dependencies = [
1947
-
"bitflags 2.9.0",
1948
-
"fontdb",
1949
-
"log",
1950
-
"rangemap",
1951
-
"rustc-hash",
1952
-
"rustybuzz",
1953
-
"self_cell",
1954
-
"smol_str",
1955
-
"swash",
1956
-
"sys-locale",
1957
-
"ttf-parser 0.21.1",
1958
-
"unicode-bidi",
1959
-
"unicode-linebreak",
1960
-
"unicode-script",
1961
-
"unicode-segmentation",
1962
-
]
1963
-
1964
-
[[package]]
1965
-
name = "cpal"
1966
-
version = "0.15.3"
1967
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1968
-
checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779"
1969
-
dependencies = [
1970
-
"alsa",
1971
-
"core-foundation-sys",
1972
-
"coreaudio-rs",
1973
-
"dasp_sample",
1974
-
"jni",
1975
-
"js-sys",
1976
-
"libc",
1977
-
"mach2",
1978
-
"ndk 0.8.0",
1979
-
"ndk-context",
1980
-
"oboe",
1981
-
"wasm-bindgen",
1982
-
"wasm-bindgen-futures",
1983
-
"web-sys",
1984
-
"windows 0.54.0",
1985
-
]
1986
-
1987
-
[[package]]
1988
470
name = "crc32fast"
1989
471
version = "1.4.2"
1990
472
source = "registry+https://github.com/rust-lang/crates.io-index"
···
1994
476
]
1995
477
1996
478
[[package]]
1997
-
name = "critical-section"
1998
-
version = "1.2.0"
1999
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2000
-
checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
2001
-
2002
-
[[package]]
2003
-
name = "crossbeam-channel"
2004
-
version = "0.5.15"
2005
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2006
-
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
2007
-
dependencies = [
2008
-
"crossbeam-utils",
2009
-
]
2010
-
2011
-
[[package]]
2012
479
name = "crossbeam-deque"
2013
480
version = "0.8.6"
2014
481
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2028
495
]
2029
496
2030
497
[[package]]
2031
-
name = "crossbeam-queue"
2032
-
version = "0.3.12"
2033
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2034
-
checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
2035
-
dependencies = [
2036
-
"crossbeam-utils",
2037
-
]
2038
-
2039
-
[[package]]
2040
498
name = "crossbeam-utils"
2041
499
version = "0.8.21"
2042
500
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2049
507
checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
2050
508
2051
509
[[package]]
2052
-
name = "ctrlc"
2053
-
version = "3.4.6"
2054
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2055
-
checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c"
2056
-
dependencies = [
2057
-
"nix",
2058
-
"windows-sys 0.59.0",
2059
-
]
2060
-
2061
-
[[package]]
2062
510
name = "cursor-icon"
2063
511
version = "1.1.0"
2064
512
source = "registry+https://github.com/rust-lang/crates.io-index"
2065
513
checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
2066
514
2067
515
[[package]]
2068
-
name = "dasp_sample"
2069
-
version = "0.11.0"
2070
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2071
-
checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
2072
-
2073
-
[[package]]
2074
-
name = "data-encoding"
2075
-
version = "2.9.0"
2076
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2077
-
checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
2078
-
2079
-
[[package]]
2080
-
name = "derive_more"
2081
-
version = "1.0.0"
2082
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2083
-
checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
2084
-
dependencies = [
2085
-
"derive_more-impl",
2086
-
]
2087
-
2088
-
[[package]]
2089
-
name = "derive_more-impl"
2090
-
version = "1.0.0"
2091
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2092
-
checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
2093
-
dependencies = [
2094
-
"proc-macro2",
2095
-
"quote",
2096
-
"syn 2.0.101",
2097
-
"unicode-xid",
2098
-
]
2099
-
2100
-
[[package]]
2101
516
name = "dispatch"
2102
517
version = "0.2.0"
2103
518
source = "registry+https://github.com/rust-lang/crates.io-index"
2104
519
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
2105
520
2106
521
[[package]]
2107
-
name = "dispatch2"
2108
-
version = "0.3.0"
2109
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2110
-
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
2111
-
dependencies = [
2112
-
"bitflags 2.9.0",
2113
-
"objc2 0.6.1",
2114
-
]
2115
-
2116
-
[[package]]
2117
-
name = "displaydoc"
2118
-
version = "0.2.5"
2119
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2120
-
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
2121
-
dependencies = [
2122
-
"proc-macro2",
2123
-
"quote",
2124
-
"syn 2.0.101",
2125
-
]
2126
-
2127
-
[[package]]
2128
-
name = "disqualified"
2129
-
version = "1.0.0"
2130
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2131
-
checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd"
2132
-
2133
-
[[package]]
2134
522
name = "dlib"
2135
523
version = "0.5.2"
2136
524
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2155
543
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
2156
544
2157
545
[[package]]
2158
-
name = "downcast-rs"
2159
-
version = "2.0.1"
2160
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2161
-
checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf"
2162
-
2163
-
[[package]]
2164
546
name = "dpi"
2165
547
version = "0.1.2"
2166
548
source = "registry+https://github.com/rust-lang/crates.io-index"
2167
549
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
2168
550
2169
551
[[package]]
2170
-
name = "ecolor"
2171
-
version = "0.31.1"
2172
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2173
-
checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1"
2174
-
dependencies = [
2175
-
"bytemuck",
2176
-
"emath",
2177
-
]
2178
-
2179
-
[[package]]
2180
-
name = "egui"
2181
-
version = "0.31.1"
2182
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2183
-
checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3"
2184
-
dependencies = [
2185
-
"ahash",
2186
-
"bitflags 2.9.0",
2187
-
"emath",
2188
-
"epaint",
2189
-
"nohash-hasher",
2190
-
"profiling",
2191
-
]
2192
-
2193
-
[[package]]
2194
552
name = "either"
2195
553
version = "1.15.0"
2196
554
source = "registry+https://github.com/rust-lang/crates.io-index"
2197
555
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
2198
556
2199
557
[[package]]
2200
-
name = "emath"
2201
-
version = "0.31.1"
2202
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2203
-
checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b"
2204
-
dependencies = [
2205
-
"bytemuck",
2206
-
]
2207
-
2208
-
[[package]]
2209
-
name = "encase"
2210
-
version = "0.10.0"
2211
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2212
-
checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020"
2213
-
dependencies = [
2214
-
"const_panic",
2215
-
"encase_derive",
2216
-
"glam 0.29.3",
2217
-
"thiserror 1.0.69",
2218
-
]
2219
-
2220
-
[[package]]
2221
-
name = "encase_derive"
2222
-
version = "0.10.0"
2223
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2224
-
checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85"
2225
-
dependencies = [
2226
-
"encase_derive_impl",
2227
-
]
2228
-
2229
-
[[package]]
2230
-
name = "encase_derive_impl"
2231
-
version = "0.10.0"
2232
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2233
-
checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792"
2234
-
dependencies = [
2235
-
"proc-macro2",
2236
-
"quote",
2237
-
"syn 2.0.101",
2238
-
]
2239
-
2240
-
[[package]]
2241
-
name = "epaint"
2242
-
version = "0.31.1"
2243
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2244
-
checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562"
2245
-
dependencies = [
2246
-
"ab_glyph",
2247
-
"ahash",
2248
-
"bytemuck",
2249
-
"ecolor",
2250
-
"emath",
2251
-
"epaint_default_fonts",
2252
-
"nohash-hasher",
2253
-
"parking_lot",
2254
-
"profiling",
2255
-
]
2256
-
2257
-
[[package]]
2258
-
name = "epaint_default_fonts"
2259
-
version = "0.31.1"
2260
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2261
-
checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f"
2262
-
2263
-
[[package]]
2264
558
name = "equivalent"
2265
559
version = "1.0.2"
2266
560
source = "registry+https://github.com/rust-lang/crates.io-index"
2267
561
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
2268
562
2269
563
[[package]]
2270
-
name = "erased-serde"
2271
-
version = "0.4.6"
2272
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2273
-
checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
2274
-
dependencies = [
2275
-
"serde",
2276
-
"typeid",
2277
-
]
2278
-
2279
-
[[package]]
2280
564
name = "errno"
2281
565
version = "0.3.11"
2282
566
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2287
571
]
2288
572
2289
573
[[package]]
2290
-
name = "error-code"
2291
-
version = "3.3.2"
2292
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2293
-
checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
2294
-
2295
-
[[package]]
2296
-
name = "euclid"
2297
-
version = "0.22.11"
2298
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2299
-
checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48"
2300
-
dependencies = [
2301
-
"num-traits",
2302
-
]
2303
-
2304
-
[[package]]
2305
-
name = "event-listener"
2306
-
version = "5.4.0"
2307
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2308
-
checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
2309
-
dependencies = [
2310
-
"concurrent-queue",
2311
-
"parking",
2312
-
"pin-project-lite",
2313
-
]
2314
-
2315
-
[[package]]
2316
-
name = "event-listener-strategy"
2317
-
version = "0.5.4"
2318
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2319
-
checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
2320
-
dependencies = [
2321
-
"event-listener",
2322
-
"pin-project-lite",
2323
-
]
2324
-
2325
-
[[package]]
2326
574
name = "exr"
2327
575
version = "1.73.0"
2328
576
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2338
586
]
2339
587
2340
588
[[package]]
2341
-
name = "fastrand"
2342
-
version = "2.3.0"
2343
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2344
-
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
2345
-
2346
-
[[package]]
2347
589
name = "fdeflate"
2348
590
version = "0.3.7"
2349
591
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2353
595
]
2354
596
2355
597
[[package]]
2356
-
name = "fixedbitset"
2357
-
version = "0.5.7"
2358
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2359
-
checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
2360
-
2361
-
[[package]]
2362
598
name = "flate2"
2363
599
version = "1.1.1"
2364
600
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2369
605
]
2370
606
2371
607
[[package]]
2372
-
name = "fnv"
2373
-
version = "1.0.7"
2374
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2375
-
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
2376
-
2377
-
[[package]]
2378
608
name = "foldhash"
2379
609
version = "0.1.5"
2380
610
source = "registry+https://github.com/rust-lang/crates.io-index"
2381
611
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
2382
612
2383
613
[[package]]
2384
-
name = "font-types"
2385
-
version = "0.9.0"
2386
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2387
-
checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7"
2388
-
dependencies = [
2389
-
"bytemuck",
2390
-
]
2391
-
2392
-
[[package]]
2393
-
name = "fontconfig-parser"
2394
-
version = "0.5.7"
2395
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2396
-
checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7"
2397
-
dependencies = [
2398
-
"roxmltree",
2399
-
]
2400
-
2401
-
[[package]]
2402
-
name = "fontdb"
2403
-
version = "0.16.2"
2404
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2405
-
checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
2406
-
dependencies = [
2407
-
"fontconfig-parser",
2408
-
"log",
2409
-
"memmap2",
2410
-
"slotmap",
2411
-
"tinyvec",
2412
-
"ttf-parser 0.20.0",
2413
-
]
2414
-
2415
-
[[package]]
2416
614
name = "foreign-types"
2417
615
version = "0.5.0"
2418
616
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2440
638
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
2441
639
2442
640
[[package]]
2443
-
name = "form_urlencoded"
2444
-
version = "1.2.1"
2445
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2446
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
2447
-
dependencies = [
2448
-
"percent-encoding",
2449
-
]
2450
-
2451
-
[[package]]
2452
-
name = "futures"
2453
-
version = "0.3.31"
2454
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2455
-
checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
2456
-
dependencies = [
2457
-
"futures-channel",
2458
-
"futures-core",
2459
-
"futures-executor",
2460
-
"futures-io",
2461
-
"futures-sink",
2462
-
"futures-task",
2463
-
"futures-util",
2464
-
]
2465
-
2466
-
[[package]]
2467
-
name = "futures-channel"
2468
-
version = "0.3.31"
2469
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2470
-
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
2471
-
dependencies = [
2472
-
"futures-core",
2473
-
"futures-sink",
2474
-
]
2475
-
2476
-
[[package]]
2477
641
name = "futures-core"
2478
642
version = "0.3.31"
2479
643
source = "registry+https://github.com/rust-lang/crates.io-index"
2480
644
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
2481
645
2482
646
[[package]]
2483
-
name = "futures-executor"
2484
-
version = "0.3.31"
2485
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2486
-
checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
2487
-
dependencies = [
2488
-
"futures-core",
2489
-
"futures-task",
2490
-
"futures-util",
2491
-
]
2492
-
2493
-
[[package]]
2494
647
name = "futures-intrusive"
2495
648
version = "0.5.0"
2496
649
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2502
655
]
2503
656
2504
657
[[package]]
2505
-
name = "futures-io"
2506
-
version = "0.3.31"
2507
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2508
-
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
2509
-
2510
-
[[package]]
2511
-
name = "futures-lite"
2512
-
version = "2.6.0"
2513
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2514
-
checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
2515
-
dependencies = [
2516
-
"fastrand",
2517
-
"futures-core",
2518
-
"futures-io",
2519
-
"parking",
2520
-
"pin-project-lite",
2521
-
]
2522
-
2523
-
[[package]]
2524
-
name = "futures-macro"
2525
-
version = "0.3.31"
2526
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2527
-
checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
2528
-
dependencies = [
2529
-
"proc-macro2",
2530
-
"quote",
2531
-
"syn 2.0.101",
2532
-
]
2533
-
2534
-
[[package]]
2535
-
name = "futures-sink"
2536
-
version = "0.3.31"
2537
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2538
-
checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7"
2539
-
2540
-
[[package]]
2541
-
name = "futures-task"
2542
-
version = "0.3.31"
2543
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2544
-
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
2545
-
2546
-
[[package]]
2547
-
name = "futures-util"
2548
-
version = "0.3.31"
2549
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2550
-
checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81"
2551
-
dependencies = [
2552
-
"futures-channel",
2553
-
"futures-core",
2554
-
"futures-io",
2555
-
"futures-macro",
2556
-
"futures-sink",
2557
-
"futures-task",
2558
-
"memchr",
2559
-
"pin-project-lite",
2560
-
"pin-utils",
2561
-
"slab",
2562
-
]
2563
-
2564
-
[[package]]
2565
658
name = "gethostname"
2566
659
version = "0.4.3"
2567
660
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2578
671
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
2579
672
dependencies = [
2580
673
"cfg-if",
2581
-
"js-sys",
2582
674
"libc",
2583
675
"wasi 0.11.0+wasi-snapshot-preview1",
2584
-
"wasm-bindgen",
2585
676
]
2586
677
2587
678
[[package]]
···
2607
698
]
2608
699
2609
700
[[package]]
2610
-
name = "gilrs"
2611
-
version = "0.11.0"
2612
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2613
-
checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f"
2614
-
dependencies = [
2615
-
"fnv",
2616
-
"gilrs-core",
2617
-
"log",
2618
-
"uuid",
2619
-
"vec_map",
2620
-
]
2621
-
2622
-
[[package]]
2623
-
name = "gilrs-core"
2624
-
version = "0.6.4"
2625
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2626
-
checksum = "a6d95ae10ce5aa99543a28cf74e41c11f3b9e3c14f0452bbde46024753cd683e"
2627
-
dependencies = [
2628
-
"core-foundation 0.10.0",
2629
-
"inotify",
2630
-
"io-kit-sys",
2631
-
"js-sys",
2632
-
"libc",
2633
-
"libudev-sys",
2634
-
"log",
2635
-
"nix",
2636
-
"uuid",
2637
-
"vec_map",
2638
-
"wasm-bindgen",
2639
-
"web-sys",
2640
-
"windows 0.61.1",
2641
-
]
2642
-
2643
-
[[package]]
2644
701
name = "gl_generator"
2645
702
version = "0.14.0"
2646
703
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2653
710
2654
711
[[package]]
2655
712
name = "glam"
2656
-
version = "0.29.3"
2657
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2658
-
checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee"
2659
-
dependencies = [
2660
-
"bytemuck",
2661
-
"libm",
2662
-
"rand",
2663
-
"serde",
2664
-
]
2665
-
2666
-
[[package]]
2667
-
name = "glam"
2668
713
version = "0.30.3"
2669
714
source = "registry+https://github.com/rust-lang/crates.io-index"
2670
715
checksum = "6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7"
···
2674
719
]
2675
720
2676
721
[[package]]
2677
-
name = "glob"
2678
-
version = "0.3.2"
2679
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2680
-
checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
2681
-
2682
-
[[package]]
2683
722
name = "glow"
2684
723
version = "0.16.0"
2685
724
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2692
731
]
2693
732
2694
733
[[package]]
2695
-
name = "gltf"
2696
-
version = "1.4.1"
2697
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2698
-
checksum = "e3ce1918195723ce6ac74e80542c5a96a40c2b26162c1957a5cd70799b8cacf7"
2699
-
dependencies = [
2700
-
"byteorder",
2701
-
"gltf-json",
2702
-
"lazy_static",
2703
-
"serde_json",
2704
-
]
2705
-
2706
-
[[package]]
2707
-
name = "gltf-derive"
2708
-
version = "1.4.1"
2709
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2710
-
checksum = "14070e711538afba5d6c807edb74bcb84e5dbb9211a3bf5dea0dfab5b24f4c51"
2711
-
dependencies = [
2712
-
"inflections",
2713
-
"proc-macro2",
2714
-
"quote",
2715
-
"syn 2.0.101",
2716
-
]
2717
-
2718
-
[[package]]
2719
-
name = "gltf-json"
2720
-
version = "1.4.1"
2721
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2722
-
checksum = "e6176f9d60a7eab0a877e8e96548605dedbde9190a7ae1e80bbcc1c9af03ab14"
2723
-
dependencies = [
2724
-
"gltf-derive",
2725
-
"serde",
2726
-
"serde_derive",
2727
-
"serde_json",
2728
-
]
2729
-
2730
-
[[package]]
2731
734
name = "glutin_wgl_sys"
2732
735
version = "0.6.1"
2733
736
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2764
767
"log",
2765
768
"presser",
2766
769
"thiserror 1.0.69",
2767
-
"windows 0.58.0",
770
+
"windows",
2768
771
]
2769
772
2770
773
[[package]]
···
2788
791
]
2789
792
2790
793
[[package]]
2791
-
name = "grid"
2792
-
version = "0.15.0"
2793
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2794
-
checksum = "36119f3a540b086b4e436bb2b588cf98a68863470e0e880f4d0842f112a3183a"
2795
-
2796
-
[[package]]
2797
-
name = "guillotiere"
2798
-
version = "0.6.2"
2799
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2800
-
checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
2801
-
dependencies = [
2802
-
"euclid",
2803
-
"svg_fmt",
2804
-
]
2805
-
2806
-
[[package]]
2807
794
name = "half"
2808
795
version = "2.6.0"
2809
796
source = "registry+https://github.com/rust-lang/crates.io-index"
···
2815
802
]
2816
803
2817
804
[[package]]
2818
-
name = "hash32"
2819
-
version = "0.3.1"
2820
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2821
-
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
2822
-
dependencies = [
2823
-
"byteorder",
2824
-
]
2825
-
2826
-
[[package]]
2827
805
name = "hashbrown"
2828
806
version = "0.15.3"
2829
807
source = "registry+https://github.com/rust-lang/crates.io-index"
2830
808
checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
2831
809
dependencies = [
2832
-
"equivalent",
2833
810
"foldhash",
2834
-
"serde",
2835
-
]
2836
-
2837
-
[[package]]
2838
-
name = "heapless"
2839
-
version = "0.8.0"
2840
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2841
-
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
2842
-
dependencies = [
2843
-
"hash32",
2844
-
"portable-atomic",
2845
-
"stable_deref_trait",
2846
811
]
2847
812
2848
813
[[package]]
···
2858
823
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
2859
824
2860
825
[[package]]
2861
-
name = "hexasphere"
2862
-
version = "15.1.0"
2863
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2864
-
checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679"
2865
-
dependencies = [
2866
-
"constgebra",
2867
-
"glam 0.29.3",
2868
-
"tinyvec",
2869
-
]
2870
-
2871
-
[[package]]
2872
826
name = "hexf-parse"
2873
827
version = "0.2.1"
2874
828
source = "registry+https://github.com/rust-lang/crates.io-index"
2875
829
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
2876
830
2877
831
[[package]]
2878
-
name = "home"
2879
-
version = "0.5.11"
2880
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2881
-
checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"
2882
-
dependencies = [
2883
-
"windows-sys 0.59.0",
2884
-
]
2885
-
2886
-
[[package]]
2887
-
name = "icu_collections"
2888
-
version = "2.0.0"
2889
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2890
-
checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
2891
-
dependencies = [
2892
-
"displaydoc",
2893
-
"potential_utf",
2894
-
"yoke",
2895
-
"zerofrom",
2896
-
"zerovec",
2897
-
]
2898
-
2899
-
[[package]]
2900
-
name = "icu_locale_core"
2901
-
version = "2.0.0"
2902
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2903
-
checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
2904
-
dependencies = [
2905
-
"displaydoc",
2906
-
"litemap",
2907
-
"tinystr",
2908
-
"writeable",
2909
-
"zerovec",
2910
-
]
2911
-
2912
-
[[package]]
2913
-
name = "icu_normalizer"
2914
-
version = "2.0.0"
2915
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2916
-
checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
2917
-
dependencies = [
2918
-
"displaydoc",
2919
-
"icu_collections",
2920
-
"icu_normalizer_data",
2921
-
"icu_properties",
2922
-
"icu_provider",
2923
-
"smallvec",
2924
-
"zerovec",
2925
-
]
2926
-
2927
-
[[package]]
2928
-
name = "icu_normalizer_data"
2929
-
version = "2.0.0"
2930
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2931
-
checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
2932
-
2933
-
[[package]]
2934
-
name = "icu_properties"
2935
-
version = "2.0.0"
2936
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2937
-
checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a"
2938
-
dependencies = [
2939
-
"displaydoc",
2940
-
"icu_collections",
2941
-
"icu_locale_core",
2942
-
"icu_properties_data",
2943
-
"icu_provider",
2944
-
"potential_utf",
2945
-
"zerotrie",
2946
-
"zerovec",
2947
-
]
2948
-
2949
-
[[package]]
2950
-
name = "icu_properties_data"
2951
-
version = "2.0.0"
2952
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2953
-
checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04"
2954
-
2955
-
[[package]]
2956
-
name = "icu_provider"
2957
-
version = "2.0.0"
2958
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2959
-
checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
2960
-
dependencies = [
2961
-
"displaydoc",
2962
-
"icu_locale_core",
2963
-
"stable_deref_trait",
2964
-
"tinystr",
2965
-
"writeable",
2966
-
"yoke",
2967
-
"zerofrom",
2968
-
"zerotrie",
2969
-
"zerovec",
2970
-
]
2971
-
2972
-
[[package]]
2973
-
name = "idna"
2974
-
version = "1.0.3"
2975
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2976
-
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
2977
-
dependencies = [
2978
-
"idna_adapter",
2979
-
"smallvec",
2980
-
"utf8_iter",
2981
-
]
2982
-
2983
-
[[package]]
2984
-
name = "idna_adapter"
2985
-
version = "1.2.1"
2986
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2987
-
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
2988
-
dependencies = [
2989
-
"icu_normalizer",
2990
-
"icu_properties",
2991
-
]
2992
-
2993
-
[[package]]
2994
832
name = "image"
2995
833
version = "0.24.9"
2996
834
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3060
898
checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408"
3061
899
3062
900
[[package]]
3063
-
name = "immutable-chunkmap"
3064
-
version = "2.0.6"
3065
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3066
-
checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578"
3067
-
dependencies = [
3068
-
"arrayvec",
3069
-
]
3070
-
3071
-
[[package]]
3072
901
name = "indexmap"
3073
902
version = "2.9.0"
3074
903
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3076
905
dependencies = [
3077
906
"equivalent",
3078
907
"hashbrown",
3079
-
"serde",
3080
-
]
3081
-
3082
-
[[package]]
3083
-
name = "inflections"
3084
-
version = "1.1.1"
3085
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3086
-
checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
3087
-
3088
-
[[package]]
3089
-
name = "inotify"
3090
-
version = "0.11.0"
3091
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3092
-
checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
3093
-
dependencies = [
3094
-
"bitflags 2.9.0",
3095
-
"inotify-sys",
3096
-
"libc",
3097
-
]
3098
-
3099
-
[[package]]
3100
-
name = "inotify-sys"
3101
-
version = "0.1.5"
3102
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3103
-
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
3104
-
dependencies = [
3105
-
"libc",
3106
908
]
3107
909
3108
910
[[package]]
···
3117
919
]
3118
920
3119
921
[[package]]
3120
-
name = "io-kit-sys"
3121
-
version = "0.4.1"
3122
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3123
-
checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b"
3124
-
dependencies = [
3125
-
"core-foundation-sys",
3126
-
"mach2",
3127
-
]
3128
-
3129
-
[[package]]
3130
922
name = "itertools"
3131
923
version = "0.12.1"
3132
924
source = "registry+https://github.com/rust-lang/crates.io-index"
3133
925
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
3134
-
dependencies = [
3135
-
"either",
3136
-
]
3137
-
3138
-
[[package]]
3139
-
name = "itertools"
3140
-
version = "0.13.0"
3141
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3142
-
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
3143
926
dependencies = [
3144
927
"either",
3145
928
]
···
3228
1011
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
3229
1012
3230
1013
[[package]]
3231
-
name = "ktx2"
3232
-
version = "0.3.0"
3233
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3234
-
checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838"
3235
-
dependencies = [
3236
-
"bitflags 1.3.2",
3237
-
]
3238
-
3239
-
[[package]]
3240
-
name = "lazy_static"
3241
-
version = "1.5.0"
3242
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3243
-
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
3244
-
3245
-
[[package]]
3246
1014
name = "lebe"
3247
1015
version = "0.5.2"
3248
1016
source = "registry+https://github.com/rust-lang/crates.io-index"
3249
1017
checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
3250
1018
3251
1019
[[package]]
3252
-
name = "lewton"
3253
-
version = "0.10.2"
3254
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3255
-
checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
3256
-
dependencies = [
3257
-
"byteorder",
3258
-
"ogg",
3259
-
"tinyvec",
3260
-
]
3261
-
3262
-
[[package]]
3263
1020
name = "libc"
3264
1021
version = "0.2.172"
3265
1022
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3303
1060
]
3304
1061
3305
1062
[[package]]
3306
-
name = "libudev-sys"
3307
-
version = "0.1.4"
3308
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3309
-
checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
3310
-
dependencies = [
3311
-
"libc",
3312
-
"pkg-config",
3313
-
]
3314
-
3315
-
[[package]]
3316
1063
name = "lightweight_viewer"
3317
1064
version = "0.1.0"
3318
1065
dependencies = [
3319
1066
"bytemuck",
3320
-
"glam 0.30.3",
1067
+
"glam",
3321
1068
"image 0.25.6",
3322
1069
"nalgebra 0.33.2",
3323
1070
"nest_struct",
3324
1071
"pollster",
1072
+
"vee_wgpu",
3325
1073
"vfl",
3326
-
"wgpu 25.0.0",
1074
+
"wgpu",
3327
1075
"winit",
3328
1076
]
3329
1077
···
3332
1080
version = "0.4.15"
3333
1081
source = "registry+https://github.com/rust-lang/crates.io-index"
3334
1082
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
3335
-
3336
-
[[package]]
3337
-
name = "litemap"
3338
-
version = "0.8.0"
3339
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3340
-
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
3341
1083
3342
1084
[[package]]
3343
1085
name = "litrs"
···
3371
1113
]
3372
1114
3373
1115
[[package]]
3374
-
name = "mach2"
3375
-
version = "0.4.2"
3376
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3377
-
checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
3378
-
dependencies = [
3379
-
"libc",
3380
-
]
3381
-
3382
-
[[package]]
3383
1116
name = "malloc_buf"
3384
1117
version = "0.0.6"
3385
1118
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3389
1122
]
3390
1123
3391
1124
[[package]]
3392
-
name = "matchers"
3393
-
version = "0.1.0"
3394
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3395
-
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
3396
-
dependencies = [
3397
-
"regex-automata 0.1.10",
3398
-
]
3399
-
3400
-
[[package]]
3401
1125
name = "matrixmultiply"
3402
1126
version = "0.3.9"
3403
1127
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3438
1162
source = "registry+https://github.com/rust-lang/crates.io-index"
3439
1163
checksum = "9b07c5e96a6080555d650321a81c7e3cd68b08261f63ee5db2b069a50f5ce7db"
3440
1164
dependencies = [
3441
-
"base64 0.13.1",
1165
+
"base64",
3442
1166
"byteorder",
3443
1167
"image 0.24.9",
3444
1168
"nalgebra 0.31.4",
···
3487
1211
3488
1212
[[package]]
3489
1213
name = "naga"
3490
-
version = "24.0.0"
3491
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3492
-
checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e"
3493
-
dependencies = [
3494
-
"arrayvec",
3495
-
"bit-set 0.8.0",
3496
-
"bitflags 2.9.0",
3497
-
"cfg_aliases",
3498
-
"codespan-reporting 0.11.1",
3499
-
"hexf-parse",
3500
-
"indexmap",
3501
-
"log",
3502
-
"pp-rs",
3503
-
"rustc-hash",
3504
-
"spirv",
3505
-
"strum",
3506
-
"termcolor",
3507
-
"thiserror 2.0.12",
3508
-
"unicode-xid",
3509
-
]
3510
-
3511
-
[[package]]
3512
-
name = "naga"
3513
1214
version = "25.0.1"
3514
1215
source = "registry+https://github.com/rust-lang/crates.io-index"
3515
1216
checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632"
3516
1217
dependencies = [
3517
1218
"arrayvec",
3518
-
"bit-set 0.8.0",
1219
+
"bit-set",
3519
1220
"bitflags 2.9.0",
3520
1221
"cfg_aliases",
3521
-
"codespan-reporting 0.12.0",
1222
+
"codespan-reporting",
3522
1223
"half",
3523
1224
"hashbrown",
3524
1225
"hexf-parse",
···
3534
1235
]
3535
1236
3536
1237
[[package]]
3537
-
name = "naga_oil"
3538
-
version = "0.17.0"
3539
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3540
-
checksum = "0ca507a365f886f95f74420361b75442a3709c747a8a6e8b6c45b8667f45a82c"
3541
-
dependencies = [
3542
-
"bit-set 0.5.3",
3543
-
"codespan-reporting 0.11.1",
3544
-
"data-encoding",
3545
-
"indexmap",
3546
-
"naga 24.0.0",
3547
-
"once_cell",
3548
-
"regex",
3549
-
"regex-syntax 0.8.5",
3550
-
"rustc-hash",
3551
-
"thiserror 1.0.69",
3552
-
"tracing",
3553
-
"unicode-ident",
3554
-
]
3555
-
3556
-
[[package]]
3557
1238
name = "nalgebra"
3558
1239
version = "0.31.4"
3559
1240
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3610
1291
3611
1292
[[package]]
3612
1293
name = "ndk"
3613
-
version = "0.8.0"
3614
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3615
-
checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
3616
-
dependencies = [
3617
-
"bitflags 2.9.0",
3618
-
"jni-sys",
3619
-
"log",
3620
-
"ndk-sys 0.5.0+25.2.9519653",
3621
-
"num_enum",
3622
-
"thiserror 1.0.69",
3623
-
]
3624
-
3625
-
[[package]]
3626
-
name = "ndk"
3627
1294
version = "0.9.0"
3628
1295
source = "registry+https://github.com/rust-lang/crates.io-index"
3629
1296
checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
···
3680
1347
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
3681
1348
3682
1349
[[package]]
3683
-
name = "nix"
3684
-
version = "0.29.0"
3685
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3686
-
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
3687
-
dependencies = [
3688
-
"bitflags 2.9.0",
3689
-
"cfg-if",
3690
-
"cfg_aliases",
3691
-
"libc",
3692
-
]
3693
-
3694
-
[[package]]
3695
-
name = "nohash-hasher"
3696
-
version = "0.2.0"
3697
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3698
-
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
3699
-
3700
-
[[package]]
3701
1350
name = "nom"
3702
1351
version = "7.1.3"
3703
1352
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3706
1355
"memchr",
3707
1356
"minimal-lexical",
3708
1357
]
3709
-
3710
-
[[package]]
3711
-
name = "nonmax"
3712
-
version = "0.5.5"
3713
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3714
-
checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51"
3715
1358
3716
1359
[[package]]
3717
1360
name = "noop_proc_macro"
3718
1361
version = "0.3.0"
3719
1362
source = "registry+https://github.com/rust-lang/crates.io-index"
3720
1363
checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
3721
-
3722
-
[[package]]
3723
-
name = "ntapi"
3724
-
version = "0.4.1"
3725
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3726
-
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
3727
-
dependencies = [
3728
-
"winapi",
3729
-
]
3730
-
3731
-
[[package]]
3732
-
name = "nu-ansi-term"
3733
-
version = "0.46.0"
3734
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3735
-
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
3736
-
dependencies = [
3737
-
"overload",
3738
-
"winapi",
3739
-
]
3740
1364
3741
1365
[[package]]
3742
1366
name = "num-bigint"
···
3845
1469
]
3846
1470
3847
1471
[[package]]
3848
-
name = "objc2"
3849
-
version = "0.6.1"
3850
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3851
-
checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551"
3852
-
dependencies = [
3853
-
"objc2-encode",
3854
-
]
3855
-
3856
-
[[package]]
3857
1472
name = "objc2-app-kit"
3858
1473
version = "0.2.2"
3859
1474
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3862
1477
"bitflags 2.9.0",
3863
1478
"block2",
3864
1479
"libc",
3865
-
"objc2 0.5.2",
1480
+
"objc2",
3866
1481
"objc2-core-data",
3867
1482
"objc2-core-image",
3868
-
"objc2-foundation 0.2.2",
1483
+
"objc2-foundation",
3869
1484
"objc2-quartz-core",
3870
1485
]
3871
1486
3872
1487
[[package]]
3873
-
name = "objc2-app-kit"
3874
-
version = "0.3.1"
3875
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3876
-
checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc"
3877
-
dependencies = [
3878
-
"bitflags 2.9.0",
3879
-
"objc2 0.6.1",
3880
-
"objc2-core-graphics",
3881
-
"objc2-foundation 0.3.1",
3882
-
]
3883
-
3884
-
[[package]]
3885
1488
name = "objc2-cloud-kit"
3886
1489
version = "0.2.2"
3887
1490
source = "registry+https://github.com/rust-lang/crates.io-index"
···
3889
1492
dependencies = [
3890
1493
"bitflags 2.9.0",
3891
1494
"block2",
3892
-
"objc2 0.5.2",
1495
+
"objc2",
3893
1496
"objc2-core-location",
3894
-
"objc2-foundation 0.2.2",
1497
+
"objc2-foundation",
3895
1498
]
3896
1499
3897
1500
[[package]]
···
3901
1504
checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
3902
1505
dependencies = [
3903
1506
"block2",
3904
-
"objc2 0.5.2",
3905
-
"objc2-foundation 0.2.2",
1507
+
"objc2",
1508
+
"objc2-foundation",
3906
1509
]
3907
1510
3908
1511
[[package]]
···
3913
1516
dependencies = [
3914
1517
"bitflags 2.9.0",
3915
1518
"block2",
3916
-
"objc2 0.5.2",
3917
-
"objc2-foundation 0.2.2",
3918
-
]
3919
-
3920
-
[[package]]
3921
-
name = "objc2-core-foundation"
3922
-
version = "0.3.1"
3923
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3924
-
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
3925
-
dependencies = [
3926
-
"bitflags 2.9.0",
3927
-
"dispatch2",
3928
-
"objc2 0.6.1",
3929
-
]
3930
-
3931
-
[[package]]
3932
-
name = "objc2-core-graphics"
3933
-
version = "0.3.1"
3934
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3935
-
checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4"
3936
-
dependencies = [
3937
-
"bitflags 2.9.0",
3938
-
"dispatch2",
3939
-
"objc2 0.6.1",
3940
-
"objc2-core-foundation",
3941
-
"objc2-io-surface",
1519
+
"objc2",
1520
+
"objc2-foundation",
3942
1521
]
3943
1522
3944
1523
[[package]]
···
3948
1527
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
3949
1528
dependencies = [
3950
1529
"block2",
3951
-
"objc2 0.5.2",
3952
-
"objc2-foundation 0.2.2",
1530
+
"objc2",
1531
+
"objc2-foundation",
3953
1532
"objc2-metal",
3954
1533
]
3955
1534
···
3960
1539
checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
3961
1540
dependencies = [
3962
1541
"block2",
3963
-
"objc2 0.5.2",
1542
+
"objc2",
3964
1543
"objc2-contacts",
3965
-
"objc2-foundation 0.2.2",
1544
+
"objc2-foundation",
3966
1545
]
3967
1546
3968
1547
[[package]]
···
3981
1560
"block2",
3982
1561
"dispatch",
3983
1562
"libc",
3984
-
"objc2 0.5.2",
3985
-
]
3986
-
3987
-
[[package]]
3988
-
name = "objc2-foundation"
3989
-
version = "0.3.1"
3990
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3991
-
checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c"
3992
-
dependencies = [
3993
-
"bitflags 2.9.0",
3994
-
"objc2 0.6.1",
3995
-
"objc2-core-foundation",
3996
-
]
3997
-
3998
-
[[package]]
3999
-
name = "objc2-io-surface"
4000
-
version = "0.3.1"
4001
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4002
-
checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c"
4003
-
dependencies = [
4004
-
"bitflags 2.9.0",
4005
-
"objc2 0.6.1",
4006
-
"objc2-core-foundation",
1563
+
"objc2",
4007
1564
]
4008
1565
4009
1566
[[package]]
···
4013
1570
checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
4014
1571
dependencies = [
4015
1572
"block2",
4016
-
"objc2 0.5.2",
4017
-
"objc2-app-kit 0.2.2",
4018
-
"objc2-foundation 0.2.2",
1573
+
"objc2",
1574
+
"objc2-app-kit",
1575
+
"objc2-foundation",
4019
1576
]
4020
1577
4021
1578
[[package]]
···
4026
1583
dependencies = [
4027
1584
"bitflags 2.9.0",
4028
1585
"block2",
4029
-
"objc2 0.5.2",
4030
-
"objc2-foundation 0.2.2",
1586
+
"objc2",
1587
+
"objc2-foundation",
4031
1588
]
4032
1589
4033
1590
[[package]]
···
4038
1595
dependencies = [
4039
1596
"bitflags 2.9.0",
4040
1597
"block2",
4041
-
"objc2 0.5.2",
4042
-
"objc2-foundation 0.2.2",
1598
+
"objc2",
1599
+
"objc2-foundation",
4043
1600
"objc2-metal",
4044
1601
]
4045
1602
···
4049
1606
source = "registry+https://github.com/rust-lang/crates.io-index"
4050
1607
checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc"
4051
1608
dependencies = [
4052
-
"objc2 0.5.2",
4053
-
"objc2-foundation 0.2.2",
1609
+
"objc2",
1610
+
"objc2-foundation",
4054
1611
]
4055
1612
4056
1613
[[package]]
···
4061
1618
dependencies = [
4062
1619
"bitflags 2.9.0",
4063
1620
"block2",
4064
-
"objc2 0.5.2",
1621
+
"objc2",
4065
1622
"objc2-cloud-kit",
4066
1623
"objc2-core-data",
4067
1624
"objc2-core-image",
4068
1625
"objc2-core-location",
4069
-
"objc2-foundation 0.2.2",
1626
+
"objc2-foundation",
4070
1627
"objc2-link-presentation",
4071
1628
"objc2-quartz-core",
4072
1629
"objc2-symbols",
···
4081
1638
checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
4082
1639
dependencies = [
4083
1640
"block2",
4084
-
"objc2 0.5.2",
4085
-
"objc2-foundation 0.2.2",
1641
+
"objc2",
1642
+
"objc2-foundation",
4086
1643
]
4087
1644
4088
1645
[[package]]
···
4093
1650
dependencies = [
4094
1651
"bitflags 2.9.0",
4095
1652
"block2",
4096
-
"objc2 0.5.2",
1653
+
"objc2",
4097
1654
"objc2-core-location",
4098
-
"objc2-foundation 0.2.2",
4099
-
]
4100
-
4101
-
[[package]]
4102
-
name = "oboe"
4103
-
version = "0.6.1"
4104
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4105
-
checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
4106
-
dependencies = [
4107
-
"jni",
4108
-
"ndk 0.8.0",
4109
-
"ndk-context",
4110
-
"num-derive",
4111
-
"num-traits",
4112
-
"oboe-sys",
4113
-
]
4114
-
4115
-
[[package]]
4116
-
name = "oboe-sys"
4117
-
version = "0.6.1"
4118
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4119
-
checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d"
4120
-
dependencies = [
4121
-
"cc",
4122
-
]
4123
-
4124
-
[[package]]
4125
-
name = "offset-allocator"
4126
-
version = "0.2.0"
4127
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4128
-
checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2"
4129
-
dependencies = [
4130
-
"log",
4131
-
"nonmax",
4132
-
]
4133
-
4134
-
[[package]]
4135
-
name = "ogg"
4136
-
version = "0.8.0"
4137
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4138
-
checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
4139
-
dependencies = [
4140
-
"byteorder",
1655
+
"objc2-foundation",
4141
1656
]
4142
1657
4143
1658
[[package]]
···
4163
1678
dependencies = [
4164
1679
"num-traits",
4165
1680
]
4166
-
4167
-
[[package]]
4168
-
name = "overload"
4169
-
version = "0.1.1"
4170
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4171
-
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
4172
1681
4173
1682
[[package]]
4174
1683
name = "owned_ttf_parser"
···
4176
1685
source = "registry+https://github.com/rust-lang/crates.io-index"
4177
1686
checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4"
4178
1687
dependencies = [
4179
-
"ttf-parser 0.25.1",
1688
+
"ttf-parser",
4180
1689
]
4181
1690
4182
1691
[[package]]
···
4184
1693
version = "4.2.0"
4185
1694
source = "registry+https://github.com/rust-lang/crates.io-index"
4186
1695
checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564"
4187
-
4188
-
[[package]]
4189
-
name = "parking"
4190
-
version = "2.2.1"
4191
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4192
-
checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
4193
1696
4194
1697
[[package]]
4195
1698
name = "parking_lot"
···
4227
1730
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
4228
1731
4229
1732
[[package]]
4230
-
name = "petgraph"
4231
-
version = "0.7.1"
4232
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4233
-
checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
4234
-
dependencies = [
4235
-
"fixedbitset",
4236
-
"indexmap",
4237
-
"serde",
4238
-
"serde_derive",
4239
-
]
4240
-
4241
-
[[package]]
4242
1733
name = "pin-project"
4243
1734
version = "1.1.10"
4244
1735
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4265
1756
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
4266
1757
4267
1758
[[package]]
4268
-
name = "pin-utils"
4269
-
version = "0.1.0"
4270
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4271
-
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
4272
-
4273
-
[[package]]
4274
-
name = "piper"
4275
-
version = "0.2.4"
4276
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4277
-
checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
4278
-
dependencies = [
4279
-
"atomic-waker",
4280
-
"fastrand",
4281
-
"futures-io",
4282
-
]
4283
-
4284
-
[[package]]
4285
1759
name = "pkg-config"
4286
1760
version = "0.3.32"
4287
1761
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4328
1802
checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
4329
1803
4330
1804
[[package]]
4331
-
name = "portable-atomic-util"
4332
-
version = "0.2.4"
4333
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4334
-
checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
4335
-
dependencies = [
4336
-
"portable-atomic",
4337
-
]
4338
-
4339
-
[[package]]
4340
-
name = "potential_utf"
4341
-
version = "0.1.2"
4342
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4343
-
checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
4344
-
dependencies = [
4345
-
"zerovec",
4346
-
]
4347
-
4348
-
[[package]]
4349
-
name = "pp-rs"
4350
-
version = "0.2.1"
4351
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4352
-
checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee"
4353
-
dependencies = [
4354
-
"unicode-xid",
4355
-
]
4356
-
4357
-
[[package]]
4358
1805
name = "ppv-lite86"
4359
1806
version = "0.2.21"
4360
1807
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4370
1817
checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
4371
1818
4372
1819
[[package]]
4373
-
name = "prettyplease"
4374
-
version = "0.2.32"
4375
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4376
-
checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
4377
-
dependencies = [
4378
-
"proc-macro2",
4379
-
"syn 2.0.101",
4380
-
]
4381
-
4382
-
[[package]]
4383
1820
name = "proc-macro-crate"
4384
1821
version = "3.3.0"
4385
1822
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4456
1893
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
4457
1894
4458
1895
[[package]]
4459
-
name = "radsort"
4460
-
version = "0.1.1"
4461
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4462
-
checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22"
4463
-
4464
-
[[package]]
4465
1896
name = "rand"
4466
1897
version = "0.8.5"
4467
1898
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4492
1923
]
4493
1924
4494
1925
[[package]]
4495
-
name = "rand_distr"
4496
-
version = "0.4.3"
4497
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4498
-
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
4499
-
dependencies = [
4500
-
"num-traits",
4501
-
"rand",
4502
-
]
4503
-
4504
-
[[package]]
4505
1926
name = "range-alloc"
4506
1927
version = "0.1.4"
4507
1928
source = "registry+https://github.com/rust-lang/crates.io-index"
4508
1929
checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde"
4509
-
4510
-
[[package]]
4511
-
name = "rangemap"
4512
-
version = "1.5.1"
4513
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4514
-
checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
4515
1930
4516
1931
[[package]]
4517
1932
name = "rav1e"
···
4596
2011
]
4597
2012
4598
2013
[[package]]
4599
-
name = "read-fonts"
4600
-
version = "0.29.0"
4601
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4602
-
checksum = "5ce8e2ca6b24313587a03ca61bb74c384e2a815bd90cf2866cfc9f5fb7a11fa0"
4603
-
dependencies = [
4604
-
"bytemuck",
4605
-
"font-types",
4606
-
]
4607
-
4608
-
[[package]]
4609
-
name = "rectangle-pack"
4610
-
version = "0.4.2"
4611
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4612
-
checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb"
4613
-
4614
-
[[package]]
4615
2014
name = "redox_syscall"
4616
2015
version = "0.4.1"
4617
2016
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4630
2029
]
4631
2030
4632
2031
[[package]]
4633
-
name = "regex"
4634
-
version = "1.11.1"
4635
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4636
-
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
4637
-
dependencies = [
4638
-
"aho-corasick",
4639
-
"memchr",
4640
-
"regex-automata 0.4.9",
4641
-
"regex-syntax 0.8.5",
4642
-
]
4643
-
4644
-
[[package]]
4645
-
name = "regex-automata"
4646
-
version = "0.1.10"
4647
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4648
-
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
4649
-
dependencies = [
4650
-
"regex-syntax 0.6.29",
4651
-
]
4652
-
4653
-
[[package]]
4654
-
name = "regex-automata"
4655
-
version = "0.4.9"
4656
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4657
-
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
4658
-
dependencies = [
4659
-
"aho-corasick",
4660
-
"memchr",
4661
-
"regex-syntax 0.8.5",
4662
-
]
4663
-
4664
-
[[package]]
4665
-
name = "regex-syntax"
4666
-
version = "0.6.29"
4667
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4668
-
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
4669
-
4670
-
[[package]]
4671
-
name = "regex-syntax"
4672
-
version = "0.8.5"
4673
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4674
-
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
4675
-
4676
-
[[package]]
4677
2032
name = "renderdoc-sys"
4678
2033
version = "1.1.0"
4679
2034
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4686
2041
checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a"
4687
2042
4688
2043
[[package]]
4689
-
name = "rodio"
4690
-
version = "0.20.1"
4691
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4692
-
checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1"
4693
-
dependencies = [
4694
-
"cpal",
4695
-
"lewton",
4696
-
]
4697
-
4698
-
[[package]]
4699
-
name = "ron"
4700
-
version = "0.8.1"
4701
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4702
-
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
4703
-
dependencies = [
4704
-
"base64 0.21.7",
4705
-
"bitflags 2.9.0",
4706
-
"serde",
4707
-
"serde_derive",
4708
-
]
4709
-
4710
-
[[package]]
4711
-
name = "roxmltree"
4712
-
version = "0.20.0"
4713
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4714
-
checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
4715
-
4716
-
[[package]]
4717
2044
name = "rustc-hash"
4718
2045
version = "1.1.0"
4719
2046
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4737
2064
version = "1.0.20"
4738
2065
source = "registry+https://github.com/rust-lang/crates.io-index"
4739
2066
checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2"
4740
-
4741
-
[[package]]
4742
-
name = "rustybuzz"
4743
-
version = "0.14.1"
4744
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4745
-
checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c"
4746
-
dependencies = [
4747
-
"bitflags 2.9.0",
4748
-
"bytemuck",
4749
-
"libm",
4750
-
"smallvec",
4751
-
"ttf-parser 0.21.1",
4752
-
"unicode-bidi-mirroring",
4753
-
"unicode-ccc",
4754
-
"unicode-properties",
4755
-
"unicode-script",
4756
-
]
4757
-
4758
-
[[package]]
4759
-
name = "ruzstd"
4760
-
version = "0.8.1"
4761
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4762
-
checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c"
4763
-
dependencies = [
4764
-
"twox-hash",
4765
-
]
4766
2067
4767
2068
[[package]]
4768
2069
name = "ryu"
···
4814
2115
]
4815
2116
4816
2117
[[package]]
4817
-
name = "self_cell"
4818
-
version = "1.2.0"
4819
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4820
-
checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749"
4821
-
4822
-
[[package]]
4823
-
name = "send_wrapper"
4824
-
version = "0.6.0"
4825
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4826
-
checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
4827
-
4828
-
[[package]]
4829
2118
name = "serde"
4830
2119
version = "1.0.219"
4831
2120
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4867
2156
]
4868
2157
4869
2158
[[package]]
4870
-
name = "sharded-slab"
4871
-
version = "0.1.7"
4872
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4873
-
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
4874
-
dependencies = [
4875
-
"lazy_static",
4876
-
]
4877
-
4878
-
[[package]]
4879
2159
name = "shlex"
4880
2160
version = "1.3.0"
4881
2161
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4923
2203
]
4924
2204
4925
2205
[[package]]
4926
-
name = "skrifa"
4927
-
version = "0.31.0"
4928
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4929
-
checksum = "bbe6666ab11018ab91ff7b03f1a3b9fdbecfb610848436fefa5ce50343d3d913"
4930
-
dependencies = [
4931
-
"bytemuck",
4932
-
"read-fonts",
4933
-
]
4934
-
4935
-
[[package]]
4936
2206
name = "slab"
4937
2207
version = "0.4.9"
4938
2208
source = "registry+https://github.com/rust-lang/crates.io-index"
···
4991
2261
]
4992
2262
4993
2263
[[package]]
4994
-
name = "spin"
4995
-
version = "0.9.8"
4996
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4997
-
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
4998
-
dependencies = [
4999
-
"portable-atomic",
5000
-
]
5001
-
5002
-
[[package]]
5003
2264
name = "spirv"
5004
2265
version = "0.3.0+sdk-1.3.268.0"
5005
2266
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5009
2270
]
5010
2271
5011
2272
[[package]]
5012
-
name = "stable_deref_trait"
5013
-
version = "1.2.0"
5014
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5015
-
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
5016
-
5017
-
[[package]]
5018
-
name = "stackfuture"
5019
-
version = "0.3.0"
5020
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5021
-
checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2"
5022
-
5023
-
[[package]]
5024
2273
name = "static_assertions"
5025
2274
version = "1.1.0"
5026
2275
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5055
2304
]
5056
2305
5057
2306
[[package]]
5058
-
name = "svg_fmt"
5059
-
version = "0.4.5"
5060
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5061
-
checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb"
5062
-
5063
-
[[package]]
5064
-
name = "swash"
5065
-
version = "0.2.4"
5066
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5067
-
checksum = "5dce3f0af95643c855cdc449fbaa17d8c2cd08e0b00a49a6babcbe6e71667f3d"
5068
-
dependencies = [
5069
-
"skrifa",
5070
-
"yazi",
5071
-
"zeno",
5072
-
]
5073
-
5074
-
[[package]]
5075
2307
name = "syn"
5076
2308
version = "1.0.109"
5077
2309
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5094
2326
]
5095
2327
5096
2328
[[package]]
5097
-
name = "synstructure"
5098
-
version = "0.13.2"
5099
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5100
-
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
5101
-
dependencies = [
5102
-
"proc-macro2",
5103
-
"quote",
5104
-
"syn 2.0.101",
5105
-
]
5106
-
5107
-
[[package]]
5108
-
name = "sys-locale"
5109
-
version = "0.3.2"
5110
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5111
-
checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
5112
-
dependencies = [
5113
-
"libc",
5114
-
]
5115
-
5116
-
[[package]]
5117
-
name = "sysinfo"
5118
-
version = "0.34.2"
5119
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5120
-
checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2"
5121
-
dependencies = [
5122
-
"libc",
5123
-
"memchr",
5124
-
"ntapi",
5125
-
"objc2-core-foundation",
5126
-
"windows 0.57.0",
5127
-
]
5128
-
5129
-
[[package]]
5130
2329
name = "system-deps"
5131
2330
version = "6.2.2"
5132
2331
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5140
2339
]
5141
2340
5142
2341
[[package]]
5143
-
name = "taffy"
5144
-
version = "0.7.7"
5145
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5146
-
checksum = "ab4f4d046dd956a47a7e1a2947083d7ac3e6aa3cfaaead36173ceaa5ab11878c"
5147
-
dependencies = [
5148
-
"arrayvec",
5149
-
"grid",
5150
-
"serde",
5151
-
"slotmap",
5152
-
]
5153
-
5154
-
[[package]]
5155
2342
name = "target-lexicon"
5156
2343
version = "0.12.16"
5157
2344
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5222
2409
]
5223
2410
5224
2411
[[package]]
5225
-
name = "thread_local"
5226
-
version = "1.1.8"
5227
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5228
-
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
5229
-
dependencies = [
5230
-
"cfg-if",
5231
-
"once_cell",
5232
-
]
5233
-
5234
-
[[package]]
5235
2412
name = "tiff"
5236
2413
version = "0.9.1"
5237
2414
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5268
2445
]
5269
2446
5270
2447
[[package]]
5271
-
name = "tinystr"
5272
-
version = "0.8.1"
5273
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5274
-
checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
5275
-
dependencies = [
5276
-
"displaydoc",
5277
-
"zerovec",
5278
-
]
5279
-
5280
-
[[package]]
5281
-
name = "tinyvec"
5282
-
version = "1.9.0"
5283
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5284
-
checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71"
5285
-
dependencies = [
5286
-
"tinyvec_macros",
5287
-
]
5288
-
5289
-
[[package]]
5290
-
name = "tinyvec_macros"
5291
-
version = "0.1.1"
5292
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5293
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
5294
-
5295
-
[[package]]
5296
2448
name = "toml"
5297
2449
version = "0.8.22"
5298
2450
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5333
2485
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
5334
2486
dependencies = [
5335
2487
"pin-project-lite",
5336
-
"tracing-attributes",
5337
2488
"tracing-core",
5338
2489
]
5339
2490
5340
2491
[[package]]
5341
-
name = "tracing-attributes"
5342
-
version = "0.1.28"
5343
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5344
-
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
5345
-
dependencies = [
5346
-
"proc-macro2",
5347
-
"quote",
5348
-
"syn 2.0.101",
5349
-
]
5350
-
5351
-
[[package]]
5352
2492
name = "tracing-core"
5353
2493
version = "0.1.33"
5354
2494
source = "registry+https://github.com/rust-lang/crates.io-index"
5355
2495
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
5356
-
dependencies = [
5357
-
"once_cell",
5358
-
"valuable",
5359
-
]
5360
-
5361
-
[[package]]
5362
-
name = "tracing-log"
5363
-
version = "0.2.0"
5364
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5365
-
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
5366
-
dependencies = [
5367
-
"log",
5368
-
"once_cell",
5369
-
"tracing-core",
5370
-
]
5371
-
5372
-
[[package]]
5373
-
name = "tracing-oslog"
5374
-
version = "0.2.0"
5375
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5376
-
checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e"
5377
-
dependencies = [
5378
-
"bindgen",
5379
-
"cc",
5380
-
"cfg-if",
5381
-
"once_cell",
5382
-
"parking_lot",
5383
-
"tracing-core",
5384
-
"tracing-subscriber",
5385
-
]
5386
-
5387
-
[[package]]
5388
-
name = "tracing-subscriber"
5389
-
version = "0.3.19"
5390
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5391
-
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
5392
-
dependencies = [
5393
-
"matchers",
5394
-
"nu-ansi-term",
5395
-
"once_cell",
5396
-
"regex",
5397
-
"sharded-slab",
5398
-
"smallvec",
5399
-
"thread_local",
5400
-
"tracing",
5401
-
"tracing-core",
5402
-
"tracing-log",
5403
-
]
5404
-
5405
-
[[package]]
5406
-
name = "tracing-wasm"
5407
-
version = "0.2.1"
5408
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5409
-
checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
5410
-
dependencies = [
5411
-
"tracing",
5412
-
"tracing-subscriber",
5413
-
"wasm-bindgen",
5414
-
]
5415
-
5416
-
[[package]]
5417
-
name = "ttf-parser"
5418
-
version = "0.20.0"
5419
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5420
-
checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
5421
-
5422
-
[[package]]
5423
-
name = "ttf-parser"
5424
-
version = "0.21.1"
5425
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5426
-
checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8"
5427
2496
5428
2497
[[package]]
5429
2498
name = "ttf-parser"
···
5432
2501
checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
5433
2502
5434
2503
[[package]]
5435
-
name = "twox-hash"
5436
-
version = "2.1.0"
5437
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5438
-
checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908"
5439
-
5440
-
[[package]]
5441
-
name = "typeid"
5442
-
version = "1.0.3"
5443
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5444
-
checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
5445
-
5446
-
[[package]]
5447
2504
name = "typenum"
5448
2505
version = "1.18.0"
5449
2506
source = "registry+https://github.com/rust-lang/crates.io-index"
5450
2507
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
5451
2508
5452
2509
[[package]]
5453
-
name = "unicode-bidi"
5454
-
version = "0.3.18"
5455
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5456
-
checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
5457
-
5458
-
[[package]]
5459
-
name = "unicode-bidi-mirroring"
5460
-
version = "0.2.0"
5461
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5462
-
checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86"
5463
-
5464
-
[[package]]
5465
-
name = "unicode-ccc"
5466
-
version = "0.2.0"
5467
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5468
-
checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656"
5469
-
5470
-
[[package]]
5471
2510
name = "unicode-ident"
5472
2511
version = "1.0.18"
5473
2512
source = "registry+https://github.com/rust-lang/crates.io-index"
5474
2513
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
5475
2514
5476
2515
[[package]]
5477
-
name = "unicode-linebreak"
5478
-
version = "0.1.5"
5479
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5480
-
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
5481
-
5482
-
[[package]]
5483
-
name = "unicode-properties"
5484
-
version = "0.1.3"
5485
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5486
-
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
5487
-
5488
-
[[package]]
5489
-
name = "unicode-script"
5490
-
version = "0.5.7"
5491
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5492
-
checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f"
5493
-
5494
-
[[package]]
5495
2516
name = "unicode-segmentation"
5496
2517
version = "1.12.0"
5497
2518
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5504
2525
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
5505
2526
5506
2527
[[package]]
5507
-
name = "unicode-xid"
5508
-
version = "0.2.6"
5509
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5510
-
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
5511
-
5512
-
[[package]]
5513
-
name = "url"
5514
-
version = "2.5.4"
5515
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5516
-
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
5517
-
dependencies = [
5518
-
"form_urlencoded",
5519
-
"idna",
5520
-
"percent-encoding",
5521
-
]
5522
-
5523
-
[[package]]
5524
-
name = "utf8_iter"
5525
-
version = "1.0.4"
5526
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5527
-
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
5528
-
5529
-
[[package]]
5530
2528
name = "uuid"
5531
2529
version = "1.16.0"
5532
2530
source = "registry+https://github.com/rust-lang/crates.io-index"
5533
2531
checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
5534
2532
dependencies = [
5535
2533
"getrandom 0.3.3",
5536
-
"js-sys",
5537
-
"serde",
5538
-
"wasm-bindgen",
5539
2534
]
5540
2535
5541
2536
[[package]]
···
5550
2545
]
5551
2546
5552
2547
[[package]]
5553
-
name = "valuable"
5554
-
version = "0.1.1"
5555
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5556
-
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
5557
-
5558
-
[[package]]
5559
-
name = "variadics_please"
5560
-
version = "1.1.0"
5561
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5562
-
checksum = "41b6d82be61465f97d42bd1d15bf20f3b0a3a0905018f38f9d6f6962055b0b5c"
2548
+
name = "vee_wgpu"
2549
+
version = "0.1.0"
5563
2550
dependencies = [
5564
-
"proc-macro2",
5565
-
"quote",
5566
-
"syn 2.0.101",
2551
+
"bytemuck",
2552
+
"futures-intrusive",
2553
+
"glam",
2554
+
"image 0.25.6",
2555
+
"nalgebra 0.33.2",
2556
+
"pollster",
2557
+
"vfl",
2558
+
"wgpu",
5567
2559
]
5568
-
5569
-
[[package]]
5570
-
name = "vec_map"
5571
-
version = "0.8.2"
5572
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5573
-
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
5574
2560
5575
2561
[[package]]
5576
2562
name = "version-compare"
···
5592
2578
"bytemuck",
5593
2579
"flate2",
5594
2580
"futures-intrusive",
5595
-
"glam 0.30.3",
2581
+
"glam",
5596
2582
"half",
5597
2583
"image 0.25.6",
5598
2584
"image-compare",
···
5604
2590
"pollster",
5605
2591
"tegra_swizzle",
5606
2592
"texture2ddecoder",
5607
-
"wgpu 25.0.0",
5608
2593
]
5609
2594
5610
2595
[[package]]
···
5710
2695
checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121"
5711
2696
dependencies = [
5712
2697
"cc",
5713
-
"downcast-rs 1.2.1",
2698
+
"downcast-rs",
5714
2699
"rustix",
5715
2700
"scoped-tls",
5716
2701
"smallvec",
···
5833
2818
]
5834
2819
5835
2820
[[package]]
5836
-
name = "webbrowser"
5837
-
version = "1.0.4"
5838
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5839
-
checksum = "d5df295f8451142f1856b1bd86a606dfe9587d439bc036e319c827700dbd555e"
5840
-
dependencies = [
5841
-
"core-foundation 0.10.0",
5842
-
"home",
5843
-
"jni",
5844
-
"log",
5845
-
"ndk-context",
5846
-
"objc2 0.6.1",
5847
-
"objc2-foundation 0.3.1",
5848
-
"url",
5849
-
"web-sys",
5850
-
]
5851
-
5852
-
[[package]]
5853
2821
name = "weezl"
5854
2822
version = "0.1.8"
5855
2823
source = "registry+https://github.com/rust-lang/crates.io-index"
···
5857
2825
5858
2826
[[package]]
5859
2827
name = "wgpu"
5860
-
version = "24.0.3"
5861
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5862
-
checksum = "35904fb00ba2d2e0a4d002fcbbb6e1b89b574d272a50e5fc95f6e81cf281c245"
5863
-
dependencies = [
5864
-
"arrayvec",
5865
-
"bitflags 2.9.0",
5866
-
"cfg_aliases",
5867
-
"document-features",
5868
-
"js-sys",
5869
-
"log",
5870
-
"naga 24.0.0",
5871
-
"parking_lot",
5872
-
"profiling",
5873
-
"raw-window-handle",
5874
-
"smallvec",
5875
-
"static_assertions",
5876
-
"wasm-bindgen",
5877
-
"wasm-bindgen-futures",
5878
-
"web-sys",
5879
-
"wgpu-core 24.0.2",
5880
-
"wgpu-hal 24.0.4",
5881
-
"wgpu-types 24.0.0",
5882
-
]
5883
-
5884
-
[[package]]
5885
-
name = "wgpu"
5886
2828
version = "25.0.0"
5887
2829
source = "registry+https://github.com/rust-lang/crates.io-index"
5888
2830
checksum = "ca6049eb2014a0e0d8689f9b787605dd71d5bbfdc74095ead499f3cff705c229"
···
5894
2836
"hashbrown",
5895
2837
"js-sys",
5896
2838
"log",
5897
-
"naga 25.0.1",
2839
+
"naga",
5898
2840
"parking_lot",
5899
2841
"portable-atomic",
5900
2842
"profiling",
···
5904
2846
"wasm-bindgen",
5905
2847
"wasm-bindgen-futures",
5906
2848
"web-sys",
5907
-
"wgpu-core 25.0.1",
5908
-
"wgpu-hal 25.0.1",
5909
-
"wgpu-types 25.0.0",
5910
-
]
5911
-
5912
-
[[package]]
5913
-
name = "wgpu-core"
5914
-
version = "24.0.2"
5915
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5916
-
checksum = "671c25545d479b47d3f0a8e373aceb2060b67c6eb841b24ac8c32348151c7a0c"
5917
-
dependencies = [
5918
-
"arrayvec",
5919
-
"bit-vec 0.8.0",
5920
-
"bitflags 2.9.0",
5921
-
"cfg_aliases",
5922
-
"document-features",
5923
-
"indexmap",
5924
-
"log",
5925
-
"naga 24.0.0",
5926
-
"once_cell",
5927
-
"parking_lot",
5928
-
"profiling",
5929
-
"raw-window-handle",
5930
-
"rustc-hash",
5931
-
"smallvec",
5932
-
"thiserror 2.0.12",
5933
-
"wgpu-hal 24.0.4",
5934
-
"wgpu-types 24.0.0",
2849
+
"wgpu-core",
2850
+
"wgpu-hal",
2851
+
"wgpu-types",
5935
2852
]
5936
2853
5937
2854
[[package]]
···
5941
2858
checksum = "a19813e647da7aa3cdaa84f5846e2c64114970ea7c86b1e6aae8be08091f4bdc"
5942
2859
dependencies = [
5943
2860
"arrayvec",
5944
-
"bit-set 0.8.0",
5945
-
"bit-vec 0.8.0",
2861
+
"bit-set",
2862
+
"bit-vec",
5946
2863
"bitflags 2.9.0",
5947
2864
"cfg_aliases",
5948
2865
"document-features",
5949
2866
"hashbrown",
5950
2867
"indexmap",
5951
2868
"log",
5952
-
"naga 25.0.1",
2869
+
"naga",
5953
2870
"once_cell",
5954
2871
"parking_lot",
5955
2872
"portable-atomic",
···
5961
2878
"wgpu-core-deps-apple",
5962
2879
"wgpu-core-deps-emscripten",
5963
2880
"wgpu-core-deps-windows-linux-android",
5964
-
"wgpu-hal 25.0.1",
5965
-
"wgpu-types 25.0.0",
2881
+
"wgpu-hal",
2882
+
"wgpu-types",
5966
2883
]
5967
2884
5968
2885
[[package]]
···
5971
2888
source = "registry+https://github.com/rust-lang/crates.io-index"
5972
2889
checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d"
5973
2890
dependencies = [
5974
-
"wgpu-hal 25.0.1",
2891
+
"wgpu-hal",
5975
2892
]
5976
2893
5977
2894
[[package]]
···
5980
2897
source = "registry+https://github.com/rust-lang/crates.io-index"
5981
2898
checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445"
5982
2899
dependencies = [
5983
-
"wgpu-hal 25.0.1",
2900
+
"wgpu-hal",
5984
2901
]
5985
2902
5986
2903
[[package]]
···
5989
2906
source = "registry+https://github.com/rust-lang/crates.io-index"
5990
2907
checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46"
5991
2908
dependencies = [
5992
-
"wgpu-hal 25.0.1",
5993
-
]
5994
-
5995
-
[[package]]
5996
-
name = "wgpu-hal"
5997
-
version = "24.0.4"
5998
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5999
-
checksum = "f112f464674ca69f3533248508ee30cb84c67cf06c25ff6800685f5e0294e259"
6000
-
dependencies = [
6001
-
"android_system_properties",
6002
-
"arrayvec",
6003
-
"ash",
6004
-
"bit-set 0.8.0",
6005
-
"bitflags 2.9.0",
6006
-
"block",
6007
-
"bytemuck",
6008
-
"cfg_aliases",
6009
-
"core-graphics-types",
6010
-
"glow",
6011
-
"glutin_wgl_sys",
6012
-
"gpu-alloc",
6013
-
"gpu-allocator",
6014
-
"gpu-descriptor",
6015
-
"js-sys",
6016
-
"khronos-egl",
6017
-
"libc",
6018
-
"libloading",
6019
-
"log",
6020
-
"metal",
6021
-
"naga 24.0.0",
6022
-
"ndk-sys 0.5.0+25.2.9519653",
6023
-
"objc",
6024
-
"once_cell",
6025
-
"ordered-float",
6026
-
"parking_lot",
6027
-
"profiling",
6028
-
"range-alloc",
6029
-
"raw-window-handle",
6030
-
"renderdoc-sys",
6031
-
"rustc-hash",
6032
-
"smallvec",
6033
-
"thiserror 2.0.12",
6034
-
"wasm-bindgen",
6035
-
"web-sys",
6036
-
"wgpu-types 24.0.0",
6037
-
"windows 0.58.0",
6038
-
"windows-core 0.58.0",
2909
+
"wgpu-hal",
6039
2910
]
6040
2911
6041
2912
[[package]]
···
6047
2918
"android_system_properties",
6048
2919
"arrayvec",
6049
2920
"ash",
6050
-
"bit-set 0.8.0",
2921
+
"bit-set",
6051
2922
"bitflags 2.9.0",
6052
2923
"block",
6053
2924
"bytemuck",
···
6066
2937
"libloading",
6067
2938
"log",
6068
2939
"metal",
6069
-
"naga 25.0.1",
2940
+
"naga",
6070
2941
"ndk-sys 0.5.0+25.2.9519653",
6071
2942
"objc",
6072
2943
"ordered-float",
···
6080
2951
"thiserror 2.0.12",
6081
2952
"wasm-bindgen",
6082
2953
"web-sys",
6083
-
"wgpu-types 25.0.0",
6084
-
"windows 0.58.0",
6085
-
"windows-core 0.58.0",
6086
-
]
6087
-
6088
-
[[package]]
6089
-
name = "wgpu-types"
6090
-
version = "24.0.0"
6091
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6092
-
checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c"
6093
-
dependencies = [
6094
-
"bitflags 2.9.0",
6095
-
"js-sys",
6096
-
"log",
6097
-
"serde",
6098
-
"web-sys",
2954
+
"wgpu-types",
2955
+
"windows",
2956
+
"windows-core",
6099
2957
]
6100
2958
6101
2959
[[package]]
···
6123
2981
]
6124
2982
6125
2983
[[package]]
6126
-
name = "winapi"
6127
-
version = "0.3.9"
6128
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6129
-
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
6130
-
dependencies = [
6131
-
"winapi-i686-pc-windows-gnu",
6132
-
"winapi-x86_64-pc-windows-gnu",
6133
-
]
6134
-
6135
-
[[package]]
6136
-
name = "winapi-i686-pc-windows-gnu"
6137
-
version = "0.4.0"
6138
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6139
-
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
6140
-
6141
-
[[package]]
6142
2984
name = "winapi-util"
6143
2985
version = "0.1.9"
6144
2986
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6148
2990
]
6149
2991
6150
2992
[[package]]
6151
-
name = "winapi-x86_64-pc-windows-gnu"
6152
-
version = "0.4.0"
6153
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6154
-
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
6155
-
6156
-
[[package]]
6157
-
name = "windows"
6158
-
version = "0.54.0"
6159
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6160
-
checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
6161
-
dependencies = [
6162
-
"windows-core 0.54.0",
6163
-
"windows-targets 0.52.6",
6164
-
]
6165
-
6166
-
[[package]]
6167
-
name = "windows"
6168
-
version = "0.57.0"
6169
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6170
-
checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
6171
-
dependencies = [
6172
-
"windows-core 0.57.0",
6173
-
"windows-targets 0.52.6",
6174
-
]
6175
-
6176
-
[[package]]
6177
2993
name = "windows"
6178
2994
version = "0.58.0"
6179
2995
source = "registry+https://github.com/rust-lang/crates.io-index"
6180
2996
checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
6181
2997
dependencies = [
6182
-
"windows-core 0.58.0",
6183
-
"windows-targets 0.52.6",
6184
-
]
6185
-
6186
-
[[package]]
6187
-
name = "windows"
6188
-
version = "0.61.1"
6189
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6190
-
checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"
6191
-
dependencies = [
6192
-
"windows-collections",
6193
-
"windows-core 0.61.0",
6194
-
"windows-future",
6195
-
"windows-link",
6196
-
"windows-numerics",
6197
-
]
6198
-
6199
-
[[package]]
6200
-
name = "windows-collections"
6201
-
version = "0.2.0"
6202
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6203
-
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
6204
-
dependencies = [
6205
-
"windows-core 0.61.0",
6206
-
]
6207
-
6208
-
[[package]]
6209
-
name = "windows-core"
6210
-
version = "0.54.0"
6211
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6212
-
checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
6213
-
dependencies = [
6214
-
"windows-result 0.1.2",
6215
-
"windows-targets 0.52.6",
6216
-
]
6217
-
6218
-
[[package]]
6219
-
name = "windows-core"
6220
-
version = "0.57.0"
6221
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6222
-
checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
6223
-
dependencies = [
6224
-
"windows-implement 0.57.0",
6225
-
"windows-interface 0.57.0",
6226
-
"windows-result 0.1.2",
2998
+
"windows-core",
6227
2999
"windows-targets 0.52.6",
6228
3000
]
6229
3001
···
6233
3005
source = "registry+https://github.com/rust-lang/crates.io-index"
6234
3006
checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
6235
3007
dependencies = [
6236
-
"windows-implement 0.58.0",
6237
-
"windows-interface 0.58.0",
6238
-
"windows-result 0.2.0",
6239
-
"windows-strings 0.1.0",
3008
+
"windows-implement",
3009
+
"windows-interface",
3010
+
"windows-result",
3011
+
"windows-strings",
6240
3012
"windows-targets 0.52.6",
6241
3013
]
6242
3014
6243
3015
[[package]]
6244
-
name = "windows-core"
6245
-
version = "0.61.0"
6246
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6247
-
checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980"
6248
-
dependencies = [
6249
-
"windows-implement 0.60.0",
6250
-
"windows-interface 0.59.1",
6251
-
"windows-link",
6252
-
"windows-result 0.3.2",
6253
-
"windows-strings 0.4.0",
6254
-
]
6255
-
6256
-
[[package]]
6257
-
name = "windows-future"
6258
-
version = "0.2.0"
6259
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6260
-
checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32"
6261
-
dependencies = [
6262
-
"windows-core 0.61.0",
6263
-
"windows-link",
6264
-
]
6265
-
6266
-
[[package]]
6267
-
name = "windows-implement"
6268
-
version = "0.57.0"
6269
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6270
-
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
6271
-
dependencies = [
6272
-
"proc-macro2",
6273
-
"quote",
6274
-
"syn 2.0.101",
6275
-
]
6276
-
6277
-
[[package]]
6278
3016
name = "windows-implement"
6279
3017
version = "0.58.0"
6280
3018
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6286
3024
]
6287
3025
6288
3026
[[package]]
6289
-
name = "windows-implement"
6290
-
version = "0.60.0"
6291
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6292
-
checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
6293
-
dependencies = [
6294
-
"proc-macro2",
6295
-
"quote",
6296
-
"syn 2.0.101",
6297
-
]
6298
-
6299
-
[[package]]
6300
-
name = "windows-interface"
6301
-
version = "0.57.0"
6302
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6303
-
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
6304
-
dependencies = [
6305
-
"proc-macro2",
6306
-
"quote",
6307
-
"syn 2.0.101",
6308
-
]
6309
-
6310
-
[[package]]
6311
3027
name = "windows-interface"
6312
3028
version = "0.58.0"
6313
3029
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6319
3035
]
6320
3036
6321
3037
[[package]]
6322
-
name = "windows-interface"
6323
-
version = "0.59.1"
6324
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6325
-
checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
6326
-
dependencies = [
6327
-
"proc-macro2",
6328
-
"quote",
6329
-
"syn 2.0.101",
6330
-
]
6331
-
6332
-
[[package]]
6333
-
name = "windows-link"
6334
-
version = "0.1.1"
6335
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6336
-
checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
6337
-
6338
-
[[package]]
6339
-
name = "windows-numerics"
6340
-
version = "0.2.0"
6341
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6342
-
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
6343
-
dependencies = [
6344
-
"windows-core 0.61.0",
6345
-
"windows-link",
6346
-
]
6347
-
6348
-
[[package]]
6349
-
name = "windows-result"
6350
-
version = "0.1.2"
6351
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6352
-
checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
6353
-
dependencies = [
6354
-
"windows-targets 0.52.6",
6355
-
]
6356
-
6357
-
[[package]]
6358
3038
name = "windows-result"
6359
3039
version = "0.2.0"
6360
3040
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6364
3044
]
6365
3045
6366
3046
[[package]]
6367
-
name = "windows-result"
6368
-
version = "0.3.2"
6369
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6370
-
checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
6371
-
dependencies = [
6372
-
"windows-link",
6373
-
]
6374
-
6375
-
[[package]]
6376
3047
name = "windows-strings"
6377
3048
version = "0.1.0"
6378
3049
source = "registry+https://github.com/rust-lang/crates.io-index"
6379
3050
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
6380
3051
dependencies = [
6381
-
"windows-result 0.2.0",
3052
+
"windows-result",
6382
3053
"windows-targets 0.52.6",
6383
3054
]
6384
3055
6385
3056
[[package]]
6386
-
name = "windows-strings"
6387
-
version = "0.4.0"
6388
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6389
-
checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97"
6390
-
dependencies = [
6391
-
"windows-link",
6392
-
]
6393
-
6394
-
[[package]]
6395
3057
name = "windows-sys"
6396
3058
version = "0.45.0"
6397
3059
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6611
3273
"calloop",
6612
3274
"cfg_aliases",
6613
3275
"concurrent-queue",
6614
-
"core-foundation 0.9.4",
3276
+
"core-foundation",
6615
3277
"core-graphics",
6616
3278
"cursor-icon",
6617
3279
"dpi",
6618
3280
"js-sys",
6619
3281
"libc",
6620
3282
"memmap2",
6621
-
"ndk 0.9.0",
6622
-
"objc2 0.5.2",
6623
-
"objc2-app-kit 0.2.2",
6624
-
"objc2-foundation 0.2.2",
3283
+
"ndk",
3284
+
"objc2",
3285
+
"objc2-app-kit",
3286
+
"objc2-foundation",
6625
3287
"objc2-ui-kit",
6626
3288
"orbclient",
6627
3289
"percent-encoding",
···
6667
3329
]
6668
3330
6669
3331
[[package]]
6670
-
name = "writeable"
6671
-
version = "0.6.1"
6672
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6673
-
checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
6674
-
6675
-
[[package]]
6676
3332
name = "x11-dl"
6677
3333
version = "2.21.0"
6678
3334
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6736
3392
checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda"
6737
3393
6738
3394
[[package]]
6739
-
name = "yazi"
6740
-
version = "0.2.1"
6741
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6742
-
checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5"
6743
-
6744
-
[[package]]
6745
-
name = "yoke"
6746
-
version = "0.8.0"
6747
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6748
-
checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
6749
-
dependencies = [
6750
-
"serde",
6751
-
"stable_deref_trait",
6752
-
"yoke-derive",
6753
-
"zerofrom",
6754
-
]
6755
-
6756
-
[[package]]
6757
-
name = "yoke-derive"
6758
-
version = "0.8.0"
6759
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6760
-
checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
6761
-
dependencies = [
6762
-
"proc-macro2",
6763
-
"quote",
6764
-
"syn 2.0.101",
6765
-
"synstructure",
6766
-
]
6767
-
6768
-
[[package]]
6769
-
name = "zeno"
6770
-
version = "0.3.3"
6771
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6772
-
checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
6773
-
6774
-
[[package]]
6775
3395
name = "zerocopy"
6776
3396
version = "0.8.25"
6777
3397
source = "registry+https://github.com/rust-lang/crates.io-index"
···
6785
3405
version = "0.8.25"
6786
3406
source = "registry+https://github.com/rust-lang/crates.io-index"
6787
3407
checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
6788
-
dependencies = [
6789
-
"proc-macro2",
6790
-
"quote",
6791
-
"syn 2.0.101",
6792
-
]
6793
-
6794
-
[[package]]
6795
-
name = "zerofrom"
6796
-
version = "0.1.6"
6797
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6798
-
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
6799
-
dependencies = [
6800
-
"zerofrom-derive",
6801
-
]
6802
-
6803
-
[[package]]
6804
-
name = "zerofrom-derive"
6805
-
version = "0.1.6"
6806
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6807
-
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
6808
-
dependencies = [
6809
-
"proc-macro2",
6810
-
"quote",
6811
-
"syn 2.0.101",
6812
-
"synstructure",
6813
-
]
6814
-
6815
-
[[package]]
6816
-
name = "zerotrie"
6817
-
version = "0.2.2"
6818
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6819
-
checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
6820
-
dependencies = [
6821
-
"displaydoc",
6822
-
"yoke",
6823
-
"zerofrom",
6824
-
]
6825
-
6826
-
[[package]]
6827
-
name = "zerovec"
6828
-
version = "0.11.2"
6829
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6830
-
checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
6831
-
dependencies = [
6832
-
"yoke",
6833
-
"zerofrom",
6834
-
"zerovec-derive",
6835
-
]
6836
-
6837
-
[[package]]
6838
-
name = "zerovec-derive"
6839
-
version = "0.11.1"
6840
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6841
-
checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
6842
3408
dependencies = [
6843
3409
"proc-macro2",
6844
3410
"quote",
+9
-8
Cargo.toml
+9
-8
Cargo.toml
···
1
1
[workspace]
2
2
resolver = "2"
3
-
members = ["bevy_viewer", "lightweight_viewer", "vfl"]
3
+
members = [
4
+
# bevy viewer is on the backburner
5
+
# "crates/bevy_viewer",
6
+
"crates/lightweight_viewer",
7
+
"crates/vee_wgpu",
8
+
"crates/vfl",
9
+
]
4
10
5
-
# Enable a small amount of optimization in the dev profile.
6
-
#[profile.dev]
7
-
#opt-level = 1
8
-
9
-
# Enable a large amount of optimization in the dev profile for dependencies.
10
-
#[profile.dev.package."*"]
11
-
#opt-level = 3
11
+
[workspace.dependencies]
12
+
vfl = { path = "crates/vfl" }
bevy_viewer/Cargo.toml
crates/bevy_viewer/Cargo.toml
bevy_viewer/Cargo.toml
crates/bevy_viewer/Cargo.toml
bevy_viewer/src/char.rs
crates/bevy_viewer/src/char.rs
bevy_viewer/src/char.rs
crates/bevy_viewer/src/char.rs
bevy_viewer/src/load.rs
crates/bevy_viewer/src/load.rs
bevy_viewer/src/load.rs
crates/bevy_viewer/src/load.rs
bevy_viewer/src/main.rs
crates/bevy_viewer/src/main.rs
bevy_viewer/src/main.rs
crates/bevy_viewer/src/main.rs
bevy_viewer/src/mask.rs
crates/bevy_viewer/src/mask.rs
bevy_viewer/src/mask.rs
crates/bevy_viewer/src/mask.rs
+14
crates/vee_wgpu/Cargo.toml
+14
crates/vee_wgpu/Cargo.toml
···
1
+
[package]
2
+
name = "vee_wgpu"
3
+
version = "0.1.0"
4
+
edition = "2024"
5
+
6
+
[dependencies]
7
+
wgpu = "25"
8
+
vfl = { path = "../vfl", features = ["draw", "res"] }
9
+
bytemuck = "1.23.0"
10
+
glam = "0.30.3"
11
+
image = "0.25.6"
12
+
nalgebra = "0.33.2"
13
+
pollster = "0.4.0"
14
+
futures-intrusive = "0.5.0"
+244
crates/vee_wgpu/src/headless.rs
+244
crates/vee_wgpu/src/headless.rs
···
1
+
use std::f32::consts::FRAC_PI_2;
2
+
3
+
use camera::{Camera, CameraUniform};
4
+
use glam::{UVec2, Vec3, uvec2};
5
+
use image::{DynamicImage, RgbaImage};
6
+
use wgpu::{CommandEncoder, DeviceDescriptor, util::DeviceExt};
7
+
8
+
use crate::{ProgramState, texture::TextureBundle};
9
+
10
+
pub struct HeadlessRenderer {
11
+
device: wgpu::Device,
12
+
queue: wgpu::Queue,
13
+
camera_bgl: wgpu::BindGroupLayout,
14
+
camera_bg: wgpu::BindGroup,
15
+
surface_fmt: wgpu::TextureFormat,
16
+
depth_texture: TextureBundle,
17
+
}
18
+
19
+
impl ProgramState for HeadlessRenderer {
20
+
fn device(&self) -> wgpu::Device {
21
+
self.device.clone()
22
+
}
23
+
24
+
fn queue(&self) -> wgpu::Queue {
25
+
self.queue.clone()
26
+
}
27
+
28
+
fn camera_bgl(&self) -> &wgpu::BindGroupLayout {
29
+
&self.camera_bgl
30
+
}
31
+
32
+
fn camera_bg(&self) -> &wgpu::BindGroup {
33
+
&self.camera_bg
34
+
}
35
+
36
+
fn surface_fmt(&self) -> wgpu::TextureFormat {
37
+
self.surface_fmt
38
+
}
39
+
40
+
fn depth_texture(&self) -> &TextureBundle {
41
+
&self.depth_texture
42
+
}
43
+
}
44
+
45
+
impl Default for HeadlessRenderer {
46
+
fn default() -> HeadlessRenderer {
47
+
HeadlessRenderer::new()
48
+
}
49
+
}
50
+
impl HeadlessRenderer {
51
+
pub fn new() -> HeadlessRenderer {
52
+
pollster::block_on(HeadlessRenderer::async_new())
53
+
}
54
+
async fn async_new() -> HeadlessRenderer {
55
+
const SIZE: UVec2 = uvec2(512, 512);
56
+
let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
57
+
backends: wgpu::Backends::all(),
58
+
..Default::default()
59
+
});
60
+
let adapter = instance
61
+
.request_adapter(&wgpu::RequestAdapterOptions {
62
+
power_preference: wgpu::PowerPreference::default(),
63
+
compatible_surface: None,
64
+
force_fallback_adapter: false,
65
+
})
66
+
.await
67
+
.unwrap();
68
+
let (device, queue) = adapter
69
+
.request_device(&DeviceDescriptor::default())
70
+
.await
71
+
.unwrap();
72
+
73
+
// let surface = instance.create_surface(window.clone()).unwrap();
74
+
// let cap = surface.get_capabilities(&adapter);
75
+
// let surface_fmt = cap.formats[0];
76
+
let surface_fmt = wgpu::TextureFormat::Bgra8Unorm;
77
+
78
+
let depth_texture = TextureBundle::create_depth_texture(&device, &SIZE, "depth_texture");
79
+
80
+
let camera = Camera {
81
+
eye: (0.0, 25.0, 100.0).into(),
82
+
target: (0.0, 25.0, 0.0).into(),
83
+
up: Vec3::Y,
84
+
aspect: SIZE.x as f32 / SIZE.y as f32,
85
+
fov_y_radians: FRAC_PI_2,
86
+
znear: 0.1,
87
+
zfar: 10000.0,
88
+
};
89
+
90
+
let mut camera_uniform = CameraUniform::new();
91
+
camera_uniform.update_view_proj(&camera);
92
+
93
+
let camera_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
94
+
label: Some("Camera Buffer"),
95
+
contents: bytemuck::cast_slice(&[camera_uniform]),
96
+
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
97
+
});
98
+
99
+
let camera_bgl = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
100
+
entries: &[wgpu::BindGroupLayoutEntry {
101
+
binding: 0,
102
+
visibility: wgpu::ShaderStages::VERTEX,
103
+
ty: wgpu::BindingType::Buffer {
104
+
ty: wgpu::BufferBindingType::Uniform,
105
+
has_dynamic_offset: false,
106
+
min_binding_size: None,
107
+
},
108
+
count: None,
109
+
}],
110
+
label: Some("camera_bind_group_layout"),
111
+
});
112
+
113
+
let camera_bg = device.create_bind_group(&wgpu::BindGroupDescriptor {
114
+
layout: &camera_bgl,
115
+
entries: &[wgpu::BindGroupEntry {
116
+
binding: 0,
117
+
resource: camera_buffer.as_entire_binding(),
118
+
}],
119
+
label: Some("camera_bind_group"),
120
+
});
121
+
122
+
HeadlessRenderer {
123
+
device,
124
+
queue,
125
+
camera_bgl,
126
+
camera_bg,
127
+
surface_fmt,
128
+
depth_texture,
129
+
}
130
+
}
131
+
132
+
#[allow(unused)]
133
+
pub fn output_texture(
134
+
&mut self,
135
+
texture: &TextureBundle,
136
+
mut encoder: CommandEncoder,
137
+
) -> DynamicImage {
138
+
pollster::block_on(async {
139
+
let u32_size = std::mem::size_of::<u32>() as u32;
140
+
let output_buffer_size = wgpu::BufferAddress::from(
141
+
u32_size * texture.texture.size().width * texture.texture.size().height,
142
+
);
143
+
let output_buffer_desc = wgpu::BufferDescriptor {
144
+
size: output_buffer_size,
145
+
usage: wgpu::BufferUsages::COPY_DST
146
+
// this tells wpgu that we want to read this buffer from the cpu
147
+
| wgpu::BufferUsages::MAP_READ,
148
+
label: None,
149
+
mapped_at_creation: false,
150
+
};
151
+
let output_buffer = self.device.create_buffer(&output_buffer_desc);
152
+
153
+
encoder.copy_texture_to_buffer(
154
+
wgpu::TexelCopyTextureInfo {
155
+
aspect: wgpu::TextureAspect::All,
156
+
texture: &texture.texture,
157
+
mip_level: 0,
158
+
origin: wgpu::Origin3d::ZERO,
159
+
},
160
+
wgpu::TexelCopyBufferInfo {
161
+
buffer: &output_buffer,
162
+
layout: wgpu::TexelCopyBufferLayout {
163
+
offset: 0,
164
+
bytes_per_row: Some(u32_size * texture.texture.size().width),
165
+
rows_per_image: Some(texture.texture.size().height),
166
+
},
167
+
},
168
+
texture.texture.size(),
169
+
);
170
+
171
+
self.queue.submit(Some(encoder.finish()));
172
+
173
+
let image;
174
+
// We need to scope the mapping variables so that we can
175
+
// unmap the buffer
176
+
{
177
+
let buffer_slice = output_buffer.slice(..);
178
+
179
+
// NOTE: We have to create the mapping THEN device.poll() before await
180
+
// the future. Otherwise the application will freeze.
181
+
let (tx, rx) = futures_intrusive::channel::shared::oneshot_channel();
182
+
buffer_slice.map_async(wgpu::MapMode::Read, move |result| {
183
+
tx.send(result).unwrap();
184
+
});
185
+
self.device.poll(wgpu::PollType::Wait).unwrap();
186
+
rx.receive().await.unwrap().unwrap();
187
+
188
+
let data = &buffer_slice.get_mapped_range()[..];
189
+
190
+
use image::{ImageBuffer, Rgba};
191
+
let buffer: RgbaImage = ImageBuffer::<Rgba<u8>, _>::from_raw(
192
+
texture.texture.size().width,
193
+
texture.texture.size().height,
194
+
data.to_owned(),
195
+
)
196
+
.unwrap();
197
+
image = Some(DynamicImage::ImageRgba8(buffer));
198
+
}
199
+
output_buffer.unmap();
200
+
201
+
image.unwrap()
202
+
})
203
+
}
204
+
}
205
+
206
+
mod camera {
207
+
use glam::{Mat4, Vec3};
208
+
209
+
pub struct Camera {
210
+
pub eye: Vec3,
211
+
pub target: Vec3,
212
+
pub up: Vec3,
213
+
pub aspect: f32,
214
+
pub fov_y_radians: f32,
215
+
pub znear: f32,
216
+
pub zfar: f32,
217
+
}
218
+
219
+
impl Camera {
220
+
pub fn build_view_projection_matrix(&self) -> Mat4 {
221
+
let view = Mat4::look_at_rh(self.eye, self.target, self.up);
222
+
let proj = Mat4::perspective_rh(self.fov_y_radians, self.aspect, self.znear, self.zfar);
223
+
proj * view
224
+
}
225
+
}
226
+
227
+
#[repr(C)]
228
+
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
229
+
pub struct CameraUniform {
230
+
view_proj: [[f32; 4]; 4],
231
+
}
232
+
233
+
impl CameraUniform {
234
+
pub fn new() -> Self {
235
+
Self {
236
+
view_proj: Mat4::IDENTITY.to_cols_array_2d(),
237
+
}
238
+
}
239
+
240
+
pub fn update_view_proj(&mut self, camera: &Camera) {
241
+
self.view_proj = camera.build_view_projection_matrix().to_cols_array_2d();
242
+
}
243
+
}
244
+
}
+705
crates/vee_wgpu/src/lib.rs
+705
crates/vee_wgpu/src/lib.rs
···
1
+
use bytemuck::cast_slice;
2
+
use texture::TextureBundle;
3
+
use vfl::draw::Vertex;
4
+
use wgpu::{BlendState, CommandEncoder, TextureView};
5
+
use wgpu::{PipelineCompilationOptions, TexelCopyTextureInfo, include_wgsl, util::DeviceExt};
6
+
7
+
mod headless;
8
+
9
+
pub type Model3d = vfl::draw::render_3d::GenericModel3d<TextureBundle>;
10
+
11
+
#[repr(C)]
12
+
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
13
+
struct CharShapeUniform {
14
+
diffuse_color: [f32; 4],
15
+
position: [f32; 3],
16
+
_pad: f32,
17
+
scale: [f32; 3],
18
+
_pad2: f32,
19
+
}
20
+
21
+
trait UniformBuffer {
22
+
const ATTRIBS: [wgpu::VertexAttribute; 3];
23
+
24
+
fn desc() -> wgpu::VertexBufferLayout<'static>;
25
+
}
26
+
impl UniformBuffer for Vertex {
27
+
const ATTRIBS: [wgpu::VertexAttribute; 3] =
28
+
wgpu::vertex_attr_array![0 => Float32x3, 1 => Float32x2, 2 => Float32x3];
29
+
30
+
fn desc() -> wgpu::VertexBufferLayout<'static> {
31
+
use std::mem;
32
+
wgpu::VertexBufferLayout {
33
+
array_stride: mem::size_of::<Vertex>() as wgpu::BufferAddress,
34
+
step_mode: wgpu::VertexStepMode::Vertex,
35
+
attributes: &Self::ATTRIBS,
36
+
}
37
+
}
38
+
}
39
+
40
+
#[repr(C)]
41
+
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
42
+
pub struct TextureTransformUniform {
43
+
pub mvp_matrix: [[f32; 4]; 4],
44
+
pub channel_replacements_r: [f32; 4],
45
+
pub channel_replacements_g: [f32; 4],
46
+
pub channel_replacements_b: [f32; 4],
47
+
pub texture_type: u32,
48
+
pub pad: [u32; 3],
49
+
}
50
+
51
+
pub trait ProgramState {
52
+
fn device(&self) -> wgpu::Device;
53
+
fn queue(&self) -> wgpu::Queue;
54
+
fn camera_bgl(&self) -> &wgpu::BindGroupLayout;
55
+
fn camera_bg(&self) -> &wgpu::BindGroup;
56
+
fn surface_fmt(&self) -> wgpu::TextureFormat;
57
+
fn depth_texture(&self) -> &TextureBundle;
58
+
59
+
fn draw_texture(
60
+
&mut self,
61
+
tex: vfl::draw::DrawableTexture,
62
+
view: &TextureView,
63
+
encoder: &mut CommandEncoder,
64
+
) {
65
+
self.draw_model_2d(&mut tex.model_2d(), view, encoder)
66
+
}
67
+
68
+
fn draw_model_2d(
69
+
&mut self,
70
+
mesh: &mut vfl::draw::render_2d::Model2d,
71
+
view: &TextureView,
72
+
encoder: &mut CommandEncoder,
73
+
) {
74
+
if let Some(ref label) = mesh.label {
75
+
encoder.push_debug_group(&format!("Texture {label}"));
76
+
}
77
+
78
+
let vertex_buffer = self
79
+
.device()
80
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
81
+
label: Some("Vertex Buffer"),
82
+
contents: cast_slice(&mesh.vertices),
83
+
usage: wgpu::BufferUsages::VERTEX,
84
+
});
85
+
86
+
let index_buffer = self
87
+
.device()
88
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
89
+
label: Some("Index Buffer"),
90
+
contents: cast_slice(&mesh.indices),
91
+
usage: wgpu::BufferUsages::INDEX,
92
+
});
93
+
94
+
let shape_texture_rgba = mesh.tex.to_rgba8();
95
+
let shape_texture_dimensions = shape_texture_rgba.dimensions();
96
+
let shape_texture_size = wgpu::Extent3d {
97
+
width: shape_texture_dimensions.0,
98
+
height: shape_texture_dimensions.1,
99
+
depth_or_array_layers: 1,
100
+
};
101
+
let shape_diffuse_texture = self.device().create_texture(&wgpu::TextureDescriptor {
102
+
size: shape_texture_size,
103
+
mip_level_count: 1,
104
+
sample_count: 1,
105
+
dimension: wgpu::TextureDimension::D2,
106
+
format: self.surface_fmt(),
107
+
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
108
+
label: Some("diffuse_texture"),
109
+
view_formats: &[self.surface_fmt()],
110
+
});
111
+
112
+
self.queue().write_texture(
113
+
TexelCopyTextureInfo {
114
+
texture: &shape_diffuse_texture,
115
+
mip_level: 0,
116
+
origin: wgpu::Origin3d::ZERO,
117
+
aspect: wgpu::TextureAspect::All,
118
+
},
119
+
&shape_texture_rgba,
120
+
wgpu::TexelCopyBufferLayout {
121
+
offset: 0,
122
+
bytes_per_row: Some(4 * shape_texture_dimensions.0),
123
+
rows_per_image: Some(shape_texture_dimensions.1),
124
+
},
125
+
shape_texture_size,
126
+
);
127
+
128
+
let shape_diffuse_texture_view =
129
+
shape_diffuse_texture.create_view(&wgpu::TextureViewDescriptor::default());
130
+
let shape_diffuse_sampler = self.device().create_sampler(&wgpu::SamplerDescriptor {
131
+
address_mode_u: wgpu::AddressMode::ClampToEdge,
132
+
address_mode_v: wgpu::AddressMode::ClampToEdge,
133
+
address_mode_w: wgpu::AddressMode::ClampToEdge,
134
+
mag_filter: wgpu::FilterMode::Linear,
135
+
min_filter: wgpu::FilterMode::Nearest,
136
+
mipmap_filter: wgpu::FilterMode::Nearest,
137
+
..Default::default()
138
+
});
139
+
140
+
let texture_bind_group_layout =
141
+
self.device()
142
+
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
143
+
entries: &[
144
+
wgpu::BindGroupLayoutEntry {
145
+
binding: 0,
146
+
visibility: wgpu::ShaderStages::FRAGMENT,
147
+
ty: wgpu::BindingType::Texture {
148
+
multisampled: false,
149
+
view_dimension: wgpu::TextureViewDimension::D2,
150
+
sample_type: wgpu::TextureSampleType::Float { filterable: true },
151
+
},
152
+
count: None,
153
+
},
154
+
wgpu::BindGroupLayoutEntry {
155
+
binding: 1,
156
+
visibility: wgpu::ShaderStages::FRAGMENT,
157
+
ty: wgpu::BindingType::Sampler(wgpu::SamplerBindingType::Filtering),
158
+
count: None,
159
+
},
160
+
],
161
+
label: Some("texture_bind_group_layout"),
162
+
});
163
+
164
+
let shape_diffuse_bind_group =
165
+
self.device().create_bind_group(&wgpu::BindGroupDescriptor {
166
+
layout: &texture_bind_group_layout,
167
+
entries: &[
168
+
wgpu::BindGroupEntry {
169
+
binding: 0,
170
+
resource: wgpu::BindingResource::TextureView(&shape_diffuse_texture_view),
171
+
},
172
+
wgpu::BindGroupEntry {
173
+
binding: 1,
174
+
resource: wgpu::BindingResource::Sampler(&shape_diffuse_sampler),
175
+
},
176
+
],
177
+
label: Some("diffuse_bind_group"),
178
+
});
179
+
180
+
let mvp_matrix = mesh.mvp_matrix.into();
181
+
let mvp_uniform = TextureTransformUniform {
182
+
mvp_matrix,
183
+
channel_replacements_r: mesh.modulation.channels[0],
184
+
channel_replacements_g: mesh.modulation.channels[1],
185
+
channel_replacements_b: mesh.modulation.channels[2],
186
+
texture_type: (Into::<u8>::into(mesh.modulation.mode)).into(),
187
+
pad: Default::default(),
188
+
};
189
+
190
+
let mvp_buffer = self
191
+
.device()
192
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
193
+
label: Some("MvpMatrix Buffer"),
194
+
contents: cast_slice(&[mvp_uniform]),
195
+
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
196
+
});
197
+
198
+
let mvp_bind_group_layout =
199
+
self.device()
200
+
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
201
+
entries: &[wgpu::BindGroupLayoutEntry {
202
+
binding: 0,
203
+
visibility: wgpu::ShaderStages::VERTEX | wgpu::ShaderStages::FRAGMENT,
204
+
ty: wgpu::BindingType::Buffer {
205
+
ty: wgpu::BufferBindingType::Uniform,
206
+
has_dynamic_offset: false,
207
+
min_binding_size: None,
208
+
},
209
+
count: None,
210
+
}],
211
+
label: Some("mvp_bind_group_layout"),
212
+
});
213
+
214
+
let mvp_bind_group = self.device().create_bind_group(&wgpu::BindGroupDescriptor {
215
+
layout: &mvp_bind_group_layout,
216
+
entries: &[wgpu::BindGroupEntry {
217
+
binding: 0,
218
+
resource: mvp_buffer.as_entire_binding(),
219
+
}],
220
+
label: Some("mvp_bind_group"),
221
+
});
222
+
223
+
let shader_module = self
224
+
.device()
225
+
.create_shader_module(include_wgsl!("shader.wgsl"));
226
+
let render_pipeline_layout =
227
+
self.device()
228
+
.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
229
+
label: Some("Render Pipeline Layout"),
230
+
bind_group_layouts: &[&texture_bind_group_layout, &mvp_bind_group_layout],
231
+
push_constant_ranges: &[],
232
+
});
233
+
let render_pipeline =
234
+
self.device()
235
+
.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
236
+
label: Some("Render Pipeline"),
237
+
layout: Some(&render_pipeline_layout),
238
+
vertex: wgpu::VertexState {
239
+
module: &shader_module,
240
+
entry_point: Some("vs_main"),
241
+
buffers: &[Vertex::desc()],
242
+
compilation_options: PipelineCompilationOptions::default(),
243
+
},
244
+
fragment: Some(wgpu::FragmentState {
245
+
module: &shader_module,
246
+
entry_point: Some("fs_main"),
247
+
targets: &[Some(wgpu::ColorTargetState {
248
+
format: self.surface_fmt(),
249
+
blend: Some(wgpu::BlendState::ALPHA_BLENDING),
250
+
write_mask: wgpu::ColorWrites::ALL,
251
+
})],
252
+
compilation_options: PipelineCompilationOptions::default(),
253
+
}),
254
+
primitive: wgpu::PrimitiveState {
255
+
topology: wgpu::PrimitiveTopology::TriangleList,
256
+
strip_index_format: None,
257
+
front_face: wgpu::FrontFace::Ccw,
258
+
cull_mode: None,
259
+
// Setting this to anything other than Fill requires Features::NON_FILL_POLYGON_MODE
260
+
polygon_mode: wgpu::PolygonMode::Fill,
261
+
// Requires Features::DEPTH_CLIP_CONTROL
262
+
unclipped_depth: false,
263
+
// Requires Features::CONSERVATIVE_RASTERIZATION
264
+
conservative: false,
265
+
},
266
+
depth_stencil: None,
267
+
multisample: wgpu::MultisampleState {
268
+
count: 1,
269
+
mask: !0,
270
+
alpha_to_coverage_enabled: false,
271
+
},
272
+
// If the pipeline will be used with a multiview render pass, this
273
+
// indicates how many array layers the attachments will have.
274
+
multiview: None,
275
+
cache: None,
276
+
});
277
+
278
+
{
279
+
let render_pass_desc = wgpu::RenderPassDescriptor {
280
+
label: Some("Render Pass"),
281
+
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
282
+
view,
283
+
resolve_target: None,
284
+
ops: wgpu::Operations {
285
+
load: match mesh.opaque {
286
+
Some([r, g, b, a]) => wgpu::LoadOp::Clear(wgpu::Color {
287
+
r: r.into(),
288
+
g: g.into(),
289
+
b: b.into(),
290
+
a: a.into(),
291
+
}),
292
+
None => wgpu::LoadOp::Load,
293
+
},
294
+
store: wgpu::StoreOp::Store,
295
+
},
296
+
})],
297
+
depth_stencil_attachment: None,
298
+
occlusion_query_set: None,
299
+
timestamp_writes: None,
300
+
};
301
+
let mut render_pass = encoder.begin_render_pass(&render_pass_desc);
302
+
303
+
render_pass.set_pipeline(&render_pipeline);
304
+
render_pass.set_bind_group(0, &shape_diffuse_bind_group, &[]);
305
+
render_pass.set_bind_group(1, &mvp_bind_group, &[]);
306
+
render_pass.set_vertex_buffer(0, vertex_buffer.slice(..));
307
+
render_pass.set_index_buffer(index_buffer.slice(..), wgpu::IndexFormat::Uint32);
308
+
309
+
render_pass.draw_indexed(0..mesh.indices.len().try_into().unwrap(), 0, 0..1);
310
+
}
311
+
312
+
if mesh.label.is_some() {
313
+
encoder.pop_debug_group();
314
+
}
315
+
}
316
+
317
+
fn draw_model_3d(
318
+
&mut self,
319
+
mesh: &mut Model3d,
320
+
view: &TextureView,
321
+
encoder: &mut CommandEncoder,
322
+
) {
323
+
let vertex_buffer = self
324
+
.device()
325
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
326
+
label: Some("Vertex Buffer"),
327
+
contents: cast_slice(&mesh.vertices),
328
+
usage: wgpu::BufferUsages::VERTEX,
329
+
});
330
+
331
+
let index_buffer = self
332
+
.device()
333
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
334
+
label: Some("Index Buffer"),
335
+
contents: cast_slice(&mesh.indices),
336
+
usage: wgpu::BufferUsages::INDEX,
337
+
});
338
+
339
+
let char_shape_uniform = CharShapeUniform {
340
+
diffuse_color: mesh.color.into(),
341
+
position: mesh.position.into(),
342
+
_pad: 0.0,
343
+
scale: mesh.scale.into(),
344
+
_pad2: 0.0,
345
+
};
346
+
let char_shape_buffer =
347
+
self.device()
348
+
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
349
+
label: Some("Cs Buffer"),
350
+
contents: cast_slice(&[char_shape_uniform]),
351
+
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
352
+
});
353
+
let char_shape_bind_group_layout =
354
+
self.device()
355
+
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
356
+
entries: &[wgpu::BindGroupLayoutEntry {
357
+
binding: 0,
358
+
visibility: wgpu::ShaderStages::VERTEX | wgpu::ShaderStages::FRAGMENT,
359
+
ty: wgpu::BindingType::Buffer {
360
+
ty: wgpu::BufferBindingType::Uniform,
361
+
has_dynamic_offset: false,
362
+
min_binding_size: None,
363
+
},
364
+
count: None,
365
+
}],
366
+
label: Some("cs_group_layout"),
367
+
});
368
+
369
+
let char_shape_bind_group = self.device().create_bind_group(&wgpu::BindGroupDescriptor {
370
+
layout: &char_shape_bind_group_layout,
371
+
entries: &[wgpu::BindGroupEntry {
372
+
binding: 0,
373
+
resource: char_shape_buffer.as_entire_binding(),
374
+
}],
375
+
label: Some("cs_bind_group"),
376
+
});
377
+
378
+
let mut bind_group_layouts = vec![self.camera_bgl(), &char_shape_bind_group_layout];
379
+
380
+
let projected_texture_bind_group_layout =
381
+
self.device()
382
+
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
383
+
entries: &[
384
+
wgpu::BindGroupLayoutEntry {
385
+
binding: 0,
386
+
visibility: wgpu::ShaderStages::FRAGMENT,
387
+
ty: wgpu::BindingType::Texture {
388
+
multisampled: false,
389
+
view_dimension: wgpu::TextureViewDimension::D2,
390
+
sample_type: wgpu::TextureSampleType::Float { filterable: true },
391
+
},
392
+
count: None,
393
+
},
394
+
wgpu::BindGroupLayoutEntry {
395
+
binding: 1,
396
+
visibility: wgpu::ShaderStages::FRAGMENT,
397
+
ty: wgpu::BindingType::Sampler(wgpu::SamplerBindingType::Filtering),
398
+
count: None,
399
+
},
400
+
],
401
+
label: Some("texture_bind_group_layout"),
402
+
});
403
+
if mesh.texture.is_some() {
404
+
bind_group_layouts.push(&projected_texture_bind_group_layout);
405
+
}
406
+
407
+
let shader_module = self
408
+
.device()
409
+
.create_shader_module(include_wgsl!("shader_3d.wgsl"));
410
+
411
+
// Optional projected texture
412
+
let projected_texture_bind_group = mesh.texture.as_ref().map(|texture| {
413
+
self.device().create_bind_group(&wgpu::BindGroupDescriptor {
414
+
layout: &projected_texture_bind_group_layout,
415
+
entries: &[
416
+
wgpu::BindGroupEntry {
417
+
binding: 0,
418
+
resource: wgpu::BindingResource::TextureView(&texture.view),
419
+
},
420
+
wgpu::BindGroupEntry {
421
+
binding: 1,
422
+
resource: wgpu::BindingResource::Sampler(&texture.sampler),
423
+
},
424
+
],
425
+
label: Some("diffuse_bind_group"),
426
+
})
427
+
});
428
+
429
+
let render_pipeline_layout =
430
+
self.device()
431
+
.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
432
+
label: Some("Render Pipeline Layout"),
433
+
bind_group_layouts: &bind_group_layouts,
434
+
push_constant_ranges: &[],
435
+
});
436
+
let render_pipeline =
437
+
self.device()
438
+
.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
439
+
label: Some("Render Pipeline"),
440
+
layout: Some(&render_pipeline_layout),
441
+
vertex: wgpu::VertexState {
442
+
module: &shader_module,
443
+
entry_point: Some("vs_main"),
444
+
buffers: &[Vertex::desc()],
445
+
compilation_options: PipelineCompilationOptions::default(),
446
+
},
447
+
fragment: Some(wgpu::FragmentState {
448
+
module: &shader_module,
449
+
entry_point: if mesh.texture.is_some() {
450
+
Some("fs_main")
451
+
} else {
452
+
Some("fs_color_only")
453
+
},
454
+
targets: &[Some(wgpu::ColorTargetState {
455
+
format: self.surface_fmt().add_srgb_suffix(),
456
+
blend: Some(BlendState::ALPHA_BLENDING),
457
+
write_mask: wgpu::ColorWrites::ALL,
458
+
})],
459
+
compilation_options: PipelineCompilationOptions::default(),
460
+
}),
461
+
primitive: wgpu::PrimitiveState {
462
+
topology: wgpu::PrimitiveTopology::TriangleList,
463
+
strip_index_format: None,
464
+
front_face: wgpu::FrontFace::Ccw,
465
+
cull_mode: None, // TODO toggle
466
+
// Setting this to anything other than Fill requires Features::NON_FILL_POLYGON_MODE
467
+
polygon_mode: wgpu::PolygonMode::Fill,
468
+
// Requires Features::DEPTH_CLIP_CONTROL
469
+
unclipped_depth: false,
470
+
// Requires Features::CONSERVATIVE_RASTERIZATION
471
+
conservative: false,
472
+
},
473
+
depth_stencil: Some(wgpu::DepthStencilState {
474
+
format: TextureBundle::DEPTH_FORMAT,
475
+
depth_write_enabled: true,
476
+
depth_compare: wgpu::CompareFunction::Less, // 1.
477
+
stencil: wgpu::StencilState::default(), // 2.
478
+
bias: wgpu::DepthBiasState::default(),
479
+
}),
480
+
multisample: wgpu::MultisampleState {
481
+
count: 1,
482
+
mask: !0,
483
+
alpha_to_coverage_enabled: false,
484
+
},
485
+
// If the pipeline will be used with a multiview render pass, this
486
+
// indicates how many array layers the attachments will have.
487
+
multiview: None,
488
+
cache: None,
489
+
});
490
+
491
+
// Scoped lifetime to drop the render pass
492
+
{
493
+
let render_pass_desc = wgpu::RenderPassDescriptor {
494
+
label: Some("Render Pass"),
495
+
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
496
+
view,
497
+
resolve_target: None,
498
+
ops: wgpu::Operations {
499
+
load: wgpu::LoadOp::Load,
500
+
store: wgpu::StoreOp::Store,
501
+
},
502
+
})],
503
+
depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment {
504
+
view: &self.depth_texture().view,
505
+
depth_ops: Some(wgpu::Operations {
506
+
load: wgpu::LoadOp::Load,
507
+
store: wgpu::StoreOp::Store,
508
+
}),
509
+
stencil_ops: None,
510
+
}),
511
+
occlusion_query_set: None,
512
+
timestamp_writes: None,
513
+
};
514
+
let mut render_pass = encoder.begin_render_pass(&render_pass_desc);
515
+
516
+
render_pass.set_pipeline(&render_pipeline);
517
+
render_pass.set_bind_group(0, self.camera_bg(), &[]);
518
+
render_pass.set_bind_group(1, &char_shape_bind_group, &[]);
519
+
render_pass.set_bind_group(2, &projected_texture_bind_group, &[]);
520
+
render_pass.set_vertex_buffer(0, vertex_buffer.slice(..));
521
+
render_pass.set_index_buffer(index_buffer.slice(..), wgpu::IndexFormat::Uint32);
522
+
523
+
render_pass.draw_indexed(0..mesh.indices.len().try_into().unwrap(), 0, 0..1);
524
+
}
525
+
}
526
+
}
527
+
528
+
pub mod texture {
529
+
use std::error::Error;
530
+
use std::fmt::Debug;
531
+
532
+
use glam::UVec2;
533
+
use image::GenericImageView;
534
+
use wgpu::TextureFormat;
535
+
536
+
pub struct TextureBundle {
537
+
#[allow(unused)]
538
+
pub texture: wgpu::Texture,
539
+
pub view: wgpu::TextureView,
540
+
pub sampler: wgpu::Sampler,
541
+
}
542
+
impl Debug for TextureBundle {
543
+
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
544
+
f.debug_struct("Texture").finish()
545
+
}
546
+
}
547
+
548
+
#[allow(unused)]
549
+
impl TextureBundle {
550
+
pub fn from_bytes(
551
+
device: &wgpu::Device,
552
+
queue: &wgpu::Queue,
553
+
bytes: &[u8],
554
+
label: &str,
555
+
) -> Result<Self, Box<dyn Error>> {
556
+
let img = image::load_from_memory(bytes)?;
557
+
Self::from_image(device, queue, &img, Some(label))
558
+
}
559
+
560
+
pub fn from_image(
561
+
device: &wgpu::Device,
562
+
queue: &wgpu::Queue,
563
+
img: &image::DynamicImage,
564
+
label: Option<&str>,
565
+
) -> Result<Self, Box<dyn Error>> {
566
+
let rgba = img.to_rgba8();
567
+
let dimensions = img.dimensions();
568
+
569
+
let size = wgpu::Extent3d {
570
+
width: dimensions.0,
571
+
height: dimensions.1,
572
+
depth_or_array_layers: 1,
573
+
};
574
+
let texture = device.create_texture(&wgpu::TextureDescriptor {
575
+
label,
576
+
size,
577
+
mip_level_count: 1,
578
+
sample_count: 1,
579
+
dimension: wgpu::TextureDimension::D2,
580
+
format: wgpu::TextureFormat::Rgba8UnormSrgb,
581
+
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
582
+
view_formats: &[],
583
+
});
584
+
585
+
queue.write_texture(
586
+
wgpu::TexelCopyTextureInfo {
587
+
aspect: wgpu::TextureAspect::All,
588
+
texture: &texture,
589
+
mip_level: 0,
590
+
origin: wgpu::Origin3d::ZERO,
591
+
},
592
+
&rgba,
593
+
wgpu::TexelCopyBufferLayout {
594
+
offset: 0,
595
+
bytes_per_row: Some(4 * dimensions.0),
596
+
rows_per_image: Some(dimensions.1),
597
+
},
598
+
size,
599
+
);
600
+
601
+
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
602
+
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
603
+
address_mode_u: wgpu::AddressMode::ClampToEdge,
604
+
address_mode_v: wgpu::AddressMode::ClampToEdge,
605
+
address_mode_w: wgpu::AddressMode::ClampToEdge,
606
+
mag_filter: wgpu::FilterMode::Linear,
607
+
min_filter: wgpu::FilterMode::Nearest,
608
+
mipmap_filter: wgpu::FilterMode::Nearest,
609
+
..Default::default()
610
+
});
611
+
612
+
Ok(Self {
613
+
texture,
614
+
view,
615
+
sampler,
616
+
})
617
+
}
618
+
619
+
pub const DEPTH_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Depth32Float; // 1.
620
+
621
+
pub fn create_depth_texture(device: &wgpu::Device, size: &UVec2, label: &str) -> Self {
622
+
let size = wgpu::Extent3d {
623
+
// 2.
624
+
width: size.x.max(1),
625
+
height: size.y.max(1),
626
+
depth_or_array_layers: 1,
627
+
};
628
+
let desc = wgpu::TextureDescriptor {
629
+
label: Some(label),
630
+
size,
631
+
mip_level_count: 1,
632
+
sample_count: 1,
633
+
dimension: wgpu::TextureDimension::D2,
634
+
format: Self::DEPTH_FORMAT,
635
+
usage: wgpu::TextureUsages::RENDER_ATTACHMENT // 3.
636
+
| wgpu::TextureUsages::TEXTURE_BINDING,
637
+
view_formats: &[],
638
+
};
639
+
let texture = device.create_texture(&desc);
640
+
641
+
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
642
+
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
643
+
// 4.
644
+
address_mode_u: wgpu::AddressMode::ClampToEdge,
645
+
address_mode_v: wgpu::AddressMode::ClampToEdge,
646
+
address_mode_w: wgpu::AddressMode::ClampToEdge,
647
+
mag_filter: wgpu::FilterMode::Linear,
648
+
min_filter: wgpu::FilterMode::Linear,
649
+
mipmap_filter: wgpu::FilterMode::Nearest,
650
+
compare: Some(wgpu::CompareFunction::LessEqual), // 5.
651
+
lod_min_clamp: 0.0,
652
+
lod_max_clamp: 100.0,
653
+
..Default::default()
654
+
});
655
+
656
+
Self {
657
+
texture,
658
+
view,
659
+
sampler,
660
+
}
661
+
}
662
+
663
+
pub fn create_texture(device: &wgpu::Device, size: &UVec2, label: &str) -> Self {
664
+
let size = wgpu::Extent3d {
665
+
// 2.
666
+
width: size.x.max(1),
667
+
height: size.y.max(1),
668
+
depth_or_array_layers: 1,
669
+
};
670
+
let desc = wgpu::TextureDescriptor {
671
+
label: Some(label),
672
+
size,
673
+
mip_level_count: 1,
674
+
sample_count: 1,
675
+
dimension: wgpu::TextureDimension::D2,
676
+
format: TextureFormat::Bgra8UnormSrgb,
677
+
usage: wgpu::TextureUsages::RENDER_ATTACHMENT // 3.
678
+
| wgpu::TextureUsages::TEXTURE_BINDING
679
+
| wgpu::TextureUsages::COPY_SRC,
680
+
view_formats: &[],
681
+
};
682
+
let texture = device.create_texture(&desc);
683
+
684
+
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
685
+
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
686
+
// 4.
687
+
address_mode_u: wgpu::AddressMode::MirrorRepeat,
688
+
address_mode_v: wgpu::AddressMode::MirrorRepeat,
689
+
address_mode_w: wgpu::AddressMode::MirrorRepeat,
690
+
mag_filter: wgpu::FilterMode::Linear,
691
+
min_filter: wgpu::FilterMode::Linear,
692
+
mipmap_filter: wgpu::FilterMode::Nearest,
693
+
lod_min_clamp: 0.0,
694
+
lod_max_clamp: 100.0,
695
+
..Default::default()
696
+
});
697
+
698
+
Self {
699
+
texture,
700
+
view,
701
+
sampler,
702
+
}
703
+
}
704
+
}
705
+
}
+93
crates/vfl/src/draw/mod.rs
+93
crates/vfl/src/draw/mod.rs
···
1
+
use crate::color::nx::ModulationIntent;
2
+
use faceline::trivial_quad;
3
+
use image::DynamicImage;
4
+
use nalgebra as na;
5
+
use render_2d::Model2d;
6
+
use render_3d::GenericModel3d;
7
+
8
+
#[cfg(feature = "draw")]
9
+
pub mod render_2d;
10
+
#[cfg(feature = "draw")]
11
+
pub mod render_3d;
12
+
#[cfg(feature = "draw")]
13
+
pub mod wgpu_render;
14
+
15
+
pub mod faceline;
16
+
pub mod mask;
17
+
18
+
pub const TEX_SCALE_X: f32 = 0.889_614_64;
19
+
pub const TEX_SCALE_Y: f32 = 0.927_667_5;
20
+
21
+
#[repr(C)]
22
+
#[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
23
+
pub struct Vertex {
24
+
pub position: [f32; 3],
25
+
pub tex_coords: [f32; 2],
26
+
pub normal: [f32; 3],
27
+
}
28
+
29
+
pub struct DrawableTexture {
30
+
pub rendered_texture: DynamicImage,
31
+
pub modulation: ModulationIntent,
32
+
pub opaque: Option<[f32; 4]>,
33
+
}
34
+
impl DrawableTexture {
35
+
#[must_use]
36
+
pub fn model_2d(self) -> Model2d {
37
+
let (vertices, indices) = trivial_quad();
38
+
39
+
let mvp_matrix = {
40
+
let scale = na::Vector3::<f32>::new(-2.0, -2.0, 1.0); // IDK
41
+
42
+
na::Matrix4::new_nonuniform_scaling(&scale)
43
+
};
44
+
45
+
Model2d {
46
+
vertices,
47
+
indices,
48
+
tex: self.rendered_texture,
49
+
mvp_matrix,
50
+
modulation: self.modulation,
51
+
opaque: self.opaque,
52
+
label: None,
53
+
}
54
+
}
55
+
}
56
+
57
+
pub trait AbstractRenderer {
58
+
type DrawState;
59
+
60
+
fn draw_texture<Rt, Cb>(
61
+
&mut self,
62
+
texture: DrawableTexture,
63
+
render_target: Rt,
64
+
command_buffer: Cb,
65
+
) {
66
+
let (vertices, indices) = trivial_quad();
67
+
68
+
let mvp_matrix = {
69
+
let scale = na::Vector3::<f32>::new(-2.0, -2.0, 1.0); // IDK
70
+
71
+
na::Matrix4::new_nonuniform_scaling(&scale)
72
+
};
73
+
74
+
let rendered_2d_shape = Model2d {
75
+
vertices,
76
+
indices,
77
+
tex: texture.rendered_texture,
78
+
mvp_matrix,
79
+
modulation: texture.modulation,
80
+
opaque: texture.opaque,
81
+
label: None,
82
+
};
83
+
84
+
self.draw_model_2d(rendered_2d_shape, render_target, command_buffer);
85
+
}
86
+
fn draw_model_2d<Rt, Cb>(&mut self, mesh: Model2d, render_target: Rt, command_buffer: Cb);
87
+
fn draw_model_3d<Tex, Rt, Cb>(
88
+
&mut self,
89
+
mesh: GenericModel3d<Tex>,
90
+
render_target: Rt,
91
+
command_buffer: Cb,
92
+
);
93
+
}
+18
crates/vfl/src/draw/render_2d.rs
+18
crates/vfl/src/draw/render_2d.rs
···
1
+
use super::Vertex;
2
+
use crate::color::nx::ModulationIntent;
3
+
use image::DynamicImage;
4
+
use nalgebra::Matrix4;
5
+
6
+
type Color = [f32; 4];
7
+
8
+
const NON_REPLACEMENT: Color = [f32::NAN, f32::NAN, f32::NAN, f32::NAN];
9
+
#[derive(Debug)]
10
+
pub struct Model2d {
11
+
pub vertices: Vec<Vertex>,
12
+
pub indices: Vec<u32>,
13
+
pub tex: DynamicImage,
14
+
pub mvp_matrix: Matrix4<f32>,
15
+
pub modulation: ModulationIntent,
16
+
pub opaque: Option<Color>,
17
+
pub label: Option<String>,
18
+
}
+13
crates/vfl/src/draw/render_3d.rs
+13
crates/vfl/src/draw/render_3d.rs
+317
crates/vfl/src/draw/wgpu_render.rs
+317
crates/vfl/src/draw/wgpu_render.rs
···
1
+
use super::TEX_SCALE_X;
2
+
use super::TEX_SCALE_Y;
3
+
use super::Vertex;
4
+
use super::mask::{FacePart, ImageOrigin, MaskFaceParts};
5
+
use super::render_2d::Model2d;
6
+
use crate::{
7
+
charinfo::nx::NxCharInfo,
8
+
color::nx::{ColorModulated, modulate},
9
+
res::tex::nx::{ResourceTexture, TextureElement},
10
+
};
11
+
use glam::{UVec2, uvec2, vec3};
12
+
use nalgebra::Matrix4;
13
+
14
+
pub const FACE_OUTPUT_SIZE: u16 = 512;
15
+
pub use bytemuck::cast_slice;
16
+
17
+
const NON_REPLACEMENT: [f32; 4] = [f32::NAN, f32::NAN, f32::NAN, f32::NAN];
18
+
19
+
pub struct RenderContext {
20
+
size: UVec2,
21
+
pub shape: Vec<Model2d>,
22
+
}
23
+
impl RenderContext {
24
+
fn from_shapes(shape: Vec<Model2d>) -> RenderContext {
25
+
RenderContext {
26
+
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
27
+
shape,
28
+
}
29
+
}
30
+
}
31
+
32
+
impl RenderContext {
33
+
/// # Panics
34
+
/// - Panics if image loading fails.
35
+
pub fn new(
36
+
char: &NxCharInfo,
37
+
res_texture: &ResourceTexture,
38
+
file_texture: &[u8],
39
+
) -> RenderContext {
40
+
let mask = MaskFaceParts::init(char, 256.0);
41
+
42
+
let make_shape = |part: FacePart, modulated: ColorModulated, tex_data: TextureElement| {
43
+
let (vertices, indices, mtx) = quad(
44
+
part.x,
45
+
part.y,
46
+
part.width,
47
+
part.height,
48
+
part.angle_deg,
49
+
part.origin,
50
+
256.0,
51
+
);
52
+
53
+
let tex = tex_data.get_image(file_texture).unwrap().unwrap();
54
+
55
+
Model2d {
56
+
vertices,
57
+
indices,
58
+
tex: image::DynamicImage::ImageRgba8(tex),
59
+
mvp_matrix: mtx,
60
+
modulation: modulate(modulated, char),
61
+
opaque: None,
62
+
label: Some(format!("{modulated:?}")),
63
+
}
64
+
};
65
+
66
+
let left_eye = make_shape(
67
+
mask.eye[0],
68
+
ColorModulated::Eye,
69
+
res_texture.eye[char.eye_type as usize],
70
+
);
71
+
let right_eye = make_shape(
72
+
mask.eye[1],
73
+
ColorModulated::Eye,
74
+
res_texture.eye[char.eye_type as usize],
75
+
);
76
+
77
+
let left_brow = make_shape(
78
+
mask.eyebrow[0],
79
+
ColorModulated::Eyebrow,
80
+
res_texture.eyebrow[char.eyebrow_type as usize],
81
+
);
82
+
let right_brow = make_shape(
83
+
mask.eyebrow[1],
84
+
ColorModulated::Eyebrow,
85
+
res_texture.eyebrow[char.eyebrow_type as usize],
86
+
);
87
+
88
+
let mouth = make_shape(
89
+
mask.mouth,
90
+
ColorModulated::Mouth,
91
+
res_texture.mouth[char.mouth_type as usize],
92
+
);
93
+
94
+
RenderContext {
95
+
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
96
+
shape: vec![left_eye, right_eye, left_brow, right_brow, mouth],
97
+
}
98
+
}
99
+
100
+
/// # Panics
101
+
/// - Panics if image loading fails.
102
+
pub fn new_faceline(
103
+
char: &NxCharInfo,
104
+
res_texture: &ResourceTexture,
105
+
file_texture: &[u8],
106
+
) -> Self {
107
+
let mask = MaskFaceParts::init(char, 256.0);
108
+
109
+
let make_shape = |part: FacePart, modulated: ColorModulated, tex_data: TextureElement| {
110
+
let (vertices, indices, mtx) = quad(
111
+
part.x,
112
+
part.y,
113
+
part.width,
114
+
part.height,
115
+
part.angle_deg,
116
+
part.origin,
117
+
256.0,
118
+
);
119
+
120
+
let tex = tex_data.get_image(file_texture).unwrap().unwrap();
121
+
122
+
Model2d {
123
+
vertices,
124
+
indices,
125
+
tex: image::DynamicImage::ImageRgba8(tex),
126
+
mvp_matrix: mtx,
127
+
modulation: modulate(modulated, char),
128
+
opaque: None,
129
+
label: Some(format!("{modulated:?}")),
130
+
}
131
+
};
132
+
133
+
let mouth = make_shape(
134
+
mask.mouth,
135
+
ColorModulated::Mouth,
136
+
res_texture.mouth[char.mouth_type as usize],
137
+
);
138
+
139
+
RenderContext {
140
+
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
141
+
shape: vec![mouth],
142
+
}
143
+
}
144
+
}
145
+
146
+
pub fn model_view_matrix(
147
+
translation: mint::Vector3<f32>,
148
+
scale: mint::Vector3<f32>,
149
+
rot_z: f32,
150
+
) -> nalgebra::Matrix4<f32> {
151
+
let scale = nalgebra::Vector3::<f32>::from(scale);
152
+
let translation = nalgebra::Vector3::<f32>::from(translation);
153
+
154
+
let mut mtx = nalgebra::Matrix4::identity();
155
+
mtx.append_nonuniform_scaling_mut(&scale);
156
+
mtx *= nalgebra::Rotation3::from_euler_angles(0.0, 0.0, rot_z.to_radians()).to_homogeneous();
157
+
mtx.append_nonuniform_scaling_mut(&nalgebra::Vector3::new(TEX_SCALE_X, TEX_SCALE_Y, 1.0));
158
+
mtx.append_translation_mut(&translation);
159
+
160
+
mtx
161
+
}
162
+
163
+
fn v2(x: f32, y: f32) -> [f32; 3] {
164
+
[x, y, 0.0]
165
+
}
166
+
167
+
// https://github.com/SMGCommunity/Petari/blob/6e9ae741a99bb32e6ffbb230a88c976f539dde70/src/RVLFaceLib/RFL_MakeTex.c#L817
168
+
/// # Panics
169
+
/// Shouldn't panic!
170
+
pub fn quad(
171
+
x: f32,
172
+
y: f32,
173
+
width: f32,
174
+
height: f32,
175
+
rot_z: f32,
176
+
origin: ImageOrigin,
177
+
resolution: f32,
178
+
) -> (Vec<Vertex>, Vec<u32>, nalgebra::Matrix4<f32>) {
179
+
let base_x: f32;
180
+
let s0: f32;
181
+
let s1: f32;
182
+
183
+
let mv_mtx = model_view_matrix(
184
+
vec3(x, resolution - y, 0.0).into(),
185
+
vec3(width, height, 1.0).into(),
186
+
rot_z,
187
+
);
188
+
189
+
let p_mtx = Matrix4::new_orthographic(0.0, resolution, 0.0, resolution, -200.0, 200.0);
190
+
let mut mvp_mtx = p_mtx * mv_mtx;
191
+
192
+
*mvp_mtx
193
+
.get_mut((1, 1))
194
+
.expect("That index is never going to be out of bounds") *= -1.0;
195
+
196
+
match origin {
197
+
ImageOrigin::Center => {
198
+
base_x = -0.5;
199
+
s0 = 1.0;
200
+
s1 = 0.0;
201
+
}
202
+
ImageOrigin::Right => {
203
+
base_x = -1.0;
204
+
s0 = 1.0;
205
+
s1 = 0.0;
206
+
}
207
+
ImageOrigin::Left | ImageOrigin::Ignore => {
208
+
base_x = 0.0;
209
+
s0 = 0.0;
210
+
s1 = 1.0;
211
+
}
212
+
}
213
+
214
+
(
215
+
vec![
216
+
Vertex {
217
+
position: v2(1.0 + base_x, -0.5),
218
+
tex_coords: [s0, 0.0],
219
+
normal: [0.0, 0.0, 0.0],
220
+
},
221
+
Vertex {
222
+
position: v2(1.0 + base_x, 0.5),
223
+
tex_coords: [s0, 1.0],
224
+
normal: [0.0, 0.0, 0.0],
225
+
},
226
+
Vertex {
227
+
position: v2(base_x, 0.5),
228
+
tex_coords: [s1, 1.0],
229
+
normal: [0.0, 0.0, 0.0],
230
+
},
231
+
Vertex {
232
+
position: v2(base_x, -0.5),
233
+
tex_coords: [s1, 0.0],
234
+
normal: [0.0, 0.0, 0.0],
235
+
},
236
+
],
237
+
vec![0, 1, 2, 0, 2, 3],
238
+
mvp_mtx,
239
+
)
240
+
}
241
+
242
+
#[cfg(test)]
243
+
mod tests {
244
+
// use crate::draw::mask::MaskFaceParts;
245
+
// use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
246
+
// use crate::res::tex::nx::{ResourceTexture, TEXTURE_MID_SRGB_DAT};
247
+
// use binrw::BinRead;
248
+
// use glam::uvec2;
249
+
// use image_compare::Algorithm;
250
+
251
+
// use super::*;
252
+
// use std::{error::Error, fs::File, io::BufReader};
253
+
254
+
// type R = Result<(), Box<dyn Error>>;
255
+
256
+
// #[test]
257
+
// #[allow(clippy::too_many_lines)]
258
+
// fn test_render() -> R {
259
+
// let mut tex_file = BufReader::new(File::open(TEXTURE_MID_SRGB_DAT)?);
260
+
// let mut tex_shape = BufReader::new(File::open(SHAPE_MID_DAT)?);
261
+
262
+
// let mut char =
263
+
// File::open(concat!(env!("CARGO_MANIFEST_DIR"), "/../Jasmine.charinfo")).unwrap();
264
+
// let char = NxCharInfo::read(&mut char).unwrap();
265
+
266
+
// let image = pollster::block_on(render_context_wgpu(RenderContext::new(
267
+
// // &FaceParts::init(&char, 256.0),
268
+
// &char,
269
+
// (&mut tex_shape, &mut tex_file),
270
+
// )?));
271
+
// let image = image.flipv();
272
+
273
+
// image.save(concat!(
274
+
// env!("CARGO_MANIFEST_DIR"),
275
+
// "/test_output/mask-rendered.png"
276
+
// ))?;
277
+
278
+
// let reference_image = image::open(concat!(
279
+
// env!("CARGO_MANIFEST_DIR"),
280
+
// "/test_data/jasmine-mask.png"
281
+
// ))
282
+
// .unwrap();
283
+
284
+
// let similarity = image_compare::rgb_hybrid_compare(
285
+
// &image.clone().into_rgb8(),
286
+
// &reference_image.clone().into_rgb8(),
287
+
// )
288
+
// .expect("wrong size!");
289
+
290
+
// similarity
291
+
// .image
292
+
// .to_color_map()
293
+
// .save(concat!(
294
+
// env!("CARGO_MANIFEST_DIR"),
295
+
// "/test_output/mask-similarity.png"
296
+
// ))
297
+
// .unwrap();
298
+
299
+
// let similarity = image_compare::gray_similarity_structure(
300
+
// &Algorithm::MSSIMSimple,
301
+
// &image.into_luma8(),
302
+
// &reference_image.into_luma8(),
303
+
// )
304
+
// .expect("wrong size!");
305
+
306
+
// similarity
307
+
// .image
308
+
// .to_color_map()
309
+
// .save(concat!(
310
+
// env!("CARGO_MANIFEST_DIR"),
311
+
// "/test_output/mask-similarity-grey.png"
312
+
// ))
313
+
// .unwrap();
314
+
315
+
// Ok(())
316
+
// }
317
+
}
+1
lightweight_viewer/Cargo.toml
crates/lightweight_viewer/Cargo.toml
+1
lightweight_viewer/Cargo.toml
crates/lightweight_viewer/Cargo.toml
lightweight_viewer/src/app.rs
crates/lightweight_viewer/src/app.rs
lightweight_viewer/src/app.rs
crates/lightweight_viewer/src/app.rs
+32
-36
lightweight_viewer/src/char_draw.rs
crates/lightweight_viewer/src/char_draw.rs
+32
-36
lightweight_viewer/src/char_draw.rs
crates/lightweight_viewer/src/char_draw.rs
···
1
1
use crate::state::State;
2
2
use glam::{UVec2, Vec3, uvec2, vec3, vec4};
3
3
use image::DynamicImage;
4
+
use vee_wgpu::texture::TextureBundle;
5
+
use vee_wgpu::{Model3d, ProgramState};
4
6
use vfl::color::nx::ModulationIntent;
5
-
use vfl::color::nx::linear::FACELINE_COLOR;
6
-
use vfl::draw::render_3d::Rendered3dShape;
7
-
use vfl::draw::wgpu_render::Vertex;
7
+
use vfl::draw::render_3d::GenericModel3d;
8
+
use vfl::draw::{DrawableTexture, Vertex};
8
9
use vfl::res::shape::nx::ShapeData;
9
10
use vfl::res::tex::nx::{ResourceTexture, TextureElement};
10
11
use vfl::{
11
12
color::nx::{ColorModulated, modulate},
12
-
draw::{
13
-
render_2d::Rendered2dShape,
14
-
wgpu_render::{RenderContext, texture},
15
-
},
13
+
draw::wgpu_render::RenderContext,
16
14
res::shape::nx::{GenericResourceShape, Shape},
17
15
};
18
16
use wgpu::{CommandEncoder, TextureView};
···
33
31
.unwrap();
34
32
let tex = DynamicImage::ImageRgba8(tex);
35
33
36
-
Rendered2dShape::render_texture_trivial(
37
-
tex,
38
-
modulate(ColorModulated::NoseLineShape, &st.char_info),
39
-
None,
40
-
st,
34
+
st.draw_texture(
35
+
DrawableTexture {
36
+
rendered_texture: tex,
37
+
modulation: modulate(ColorModulated::NoseLineShape, &st.char_info),
38
+
opaque: None,
39
+
},
41
40
texture_view,
42
41
encoder,
43
-
Some("noseline".to_owned()),
44
42
);
45
43
}
46
44
47
45
pub(crate) fn draw_mask(st: &mut State, texture_view: &TextureView, encoder: &mut CommandEncoder) {
48
-
let res_shape = &st.resources.shape_header;
49
46
let res_texture = &st.resources.texture_header;
50
47
let file_texture = &st.resources.texture_data;
51
48
52
-
let render_context =
53
-
RenderContext::new(&st.char_info.clone(), res_texture, res_shape, file_texture).unwrap();
49
+
let render_context = RenderContext::new(&st.char_info.clone(), res_texture, file_texture);
54
50
55
-
for shape in render_context.shape {
56
-
shape.render(st, texture_view, encoder);
51
+
for mut shape in render_context.shape {
52
+
st.draw_model_2d(&mut shape, texture_view, encoder);
57
53
}
58
54
}
59
55
···
110
106
111
107
let textures = get_faceline_textures(st, &res_texture);
112
108
113
-
for (i, (rendered_texture, modulation)) in textures.iter().enumerate() {
109
+
for (i, (rendered_texture, modulation)) in textures.into_iter().enumerate() {
114
110
// Check if we are the first to be rendered out, then add an opaque background.
115
111
// We don't want an opaque redraw happening over our other faceline textures.
116
112
let opaque = (i == 0).then_some(
117
113
vfl::color::nx::linear::FACELINE_COLOR[usize::from(st.char_info.faceline_color)],
118
114
);
119
115
120
-
Rendered2dShape::render_texture_trivial(
121
-
rendered_texture.to_owned(),
122
-
modulation.to_owned(),
123
-
opaque,
124
-
st,
116
+
st.draw_texture(
117
+
DrawableTexture {
118
+
rendered_texture,
119
+
modulation,
120
+
opaque,
121
+
},
125
122
texture_view,
126
123
encoder,
127
-
Some("faceline".to_owned()),
128
124
);
129
125
}
130
126
}
···
142
138
return;
143
139
};
144
140
145
-
Rendered2dShape::render_texture_trivial(
146
-
rendered_texture,
147
-
modulation,
148
-
None,
149
-
st,
141
+
st.draw_texture(
142
+
DrawableTexture {
143
+
rendered_texture,
144
+
modulation,
145
+
opaque: None,
146
+
},
150
147
texture_view,
151
148
encoder,
152
-
Some("Glasses".to_owned()),
153
149
);
154
150
}
155
151
···
159
155
shape_color: u8,
160
156
st: &mut State,
161
157
encoder: &mut CommandEncoder,
162
-
) -> Option<Rendered3dShape> {
158
+
) -> Option<Model3d> {
163
159
let res_shape = &st.resources.shape_header;
164
160
165
161
let GenericResourceShape::FaceLineTransform(faceline_transform) = res_shape.index_by_shape(
···
209
205
210
206
// Closure to reduce boilerplate for writing out textures.
211
207
let mut draw_tex = |func: fn(&mut State, &TextureView, &mut CommandEncoder), size: UVec2| {
212
-
let texture = texture::Texture::create_texture(
208
+
let texture = TextureBundle::create_texture(
213
209
&st.device,
214
210
&size,
215
211
&format!("projected texture {func:?}"),
···
248
244
color: usize,
249
245
position: Vec3,
250
246
scale: Vec3,
251
-
projected_texture: Option<texture::Texture>,
252
-
) -> Rendered3dShape {
247
+
projected_texture: Option<TextureBundle>,
248
+
) -> Model3d {
253
249
let mut vertices: Vec<Vertex> = vec![];
254
250
let tex_coords = d
255
251
.uvs
···
266
262
267
263
let indices = d.indices.iter().map(|x| u32::from(*x)).collect();
268
264
269
-
Rendered3dShape {
265
+
GenericModel3d {
270
266
vertices,
271
267
indices,
272
268
color: match shape {
+12
-9
lightweight_viewer/src/char_model.rs
crates/lightweight_viewer/src/char_model.rs
+12
-9
lightweight_viewer/src/char_model.rs
crates/lightweight_viewer/src/char_model.rs
···
1
1
use crate::{char_draw::load_shape, state::State};
2
-
use vfl::{draw::render_3d::Rendered3dShape, res::shape::nx::Shape};
2
+
use vee_wgpu::{Model3d, ProgramState};
3
+
use vfl::res::shape::nx::Shape;
3
4
use wgpu::{CommandEncoder, TextureView};
4
5
5
6
// I want to rename these things eventually...
6
-
type Model = Rendered3dShape;
7
-
type ModelOpt = Option<Rendered3dShape>;
7
+
type Model = Model3d;
8
+
type ModelOpt = Option<Model3d>;
8
9
9
10
/// A bundle of models that in totality represent a character.
10
11
#[derive(Debug)]
···
35
36
texture_view: &TextureView,
36
37
encoder: &mut CommandEncoder,
37
38
) {
38
-
self.face_line.render(st, texture_view, encoder);
39
+
st.draw_model_3d(&mut self.face_line, texture_view, encoder);
40
+
39
41
if let Some(hair) = self.hair.as_mut() {
40
-
hair.render(st, texture_view, encoder);
42
+
st.draw_model_3d(hair, texture_view, encoder);
41
43
}
42
-
self.mask.render(st, texture_view, encoder);
44
+
45
+
st.draw_model_3d(&mut self.mask, texture_view, encoder);
43
46
44
47
if let Some(nose) = self.nose.as_mut() {
45
-
nose.render(st, texture_view, encoder);
48
+
st.draw_model_3d(nose, texture_view, encoder);
46
49
}
47
50
48
-
self.nose_line.render(st, texture_view, encoder);
51
+
st.draw_model_3d(&mut self.nose_line, texture_view, encoder);
49
52
50
53
if let Some(glasses) = self.glasses.as_mut() {
51
-
glasses.render(st, texture_view, encoder);
54
+
st.draw_model_3d(glasses, texture_view, encoder);
52
55
}
53
56
}
54
57
}
lightweight_viewer/src/main.rs
crates/lightweight_viewer/src/main.rs
lightweight_viewer/src/main.rs
crates/lightweight_viewer/src/main.rs
lightweight_viewer/src/shader-face.wgsl
crates/lightweight_viewer/src/shader-face.wgsl
lightweight_viewer/src/shader-face.wgsl
crates/lightweight_viewer/src/shader-face.wgsl
lightweight_viewer/src/shader-texture.wgsl
crates/lightweight_viewer/src/shader-texture.wgsl
lightweight_viewer/src/shader-texture.wgsl
crates/lightweight_viewer/src/shader-texture.wgsl
lightweight_viewer/src/shader.wgsl
crates/lightweight_viewer/src/shader.wgsl
lightweight_viewer/src/shader.wgsl
crates/lightweight_viewer/src/shader.wgsl
+14
-9
lightweight_viewer/src/state.rs
crates/lightweight_viewer/src/state.rs
+14
-9
lightweight_viewer/src/state.rs
crates/lightweight_viewer/src/state.rs
···
5
5
use nest_struct::nest_struct;
6
6
use std::sync::{Mutex, MutexGuard, OnceLock};
7
7
use std::{f32::consts::FRAC_PI_2, fs::File, sync::Arc};
8
+
use vee_wgpu::ProgramState;
9
+
use vee_wgpu::texture::TextureBundle;
8
10
use vfl::res::shape::nx::ResourceShape;
9
11
use vfl::res::tex::nx::ResourceTexture;
10
12
use vfl::{
11
13
charinfo::nx::{BinRead, NxCharInfo},
12
-
draw::{render_3d::ProgramState, wgpu_render::texture},
13
14
res::{shape::nx::SHAPE_MID_DAT, tex::nx::TEXTURE_MID_SRGB_DAT},
14
15
};
15
16
use wgpu::{Backends, util::DeviceExt};
···
58
59
pub(crate) camera_bind_group: wgpu::BindGroup,
59
60
pub(crate) camera_uniform: CameraUniform,
60
61
pub(crate) camera_bind_group_layout: wgpu::BindGroupLayout,
61
-
pub(crate) depth_texture: texture::Texture,
62
+
pub(crate) depth_texture: TextureBundle,
62
63
pub(crate) camera_rotations: usize,
63
64
pub(crate) resources: ResourceData! {
64
65
pub(crate) texture_header: ResourceTexture,
···
91
92
let cap = surface.get_capabilities(&adapter);
92
93
let surface_format = cap.formats[0];
93
94
94
-
let depth_texture = texture::Texture::create_depth_texture(&device, &size, "depth_texture");
95
+
let depth_texture = TextureBundle::create_depth_texture(&device, &size, "depth_texture");
95
96
96
-
let mut char_info =
97
-
File::open(format!("{}/../{}", env!("CARGO_MANIFEST_DIR"), FACES[0])).unwrap();
97
+
let mut char_info = File::open(format!(
98
+
"{}/resources_here/{}",
99
+
env!("CARGO_WORKSPACE_DIR"),
100
+
FACES[0]
101
+
))
102
+
.unwrap();
98
103
let char_info = NxCharInfo::read(&mut char_info).unwrap();
99
104
100
105
let camera = Camera {
···
274
279
self.configure_surface();
275
280
276
281
self.depth_texture =
277
-
texture::Texture::create_depth_texture(&self.device, &self.size, "depth_texture");
282
+
TextureBundle::create_depth_texture(&self.device, &self.size, "depth_texture");
278
283
}
279
284
280
285
pub fn update(&mut self) {
···
296
301
self.camera_rotations += 1;
297
302
298
303
let mut char_info = File::open(format!(
299
-
"{}/../{}",
300
-
env!("CARGO_MANIFEST_DIR"),
304
+
"{}/resources_here/{}",
305
+
env!("CARGO_WORKSPACE_DIR"),
301
306
FACES[self.camera_rotations % FACES.len()]
302
307
))
303
308
.unwrap();
···
340
345
self.surface_format
341
346
}
342
347
343
-
fn depth_texture(&self) -> &vfl::draw::wgpu_render::texture::Texture {
348
+
fn depth_texture(&self) -> &TextureBundle {
344
349
&self.depth_texture
345
350
}
346
351
}
-6450
vfl/Cargo.lock
-6450
vfl/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 = "ab_glyph"
7
-
version = "0.2.29"
8
-
source = "registry+https://github.com/rust-lang/crates.io-index"
9
-
checksum = "ec3672c180e71eeaaac3a541fbbc5f5ad4def8b747c595ad30d674e43049f7b0"
10
-
dependencies = [
11
-
"ab_glyph_rasterizer",
12
-
"owned_ttf_parser",
13
-
]
14
-
15
-
[[package]]
16
-
name = "ab_glyph_rasterizer"
17
-
version = "0.1.8"
18
-
source = "registry+https://github.com/rust-lang/crates.io-index"
19
-
checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
20
-
21
-
[[package]]
22
-
name = "accesskit"
23
-
version = "0.18.0"
24
-
source = "registry+https://github.com/rust-lang/crates.io-index"
25
-
checksum = "becf0eb5215b6ecb0a739c31c21bd83c4f326524c9b46b7e882d77559b60a529"
26
-
27
-
[[package]]
28
-
name = "accesskit_consumer"
29
-
version = "0.27.0"
30
-
source = "registry+https://github.com/rust-lang/crates.io-index"
31
-
checksum = "d0bf66a7bf0b7ea4fd7742d50b64782a88f99217cf246b3f93b4162528dde520"
32
-
dependencies = [
33
-
"accesskit",
34
-
"hashbrown",
35
-
"immutable-chunkmap",
36
-
]
37
-
38
-
[[package]]
39
-
name = "accesskit_macos"
40
-
version = "0.19.0"
41
-
source = "registry+https://github.com/rust-lang/crates.io-index"
42
-
checksum = "09e230718177753b4e4ad9e1d9f6cfc2f4921212d4c1c480b253f526babb258d"
43
-
dependencies = [
44
-
"accesskit",
45
-
"accesskit_consumer",
46
-
"hashbrown",
47
-
"objc2 0.5.2",
48
-
"objc2-app-kit 0.2.2",
49
-
"objc2-foundation 0.2.2",
50
-
]
51
-
52
-
[[package]]
53
-
name = "accesskit_windows"
54
-
version = "0.25.0"
55
-
source = "registry+https://github.com/rust-lang/crates.io-index"
56
-
checksum = "65178f3df98a51e4238e584fcb255cb1a4f9111820848eeddd37663be40a625f"
57
-
dependencies = [
58
-
"accesskit",
59
-
"accesskit_consumer",
60
-
"hashbrown",
61
-
"paste",
62
-
"static_assertions",
63
-
"windows 0.58.0",
64
-
"windows-core 0.58.0",
65
-
]
66
-
67
-
[[package]]
68
-
name = "accesskit_winit"
69
-
version = "0.25.0"
70
-
source = "registry+https://github.com/rust-lang/crates.io-index"
71
-
checksum = "34d941bb8c414caba6e206de669c7dc0dbeb305640ea890772ee422a40e6b89f"
72
-
dependencies = [
73
-
"accesskit",
74
-
"accesskit_macos",
75
-
"accesskit_windows",
76
-
"raw-window-handle",
77
-
"winit",
78
-
]
79
-
80
-
[[package]]
81
-
name = "adler2"
82
-
version = "2.0.0"
83
-
source = "registry+https://github.com/rust-lang/crates.io-index"
84
-
checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
85
-
86
-
[[package]]
87
-
name = "ahash"
88
-
version = "0.8.12"
89
-
source = "registry+https://github.com/rust-lang/crates.io-index"
90
-
checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
91
-
dependencies = [
92
-
"cfg-if",
93
-
"getrandom 0.3.3",
94
-
"once_cell",
95
-
"version_check",
96
-
"zerocopy",
97
-
]
98
-
99
-
[[package]]
100
-
name = "aho-corasick"
101
-
version = "1.1.3"
102
-
source = "registry+https://github.com/rust-lang/crates.io-index"
103
-
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
104
-
dependencies = [
105
-
"memchr",
106
-
]
107
-
108
-
[[package]]
109
-
name = "aligned-vec"
110
-
version = "0.5.0"
111
-
source = "registry+https://github.com/rust-lang/crates.io-index"
112
-
checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
113
-
114
-
[[package]]
115
-
name = "alsa"
116
-
version = "0.9.1"
117
-
source = "registry+https://github.com/rust-lang/crates.io-index"
118
-
checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43"
119
-
dependencies = [
120
-
"alsa-sys",
121
-
"bitflags 2.9.0",
122
-
"cfg-if",
123
-
"libc",
124
-
]
125
-
126
-
[[package]]
127
-
name = "alsa-sys"
128
-
version = "0.3.1"
129
-
source = "registry+https://github.com/rust-lang/crates.io-index"
130
-
checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
131
-
dependencies = [
132
-
"libc",
133
-
"pkg-config",
134
-
]
135
-
136
-
[[package]]
137
-
name = "android-activity"
138
-
version = "0.6.0"
139
-
source = "registry+https://github.com/rust-lang/crates.io-index"
140
-
checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046"
141
-
dependencies = [
142
-
"android-properties",
143
-
"bitflags 2.9.0",
144
-
"cc",
145
-
"cesu8",
146
-
"jni",
147
-
"jni-sys",
148
-
"libc",
149
-
"log",
150
-
"ndk 0.9.0",
151
-
"ndk-context",
152
-
"ndk-sys 0.6.0+11769913",
153
-
"num_enum",
154
-
"thiserror 1.0.69",
155
-
]
156
-
157
-
[[package]]
158
-
name = "android-properties"
159
-
version = "0.2.2"
160
-
source = "registry+https://github.com/rust-lang/crates.io-index"
161
-
checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04"
162
-
163
-
[[package]]
164
-
name = "android_log-sys"
165
-
version = "0.3.2"
166
-
source = "registry+https://github.com/rust-lang/crates.io-index"
167
-
checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d"
168
-
169
-
[[package]]
170
-
name = "android_system_properties"
171
-
version = "0.1.5"
172
-
source = "registry+https://github.com/rust-lang/crates.io-index"
173
-
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
174
-
dependencies = [
175
-
"libc",
176
-
]
177
-
178
-
[[package]]
179
-
name = "anyhow"
180
-
version = "1.0.98"
181
-
source = "registry+https://github.com/rust-lang/crates.io-index"
182
-
checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487"
183
-
184
-
[[package]]
185
-
name = "approx"
186
-
version = "0.5.1"
187
-
source = "registry+https://github.com/rust-lang/crates.io-index"
188
-
checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
189
-
dependencies = [
190
-
"num-traits",
191
-
]
192
-
193
-
[[package]]
194
-
name = "arbitrary"
195
-
version = "1.4.1"
196
-
source = "registry+https://github.com/rust-lang/crates.io-index"
197
-
checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
198
-
199
-
[[package]]
200
-
name = "arboard"
201
-
version = "3.5.0"
202
-
source = "registry+https://github.com/rust-lang/crates.io-index"
203
-
checksum = "c1df21f715862ede32a0c525ce2ca4d52626bb0007f8c18b87a384503ac33e70"
204
-
dependencies = [
205
-
"clipboard-win",
206
-
"image 0.25.6",
207
-
"log",
208
-
"objc2 0.6.1",
209
-
"objc2-app-kit 0.3.1",
210
-
"objc2-core-foundation",
211
-
"objc2-core-graphics",
212
-
"objc2-foundation 0.3.1",
213
-
"parking_lot",
214
-
"percent-encoding",
215
-
"windows-sys 0.59.0",
216
-
"x11rb",
217
-
]
218
-
219
-
[[package]]
220
-
name = "arg_enum_proc_macro"
221
-
version = "0.3.4"
222
-
source = "registry+https://github.com/rust-lang/crates.io-index"
223
-
checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
224
-
dependencies = [
225
-
"proc-macro2",
226
-
"quote",
227
-
"syn 2.0.101",
228
-
]
229
-
230
-
[[package]]
231
-
name = "array-init"
232
-
version = "2.1.0"
233
-
source = "registry+https://github.com/rust-lang/crates.io-index"
234
-
checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc"
235
-
236
-
[[package]]
237
-
name = "arrayref"
238
-
version = "0.3.9"
239
-
source = "registry+https://github.com/rust-lang/crates.io-index"
240
-
checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
241
-
242
-
[[package]]
243
-
name = "arrayvec"
244
-
version = "0.7.6"
245
-
source = "registry+https://github.com/rust-lang/crates.io-index"
246
-
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
247
-
248
-
[[package]]
249
-
name = "as-raw-xcb-connection"
250
-
version = "1.0.1"
251
-
source = "registry+https://github.com/rust-lang/crates.io-index"
252
-
checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b"
253
-
254
-
[[package]]
255
-
name = "ash"
256
-
version = "0.38.0+1.3.281"
257
-
source = "registry+https://github.com/rust-lang/crates.io-index"
258
-
checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f"
259
-
dependencies = [
260
-
"libloading",
261
-
]
262
-
263
-
[[package]]
264
-
name = "assert_type_match"
265
-
version = "0.1.1"
266
-
source = "registry+https://github.com/rust-lang/crates.io-index"
267
-
checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043"
268
-
dependencies = [
269
-
"proc-macro2",
270
-
"quote",
271
-
"syn 2.0.101",
272
-
]
273
-
274
-
[[package]]
275
-
name = "async-broadcast"
276
-
version = "0.7.2"
277
-
source = "registry+https://github.com/rust-lang/crates.io-index"
278
-
checksum = "435a87a52755b8f27fcf321ac4f04b2802e337c8c4872923137471ec39c37532"
279
-
dependencies = [
280
-
"event-listener",
281
-
"event-listener-strategy",
282
-
"futures-core",
283
-
"pin-project-lite",
284
-
]
285
-
286
-
[[package]]
287
-
name = "async-channel"
288
-
version = "2.3.1"
289
-
source = "registry+https://github.com/rust-lang/crates.io-index"
290
-
checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
291
-
dependencies = [
292
-
"concurrent-queue",
293
-
"event-listener-strategy",
294
-
"futures-core",
295
-
"pin-project-lite",
296
-
]
297
-
298
-
[[package]]
299
-
name = "async-executor"
300
-
version = "1.13.2"
301
-
source = "registry+https://github.com/rust-lang/crates.io-index"
302
-
checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa"
303
-
dependencies = [
304
-
"async-task",
305
-
"concurrent-queue",
306
-
"fastrand",
307
-
"futures-lite",
308
-
"pin-project-lite",
309
-
"slab",
310
-
]
311
-
312
-
[[package]]
313
-
name = "async-fs"
314
-
version = "2.1.2"
315
-
source = "registry+https://github.com/rust-lang/crates.io-index"
316
-
checksum = "ebcd09b382f40fcd159c2d695175b2ae620ffa5f3bd6f664131efff4e8b9e04a"
317
-
dependencies = [
318
-
"async-lock",
319
-
"blocking",
320
-
"futures-lite",
321
-
]
322
-
323
-
[[package]]
324
-
name = "async-lock"
325
-
version = "3.4.0"
326
-
source = "registry+https://github.com/rust-lang/crates.io-index"
327
-
checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
328
-
dependencies = [
329
-
"event-listener",
330
-
"event-listener-strategy",
331
-
"pin-project-lite",
332
-
]
333
-
334
-
[[package]]
335
-
name = "async-task"
336
-
version = "4.7.1"
337
-
source = "registry+https://github.com/rust-lang/crates.io-index"
338
-
checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
339
-
dependencies = [
340
-
"portable-atomic",
341
-
]
342
-
343
-
[[package]]
344
-
name = "atomic-waker"
345
-
version = "1.1.2"
346
-
source = "registry+https://github.com/rust-lang/crates.io-index"
347
-
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
348
-
dependencies = [
349
-
"portable-atomic",
350
-
]
351
-
352
-
[[package]]
353
-
name = "atomicow"
354
-
version = "1.1.0"
355
-
source = "registry+https://github.com/rust-lang/crates.io-index"
356
-
checksum = "f52e8890bb9844440d0c412fa74b67fd2f14e85248b6e00708059b6da9e5f8bf"
357
-
dependencies = [
358
-
"portable-atomic",
359
-
"portable-atomic-util",
360
-
]
361
-
362
-
[[package]]
363
-
name = "autocfg"
364
-
version = "1.4.0"
365
-
source = "registry+https://github.com/rust-lang/crates.io-index"
366
-
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
367
-
368
-
[[package]]
369
-
name = "av1-grain"
370
-
version = "0.2.3"
371
-
source = "registry+https://github.com/rust-lang/crates.io-index"
372
-
checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf"
373
-
dependencies = [
374
-
"anyhow",
375
-
"arrayvec",
376
-
"log",
377
-
"nom",
378
-
"num-rational",
379
-
"v_frame",
380
-
]
381
-
382
-
[[package]]
383
-
name = "avif-serialize"
384
-
version = "0.8.3"
385
-
source = "registry+https://github.com/rust-lang/crates.io-index"
386
-
checksum = "98922d6a4cfbcb08820c69d8eeccc05bb1f29bfa06b4f5b1dbfe9a868bd7608e"
387
-
dependencies = [
388
-
"arrayvec",
389
-
]
390
-
391
-
[[package]]
392
-
name = "base64"
393
-
version = "0.13.1"
394
-
source = "registry+https://github.com/rust-lang/crates.io-index"
395
-
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
396
-
397
-
[[package]]
398
-
name = "base64"
399
-
version = "0.21.7"
400
-
source = "registry+https://github.com/rust-lang/crates.io-index"
401
-
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
402
-
403
-
[[package]]
404
-
name = "base64"
405
-
version = "0.22.1"
406
-
source = "registry+https://github.com/rust-lang/crates.io-index"
407
-
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
408
-
409
-
[[package]]
410
-
name = "bevy"
411
-
version = "0.16.0"
412
-
source = "registry+https://github.com/rust-lang/crates.io-index"
413
-
checksum = "2a5cd3b24a5adb7c7378da7b3eea47639877643d11b6b087fc8a8094f2528615"
414
-
dependencies = [
415
-
"bevy_internal",
416
-
]
417
-
418
-
[[package]]
419
-
name = "bevy_a11y"
420
-
version = "0.16.0"
421
-
source = "registry+https://github.com/rust-lang/crates.io-index"
422
-
checksum = "91ed969a58fbe449ef35ebec58ab19578302537f34ee8a35d04e5a038b3c40f5"
423
-
dependencies = [
424
-
"accesskit",
425
-
"bevy_app",
426
-
"bevy_derive",
427
-
"bevy_ecs",
428
-
"bevy_reflect",
429
-
]
430
-
431
-
[[package]]
432
-
name = "bevy_animation"
433
-
version = "0.16.0"
434
-
source = "registry+https://github.com/rust-lang/crates.io-index"
435
-
checksum = "3647b67c6bfd456922b2720ccef980dec01742d155d0eb454dc3d8fdc65e7aff"
436
-
dependencies = [
437
-
"bevy_app",
438
-
"bevy_asset",
439
-
"bevy_color",
440
-
"bevy_derive",
441
-
"bevy_ecs",
442
-
"bevy_log",
443
-
"bevy_math",
444
-
"bevy_mesh",
445
-
"bevy_platform",
446
-
"bevy_reflect",
447
-
"bevy_render",
448
-
"bevy_time",
449
-
"bevy_transform",
450
-
"bevy_utils",
451
-
"blake3",
452
-
"derive_more",
453
-
"downcast-rs 2.0.1",
454
-
"either",
455
-
"petgraph",
456
-
"ron",
457
-
"serde",
458
-
"smallvec",
459
-
"thiserror 2.0.12",
460
-
"thread_local",
461
-
"tracing",
462
-
"uuid",
463
-
]
464
-
465
-
[[package]]
466
-
name = "bevy_app"
467
-
version = "0.16.0"
468
-
source = "registry+https://github.com/rust-lang/crates.io-index"
469
-
checksum = "a2b6267ac23a9947d5b2725ff047a1e1add70076d85fa9fb73d044ab9bea1f3c"
470
-
dependencies = [
471
-
"bevy_derive",
472
-
"bevy_ecs",
473
-
"bevy_platform",
474
-
"bevy_reflect",
475
-
"bevy_tasks",
476
-
"bevy_utils",
477
-
"cfg-if",
478
-
"console_error_panic_hook",
479
-
"ctrlc",
480
-
"downcast-rs 2.0.1",
481
-
"log",
482
-
"thiserror 2.0.12",
483
-
"variadics_please",
484
-
"wasm-bindgen",
485
-
"web-sys",
486
-
]
487
-
488
-
[[package]]
489
-
name = "bevy_asset"
490
-
version = "0.16.0"
491
-
source = "registry+https://github.com/rust-lang/crates.io-index"
492
-
checksum = "0698040d63199391ea77fd02e039630748e3e335c3070c6d932fd96cbf80f5d6"
493
-
dependencies = [
494
-
"async-broadcast",
495
-
"async-fs",
496
-
"async-lock",
497
-
"atomicow",
498
-
"bevy_app",
499
-
"bevy_asset_macros",
500
-
"bevy_ecs",
501
-
"bevy_platform",
502
-
"bevy_reflect",
503
-
"bevy_tasks",
504
-
"bevy_utils",
505
-
"bevy_window",
506
-
"bitflags 2.9.0",
507
-
"blake3",
508
-
"crossbeam-channel",
509
-
"derive_more",
510
-
"disqualified",
511
-
"downcast-rs 2.0.1",
512
-
"either",
513
-
"futures-io",
514
-
"futures-lite",
515
-
"js-sys",
516
-
"parking_lot",
517
-
"ron",
518
-
"serde",
519
-
"stackfuture",
520
-
"thiserror 2.0.12",
521
-
"tracing",
522
-
"uuid",
523
-
"wasm-bindgen",
524
-
"wasm-bindgen-futures",
525
-
"web-sys",
526
-
]
527
-
528
-
[[package]]
529
-
name = "bevy_asset_macros"
530
-
version = "0.16.0"
531
-
source = "registry+https://github.com/rust-lang/crates.io-index"
532
-
checksum = "0bf8c00b5d532f8e5ac7b49af10602f9f7774a2d522cf0638323b5dfeee7b31c"
533
-
dependencies = [
534
-
"bevy_macro_utils",
535
-
"proc-macro2",
536
-
"quote",
537
-
"syn 2.0.101",
538
-
]
539
-
540
-
[[package]]
541
-
name = "bevy_audio"
542
-
version = "0.16.0"
543
-
source = "registry+https://github.com/rust-lang/crates.io-index"
544
-
checksum = "74e54154e6369abdbaf5098e20424d59197c9b701d4f79fe8d0d2bde03d25f12"
545
-
dependencies = [
546
-
"bevy_app",
547
-
"bevy_asset",
548
-
"bevy_derive",
549
-
"bevy_ecs",
550
-
"bevy_math",
551
-
"bevy_reflect",
552
-
"bevy_transform",
553
-
"cpal",
554
-
"rodio",
555
-
"tracing",
556
-
]
557
-
558
-
[[package]]
559
-
name = "bevy_color"
560
-
version = "0.16.1"
561
-
source = "registry+https://github.com/rust-lang/crates.io-index"
562
-
checksum = "ddf6a5ad35496bbc41713efbcf06ab72b9a310fabcab0f9db1debb56e8488c6e"
563
-
dependencies = [
564
-
"bevy_math",
565
-
"bevy_reflect",
566
-
"bytemuck",
567
-
"derive_more",
568
-
"encase",
569
-
"serde",
570
-
"thiserror 2.0.12",
571
-
"wgpu-types",
572
-
]
573
-
574
-
[[package]]
575
-
name = "bevy_core_pipeline"
576
-
version = "0.16.0"
577
-
source = "registry+https://github.com/rust-lang/crates.io-index"
578
-
checksum = "55c2310717b9794e4a45513ee5946a7be0838852a4c1e185884195e1a8688ff3"
579
-
dependencies = [
580
-
"bevy_app",
581
-
"bevy_asset",
582
-
"bevy_color",
583
-
"bevy_derive",
584
-
"bevy_diagnostic",
585
-
"bevy_ecs",
586
-
"bevy_image",
587
-
"bevy_math",
588
-
"bevy_platform",
589
-
"bevy_reflect",
590
-
"bevy_render",
591
-
"bevy_transform",
592
-
"bevy_utils",
593
-
"bevy_window",
594
-
"bitflags 2.9.0",
595
-
"bytemuck",
596
-
"nonmax",
597
-
"radsort",
598
-
"serde",
599
-
"smallvec",
600
-
"thiserror 2.0.12",
601
-
"tracing",
602
-
]
603
-
604
-
[[package]]
605
-
name = "bevy_derive"
606
-
version = "0.16.0"
607
-
source = "registry+https://github.com/rust-lang/crates.io-index"
608
-
checksum = "f626531b9c05c25a758ede228727bd11c2c2c8498ecbed9925044386d525a2a3"
609
-
dependencies = [
610
-
"bevy_macro_utils",
611
-
"quote",
612
-
"syn 2.0.101",
613
-
]
614
-
615
-
[[package]]
616
-
name = "bevy_diagnostic"
617
-
version = "0.16.0"
618
-
source = "registry+https://github.com/rust-lang/crates.io-index"
619
-
checksum = "048a1ff3944a534b8472516866284181eef0a75b6dd4d39b6e5925715e350766"
620
-
dependencies = [
621
-
"bevy_app",
622
-
"bevy_ecs",
623
-
"bevy_platform",
624
-
"bevy_tasks",
625
-
"bevy_time",
626
-
"bevy_utils",
627
-
"const-fnv1a-hash",
628
-
"log",
629
-
"serde",
630
-
"sysinfo",
631
-
]
632
-
633
-
[[package]]
634
-
name = "bevy_ecs"
635
-
version = "0.16.0"
636
-
source = "registry+https://github.com/rust-lang/crates.io-index"
637
-
checksum = "d9e807b5d9aab3bb8dfe47e7a44c9ff088bad2ceefe299b80ac77609a87fe9d4"
638
-
dependencies = [
639
-
"arrayvec",
640
-
"bevy_ecs_macros",
641
-
"bevy_platform",
642
-
"bevy_ptr",
643
-
"bevy_reflect",
644
-
"bevy_tasks",
645
-
"bevy_utils",
646
-
"bitflags 2.9.0",
647
-
"bumpalo",
648
-
"concurrent-queue",
649
-
"derive_more",
650
-
"disqualified",
651
-
"fixedbitset",
652
-
"indexmap",
653
-
"log",
654
-
"nonmax",
655
-
"serde",
656
-
"smallvec",
657
-
"thiserror 2.0.12",
658
-
"variadics_please",
659
-
]
660
-
661
-
[[package]]
662
-
name = "bevy_ecs_macros"
663
-
version = "0.16.0"
664
-
source = "registry+https://github.com/rust-lang/crates.io-index"
665
-
checksum = "467d7bb98aeb8dd30f36e6a773000c12a891d4f1bee2adc3841ec89cc8eaf54e"
666
-
dependencies = [
667
-
"bevy_macro_utils",
668
-
"proc-macro2",
669
-
"quote",
670
-
"syn 2.0.101",
671
-
]
672
-
673
-
[[package]]
674
-
name = "bevy_egui"
675
-
version = "0.34.1"
676
-
source = "registry+https://github.com/rust-lang/crates.io-index"
677
-
checksum = "3a3d58a8afdb6100bca50251043a85320391742cae125d559f6cca3a16b84cdd"
678
-
dependencies = [
679
-
"arboard",
680
-
"bevy_app",
681
-
"bevy_asset",
682
-
"bevy_derive",
683
-
"bevy_ecs",
684
-
"bevy_image",
685
-
"bevy_input",
686
-
"bevy_log",
687
-
"bevy_math",
688
-
"bevy_picking",
689
-
"bevy_platform",
690
-
"bevy_reflect",
691
-
"bevy_render",
692
-
"bevy_time",
693
-
"bevy_window",
694
-
"bevy_winit",
695
-
"bytemuck",
696
-
"crossbeam-channel",
697
-
"egui",
698
-
"encase",
699
-
"image 0.25.6",
700
-
"js-sys",
701
-
"thread_local",
702
-
"wasm-bindgen",
703
-
"wasm-bindgen-futures",
704
-
"web-sys",
705
-
"webbrowser",
706
-
"wgpu-types",
707
-
"winit",
708
-
]
709
-
710
-
[[package]]
711
-
name = "bevy_encase_derive"
712
-
version = "0.16.0"
713
-
source = "registry+https://github.com/rust-lang/crates.io-index"
714
-
checksum = "b8bb31dc1090c6f8fabbf6b21994d19a12766e786885ee48ffc547f0f1fa7863"
715
-
dependencies = [
716
-
"bevy_macro_utils",
717
-
"encase_derive_impl",
718
-
]
719
-
720
-
[[package]]
721
-
name = "bevy_gilrs"
722
-
version = "0.16.0"
723
-
source = "registry+https://github.com/rust-lang/crates.io-index"
724
-
checksum = "950c84596dbff8a9691a050c37bb610ef9398af56369c2c2dd6dc41ef7b717a5"
725
-
dependencies = [
726
-
"bevy_app",
727
-
"bevy_ecs",
728
-
"bevy_input",
729
-
"bevy_platform",
730
-
"bevy_time",
731
-
"bevy_utils",
732
-
"gilrs",
733
-
"thiserror 2.0.12",
734
-
"tracing",
735
-
]
736
-
737
-
[[package]]
738
-
name = "bevy_gizmos"
739
-
version = "0.16.0"
740
-
source = "registry+https://github.com/rust-lang/crates.io-index"
741
-
checksum = "54af8145b35ab2a830a6dd1058e23c1e1ddc4b893db79d295259ef82f51c7520"
742
-
dependencies = [
743
-
"bevy_app",
744
-
"bevy_asset",
745
-
"bevy_color",
746
-
"bevy_core_pipeline",
747
-
"bevy_ecs",
748
-
"bevy_gizmos_macros",
749
-
"bevy_image",
750
-
"bevy_math",
751
-
"bevy_pbr",
752
-
"bevy_reflect",
753
-
"bevy_render",
754
-
"bevy_sprite",
755
-
"bevy_time",
756
-
"bevy_transform",
757
-
"bevy_utils",
758
-
"bytemuck",
759
-
"tracing",
760
-
]
761
-
762
-
[[package]]
763
-
name = "bevy_gizmos_macros"
764
-
version = "0.16.0"
765
-
source = "registry+https://github.com/rust-lang/crates.io-index"
766
-
checksum = "40137ace61f092b7a09eba41d7d1e6aef941f53a7818b06ef86dcce7b6a1fd3f"
767
-
dependencies = [
768
-
"bevy_macro_utils",
769
-
"proc-macro2",
770
-
"quote",
771
-
"syn 2.0.101",
772
-
]
773
-
774
-
[[package]]
775
-
name = "bevy_gltf"
776
-
version = "0.16.0"
777
-
source = "registry+https://github.com/rust-lang/crates.io-index"
778
-
checksum = "aa25b809ee024ef2682bafc1ca22ca8275552edb549dc6f69a030fdffd976c63"
779
-
dependencies = [
780
-
"base64 0.22.1",
781
-
"bevy_animation",
782
-
"bevy_app",
783
-
"bevy_asset",
784
-
"bevy_color",
785
-
"bevy_core_pipeline",
786
-
"bevy_ecs",
787
-
"bevy_image",
788
-
"bevy_math",
789
-
"bevy_mesh",
790
-
"bevy_pbr",
791
-
"bevy_platform",
792
-
"bevy_reflect",
793
-
"bevy_render",
794
-
"bevy_scene",
795
-
"bevy_tasks",
796
-
"bevy_transform",
797
-
"bevy_utils",
798
-
"fixedbitset",
799
-
"gltf",
800
-
"itertools 0.14.0",
801
-
"percent-encoding",
802
-
"serde",
803
-
"serde_json",
804
-
"smallvec",
805
-
"thiserror 2.0.12",
806
-
"tracing",
807
-
]
808
-
809
-
[[package]]
810
-
name = "bevy_image"
811
-
version = "0.16.0"
812
-
source = "registry+https://github.com/rust-lang/crates.io-index"
813
-
checksum = "840b25f7f58894c641739f756959028a04f519c448db7e2cd3e2e29fc5fd188d"
814
-
dependencies = [
815
-
"bevy_app",
816
-
"bevy_asset",
817
-
"bevy_color",
818
-
"bevy_math",
819
-
"bevy_platform",
820
-
"bevy_reflect",
821
-
"bevy_utils",
822
-
"bitflags 2.9.0",
823
-
"bytemuck",
824
-
"futures-lite",
825
-
"guillotiere",
826
-
"half",
827
-
"image 0.25.6",
828
-
"ktx2",
829
-
"rectangle-pack",
830
-
"ruzstd",
831
-
"serde",
832
-
"thiserror 2.0.12",
833
-
"tracing",
834
-
"wgpu-types",
835
-
]
836
-
837
-
[[package]]
838
-
name = "bevy_input"
839
-
version = "0.16.0"
840
-
source = "registry+https://github.com/rust-lang/crates.io-index"
841
-
checksum = "763410715714f3d4d2dcdf077af276e2e4ea93fd8081b183d446d060ea95baaa"
842
-
dependencies = [
843
-
"bevy_app",
844
-
"bevy_ecs",
845
-
"bevy_math",
846
-
"bevy_platform",
847
-
"bevy_reflect",
848
-
"bevy_utils",
849
-
"derive_more",
850
-
"log",
851
-
"smol_str",
852
-
"thiserror 2.0.12",
853
-
]
854
-
855
-
[[package]]
856
-
name = "bevy_input_focus"
857
-
version = "0.16.0"
858
-
source = "registry+https://github.com/rust-lang/crates.io-index"
859
-
checksum = "d7e7b4ed65e10927a39a987cf85ef98727dd319aafb6e6835f2cb05b883c6d66"
860
-
dependencies = [
861
-
"bevy_app",
862
-
"bevy_ecs",
863
-
"bevy_input",
864
-
"bevy_math",
865
-
"bevy_reflect",
866
-
"bevy_window",
867
-
"log",
868
-
"thiserror 2.0.12",
869
-
]
870
-
871
-
[[package]]
872
-
name = "bevy_internal"
873
-
version = "0.16.0"
874
-
source = "registry+https://github.com/rust-lang/crates.io-index"
875
-
checksum = "526ffd64c58004cb97308826e896c07d0e23dc056c243b97492e31cdf72e2830"
876
-
dependencies = [
877
-
"bevy_a11y",
878
-
"bevy_animation",
879
-
"bevy_app",
880
-
"bevy_asset",
881
-
"bevy_audio",
882
-
"bevy_color",
883
-
"bevy_core_pipeline",
884
-
"bevy_derive",
885
-
"bevy_diagnostic",
886
-
"bevy_ecs",
887
-
"bevy_gilrs",
888
-
"bevy_gizmos",
889
-
"bevy_gltf",
890
-
"bevy_image",
891
-
"bevy_input",
892
-
"bevy_input_focus",
893
-
"bevy_log",
894
-
"bevy_math",
895
-
"bevy_pbr",
896
-
"bevy_picking",
897
-
"bevy_platform",
898
-
"bevy_ptr",
899
-
"bevy_reflect",
900
-
"bevy_render",
901
-
"bevy_scene",
902
-
"bevy_sprite",
903
-
"bevy_state",
904
-
"bevy_tasks",
905
-
"bevy_text",
906
-
"bevy_time",
907
-
"bevy_transform",
908
-
"bevy_ui",
909
-
"bevy_utils",
910
-
"bevy_window",
911
-
"bevy_winit",
912
-
]
913
-
914
-
[[package]]
915
-
name = "bevy_log"
916
-
version = "0.16.0"
917
-
source = "registry+https://github.com/rust-lang/crates.io-index"
918
-
checksum = "7156df8d2f11135cf71c03eb4c11132b65201fd4f51648571e59e39c9c9ee2f6"
919
-
dependencies = [
920
-
"android_log-sys",
921
-
"bevy_app",
922
-
"bevy_ecs",
923
-
"bevy_utils",
924
-
"tracing",
925
-
"tracing-log",
926
-
"tracing-oslog",
927
-
"tracing-subscriber",
928
-
"tracing-wasm",
929
-
]
930
-
931
-
[[package]]
932
-
name = "bevy_macro_utils"
933
-
version = "0.16.0"
934
-
source = "registry+https://github.com/rust-lang/crates.io-index"
935
-
checksum = "7a2473db70d8785b5c75d6dd951a2e51e9be2c2311122db9692c79c9d887517b"
936
-
dependencies = [
937
-
"parking_lot",
938
-
"proc-macro2",
939
-
"quote",
940
-
"syn 2.0.101",
941
-
"toml_edit",
942
-
]
943
-
944
-
[[package]]
945
-
name = "bevy_math"
946
-
version = "0.16.0"
947
-
source = "registry+https://github.com/rust-lang/crates.io-index"
948
-
checksum = "f1a3a926d02dc501c6156a047510bdb538dcb1fa744eeba13c824b73ba88de55"
949
-
dependencies = [
950
-
"approx",
951
-
"bevy_reflect",
952
-
"derive_more",
953
-
"glam 0.29.3",
954
-
"itertools 0.14.0",
955
-
"libm",
956
-
"rand",
957
-
"rand_distr",
958
-
"serde",
959
-
"smallvec",
960
-
"thiserror 2.0.12",
961
-
"variadics_please",
962
-
]
963
-
964
-
[[package]]
965
-
name = "bevy_mesh"
966
-
version = "0.16.0"
967
-
source = "registry+https://github.com/rust-lang/crates.io-index"
968
-
checksum = "12af58280c7453e32e2f083d86eaa4c9b9d03ea8683977108ded8f1930c539f2"
969
-
dependencies = [
970
-
"bevy_asset",
971
-
"bevy_derive",
972
-
"bevy_ecs",
973
-
"bevy_image",
974
-
"bevy_math",
975
-
"bevy_mikktspace",
976
-
"bevy_platform",
977
-
"bevy_reflect",
978
-
"bevy_transform",
979
-
"bevy_utils",
980
-
"bitflags 2.9.0",
981
-
"bytemuck",
982
-
"hexasphere",
983
-
"serde",
984
-
"thiserror 2.0.12",
985
-
"tracing",
986
-
"wgpu-types",
987
-
]
988
-
989
-
[[package]]
990
-
name = "bevy_mikktspace"
991
-
version = "0.16.0"
992
-
source = "registry+https://github.com/rust-lang/crates.io-index"
993
-
checksum = "75e0258423c689f764556e36b5d9eebdbf624b29a1fd5b33cd9f6c42dcc4d5f3"
994
-
dependencies = [
995
-
"glam 0.29.3",
996
-
]
997
-
998
-
[[package]]
999
-
name = "bevy_pbr"
1000
-
version = "0.16.0"
1001
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1002
-
checksum = "d9fe0de43b68bf9e5090a33efc963f125e9d3f9d97be9ebece7bcfdde1b6da80"
1003
-
dependencies = [
1004
-
"bevy_app",
1005
-
"bevy_asset",
1006
-
"bevy_color",
1007
-
"bevy_core_pipeline",
1008
-
"bevy_derive",
1009
-
"bevy_diagnostic",
1010
-
"bevy_ecs",
1011
-
"bevy_image",
1012
-
"bevy_math",
1013
-
"bevy_platform",
1014
-
"bevy_reflect",
1015
-
"bevy_render",
1016
-
"bevy_transform",
1017
-
"bevy_utils",
1018
-
"bevy_window",
1019
-
"bitflags 2.9.0",
1020
-
"bytemuck",
1021
-
"derive_more",
1022
-
"fixedbitset",
1023
-
"nonmax",
1024
-
"offset-allocator",
1025
-
"radsort",
1026
-
"smallvec",
1027
-
"static_assertions",
1028
-
"thiserror 2.0.12",
1029
-
"tracing",
1030
-
]
1031
-
1032
-
[[package]]
1033
-
name = "bevy_picking"
1034
-
version = "0.16.0"
1035
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1036
-
checksum = "f73674f62b1033006bd75c89033f5d3516386cfd7d43bb9f7665012c0ab14d22"
1037
-
dependencies = [
1038
-
"bevy_app",
1039
-
"bevy_asset",
1040
-
"bevy_derive",
1041
-
"bevy_ecs",
1042
-
"bevy_input",
1043
-
"bevy_math",
1044
-
"bevy_mesh",
1045
-
"bevy_platform",
1046
-
"bevy_reflect",
1047
-
"bevy_render",
1048
-
"bevy_time",
1049
-
"bevy_transform",
1050
-
"bevy_utils",
1051
-
"bevy_window",
1052
-
"crossbeam-channel",
1053
-
"tracing",
1054
-
"uuid",
1055
-
]
1056
-
1057
-
[[package]]
1058
-
name = "bevy_platform"
1059
-
version = "0.16.0"
1060
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1061
-
checksum = "704db2c11b7bc31093df4fbbdd3769f9606a6a5287149f4b51f2680f25834ebc"
1062
-
dependencies = [
1063
-
"cfg-if",
1064
-
"critical-section",
1065
-
"foldhash",
1066
-
"getrandom 0.2.16",
1067
-
"hashbrown",
1068
-
"portable-atomic",
1069
-
"portable-atomic-util",
1070
-
"serde",
1071
-
"spin",
1072
-
"web-time",
1073
-
]
1074
-
1075
-
[[package]]
1076
-
name = "bevy_ptr"
1077
-
version = "0.16.0"
1078
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1079
-
checksum = "86f1275dfb4cfef4ffc90c3fa75408964864facf833acc932413d52aa5364ba4"
1080
-
1081
-
[[package]]
1082
-
name = "bevy_reflect"
1083
-
version = "0.16.0"
1084
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1085
-
checksum = "607ebacc31029cf2f39ac330eabf1d4bc411b159528ec08dbe6b0593eaccfd41"
1086
-
dependencies = [
1087
-
"assert_type_match",
1088
-
"bevy_platform",
1089
-
"bevy_ptr",
1090
-
"bevy_reflect_derive",
1091
-
"bevy_utils",
1092
-
"derive_more",
1093
-
"disqualified",
1094
-
"downcast-rs 2.0.1",
1095
-
"erased-serde",
1096
-
"foldhash",
1097
-
"glam 0.29.3",
1098
-
"petgraph",
1099
-
"serde",
1100
-
"smallvec",
1101
-
"smol_str",
1102
-
"thiserror 2.0.12",
1103
-
"uuid",
1104
-
"variadics_please",
1105
-
"wgpu-types",
1106
-
]
1107
-
1108
-
[[package]]
1109
-
name = "bevy_reflect_derive"
1110
-
version = "0.16.0"
1111
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1112
-
checksum = "cf35e45e4eb239018369f63f2adc2107a54c329f9276d020e01eee1625b0238b"
1113
-
dependencies = [
1114
-
"bevy_macro_utils",
1115
-
"proc-macro2",
1116
-
"quote",
1117
-
"syn 2.0.101",
1118
-
"uuid",
1119
-
]
1120
-
1121
-
[[package]]
1122
-
name = "bevy_render"
1123
-
version = "0.16.0"
1124
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1125
-
checksum = "85a7306235b3343b032801504f3e884b93abfb7ba58179fc555c479df509f349"
1126
-
dependencies = [
1127
-
"async-channel",
1128
-
"bevy_app",
1129
-
"bevy_asset",
1130
-
"bevy_color",
1131
-
"bevy_derive",
1132
-
"bevy_diagnostic",
1133
-
"bevy_ecs",
1134
-
"bevy_encase_derive",
1135
-
"bevy_image",
1136
-
"bevy_math",
1137
-
"bevy_mesh",
1138
-
"bevy_platform",
1139
-
"bevy_reflect",
1140
-
"bevy_render_macros",
1141
-
"bevy_tasks",
1142
-
"bevy_time",
1143
-
"bevy_transform",
1144
-
"bevy_utils",
1145
-
"bevy_window",
1146
-
"bitflags 2.9.0",
1147
-
"bytemuck",
1148
-
"codespan-reporting",
1149
-
"derive_more",
1150
-
"downcast-rs 2.0.1",
1151
-
"encase",
1152
-
"fixedbitset",
1153
-
"futures-lite",
1154
-
"image 0.25.6",
1155
-
"indexmap",
1156
-
"js-sys",
1157
-
"ktx2",
1158
-
"naga",
1159
-
"naga_oil",
1160
-
"nonmax",
1161
-
"offset-allocator",
1162
-
"send_wrapper",
1163
-
"serde",
1164
-
"smallvec",
1165
-
"thiserror 2.0.12",
1166
-
"tracing",
1167
-
"variadics_please",
1168
-
"wasm-bindgen",
1169
-
"web-sys",
1170
-
"wgpu",
1171
-
]
1172
-
1173
-
[[package]]
1174
-
name = "bevy_render_macros"
1175
-
version = "0.16.0"
1176
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1177
-
checksum = "b85c4fb26b66d3a257b655485d11b9b6df9d3c85026493ba8092767a5edfc1b2"
1178
-
dependencies = [
1179
-
"bevy_macro_utils",
1180
-
"proc-macro2",
1181
-
"quote",
1182
-
"syn 2.0.101",
1183
-
]
1184
-
1185
-
[[package]]
1186
-
name = "bevy_scene"
1187
-
version = "0.16.0"
1188
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1189
-
checksum = "e7b628f560f2d2fe9f35ecd4526627ba3992f082de03fd745536e4053a0266fe"
1190
-
dependencies = [
1191
-
"bevy_app",
1192
-
"bevy_asset",
1193
-
"bevy_derive",
1194
-
"bevy_ecs",
1195
-
"bevy_platform",
1196
-
"bevy_reflect",
1197
-
"bevy_render",
1198
-
"bevy_transform",
1199
-
"bevy_utils",
1200
-
"derive_more",
1201
-
"serde",
1202
-
"thiserror 2.0.12",
1203
-
"uuid",
1204
-
]
1205
-
1206
-
[[package]]
1207
-
name = "bevy_sprite"
1208
-
version = "0.16.0"
1209
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1210
-
checksum = "01f97bf54fb1c37a1077139b59bb32bc77f7ca53149cfcaa512adbb69a2d492c"
1211
-
dependencies = [
1212
-
"bevy_app",
1213
-
"bevy_asset",
1214
-
"bevy_color",
1215
-
"bevy_core_pipeline",
1216
-
"bevy_derive",
1217
-
"bevy_ecs",
1218
-
"bevy_image",
1219
-
"bevy_math",
1220
-
"bevy_picking",
1221
-
"bevy_platform",
1222
-
"bevy_reflect",
1223
-
"bevy_render",
1224
-
"bevy_transform",
1225
-
"bevy_utils",
1226
-
"bevy_window",
1227
-
"bitflags 2.9.0",
1228
-
"bytemuck",
1229
-
"derive_more",
1230
-
"fixedbitset",
1231
-
"nonmax",
1232
-
"radsort",
1233
-
"tracing",
1234
-
]
1235
-
1236
-
[[package]]
1237
-
name = "bevy_state"
1238
-
version = "0.16.0"
1239
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1240
-
checksum = "682c343c354b191fe6669823bce3b0695ee1ae4ac36f582e29c436a72b67cdd5"
1241
-
dependencies = [
1242
-
"bevy_app",
1243
-
"bevy_ecs",
1244
-
"bevy_platform",
1245
-
"bevy_reflect",
1246
-
"bevy_state_macros",
1247
-
"bevy_utils",
1248
-
"log",
1249
-
"variadics_please",
1250
-
]
1251
-
1252
-
[[package]]
1253
-
name = "bevy_state_macros"
1254
-
version = "0.16.0"
1255
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1256
-
checksum = "55b4bf3970c4f0e60572901df4641656722172c222d71a80c430d36b0e31426c"
1257
-
dependencies = [
1258
-
"bevy_macro_utils",
1259
-
"proc-macro2",
1260
-
"quote",
1261
-
"syn 2.0.101",
1262
-
]
1263
-
1264
-
[[package]]
1265
-
name = "bevy_tasks"
1266
-
version = "0.16.0"
1267
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1268
-
checksum = "444c450b65e108855f42ecb6db0c041a56ea7d7f10cc6222f0ca95e9536a7d19"
1269
-
dependencies = [
1270
-
"async-channel",
1271
-
"async-executor",
1272
-
"async-task",
1273
-
"atomic-waker",
1274
-
"bevy_platform",
1275
-
"cfg-if",
1276
-
"concurrent-queue",
1277
-
"crossbeam-queue",
1278
-
"derive_more",
1279
-
"futures-channel",
1280
-
"futures-lite",
1281
-
"heapless",
1282
-
"pin-project",
1283
-
"wasm-bindgen-futures",
1284
-
]
1285
-
1286
-
[[package]]
1287
-
name = "bevy_text"
1288
-
version = "0.16.0"
1289
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1290
-
checksum = "8ef071262c5a9afbc39caba4c0b282c7d045fbb5cf33bdab1924bd2343403833"
1291
-
dependencies = [
1292
-
"bevy_app",
1293
-
"bevy_asset",
1294
-
"bevy_color",
1295
-
"bevy_derive",
1296
-
"bevy_ecs",
1297
-
"bevy_image",
1298
-
"bevy_log",
1299
-
"bevy_math",
1300
-
"bevy_platform",
1301
-
"bevy_reflect",
1302
-
"bevy_render",
1303
-
"bevy_sprite",
1304
-
"bevy_transform",
1305
-
"bevy_utils",
1306
-
"bevy_window",
1307
-
"cosmic-text",
1308
-
"serde",
1309
-
"smallvec",
1310
-
"sys-locale",
1311
-
"thiserror 2.0.12",
1312
-
"tracing",
1313
-
"unicode-bidi",
1314
-
]
1315
-
1316
-
[[package]]
1317
-
name = "bevy_time"
1318
-
version = "0.16.0"
1319
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1320
-
checksum = "456369ca10f8e039aaf273332744674844827854833ee29e28f9e161702f2f55"
1321
-
dependencies = [
1322
-
"bevy_app",
1323
-
"bevy_ecs",
1324
-
"bevy_platform",
1325
-
"bevy_reflect",
1326
-
"crossbeam-channel",
1327
-
"log",
1328
-
"serde",
1329
-
]
1330
-
1331
-
[[package]]
1332
-
name = "bevy_transform"
1333
-
version = "0.16.0"
1334
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1335
-
checksum = "8479cdd5461246943956a7c8347e4e5d6ff857e57add889fb50eee0b5c26ab48"
1336
-
dependencies = [
1337
-
"bevy_app",
1338
-
"bevy_ecs",
1339
-
"bevy_log",
1340
-
"bevy_math",
1341
-
"bevy_reflect",
1342
-
"bevy_tasks",
1343
-
"bevy_utils",
1344
-
"derive_more",
1345
-
"serde",
1346
-
"thiserror 2.0.12",
1347
-
]
1348
-
1349
-
[[package]]
1350
-
name = "bevy_ui"
1351
-
version = "0.16.0"
1352
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1353
-
checksum = "110dc5d0059f112263512be8cd7bfe0466dfb7c26b9bf4c74529355249fd23f9"
1354
-
dependencies = [
1355
-
"accesskit",
1356
-
"bevy_a11y",
1357
-
"bevy_app",
1358
-
"bevy_asset",
1359
-
"bevy_color",
1360
-
"bevy_core_pipeline",
1361
-
"bevy_derive",
1362
-
"bevy_ecs",
1363
-
"bevy_image",
1364
-
"bevy_input",
1365
-
"bevy_math",
1366
-
"bevy_picking",
1367
-
"bevy_platform",
1368
-
"bevy_reflect",
1369
-
"bevy_render",
1370
-
"bevy_sprite",
1371
-
"bevy_text",
1372
-
"bevy_transform",
1373
-
"bevy_utils",
1374
-
"bevy_window",
1375
-
"bytemuck",
1376
-
"derive_more",
1377
-
"nonmax",
1378
-
"smallvec",
1379
-
"taffy",
1380
-
"thiserror 2.0.12",
1381
-
"tracing",
1382
-
]
1383
-
1384
-
[[package]]
1385
-
name = "bevy_utils"
1386
-
version = "0.16.0"
1387
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1388
-
checksum = "ac2da3b3c1f94dadefcbe837aaa4aa119fcea37f7bdc5307eb05b4ede1921e24"
1389
-
dependencies = [
1390
-
"bevy_platform",
1391
-
"thread_local",
1392
-
]
1393
-
1394
-
[[package]]
1395
-
name = "bevy_window"
1396
-
version = "0.16.0"
1397
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1398
-
checksum = "0d83327cc5584da463d12b7a88ddb97f9e006828832287e1564531171fffdeb4"
1399
-
dependencies = [
1400
-
"android-activity",
1401
-
"bevy_app",
1402
-
"bevy_ecs",
1403
-
"bevy_input",
1404
-
"bevy_math",
1405
-
"bevy_platform",
1406
-
"bevy_reflect",
1407
-
"bevy_utils",
1408
-
"log",
1409
-
"raw-window-handle",
1410
-
"serde",
1411
-
"smol_str",
1412
-
]
1413
-
1414
-
[[package]]
1415
-
name = "bevy_winit"
1416
-
version = "0.16.0"
1417
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1418
-
checksum = "57b14928923ae4274f4b867dce3d0e7b2c8a31bebcb0f6e65a4261c3e0765064"
1419
-
dependencies = [
1420
-
"accesskit",
1421
-
"accesskit_winit",
1422
-
"approx",
1423
-
"bevy_a11y",
1424
-
"bevy_app",
1425
-
"bevy_asset",
1426
-
"bevy_derive",
1427
-
"bevy_ecs",
1428
-
"bevy_image",
1429
-
"bevy_input",
1430
-
"bevy_input_focus",
1431
-
"bevy_log",
1432
-
"bevy_math",
1433
-
"bevy_platform",
1434
-
"bevy_reflect",
1435
-
"bevy_tasks",
1436
-
"bevy_utils",
1437
-
"bevy_window",
1438
-
"bytemuck",
1439
-
"cfg-if",
1440
-
"crossbeam-channel",
1441
-
"raw-window-handle",
1442
-
"tracing",
1443
-
"wasm-bindgen",
1444
-
"web-sys",
1445
-
"wgpu-types",
1446
-
"winit",
1447
-
]
1448
-
1449
-
[[package]]
1450
-
name = "bindgen"
1451
-
version = "0.70.1"
1452
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1453
-
checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f"
1454
-
dependencies = [
1455
-
"bitflags 2.9.0",
1456
-
"cexpr",
1457
-
"clang-sys",
1458
-
"itertools 0.13.0",
1459
-
"log",
1460
-
"prettyplease",
1461
-
"proc-macro2",
1462
-
"quote",
1463
-
"regex",
1464
-
"rustc-hash",
1465
-
"shlex",
1466
-
"syn 2.0.101",
1467
-
]
1468
-
1469
-
[[package]]
1470
-
name = "binrw"
1471
-
version = "0.15.0"
1472
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1473
-
checksum = "81419ff39e6ed10a92a7f125290859776ced35d9a08a665ae40b23e7ca702f30"
1474
-
dependencies = [
1475
-
"array-init",
1476
-
"binrw_derive",
1477
-
"bytemuck",
1478
-
]
1479
-
1480
-
[[package]]
1481
-
name = "binrw_derive"
1482
-
version = "0.15.0"
1483
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1484
-
checksum = "376404e55ec40d0d6f8b4b7df3f87b87954bd987f0cf9a7207ea3b6ea5c9add4"
1485
-
dependencies = [
1486
-
"either",
1487
-
"owo-colors",
1488
-
"proc-macro2",
1489
-
"quote",
1490
-
"syn 2.0.101",
1491
-
]
1492
-
1493
-
[[package]]
1494
-
name = "bit-set"
1495
-
version = "0.5.3"
1496
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1497
-
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
1498
-
dependencies = [
1499
-
"bit-vec 0.6.3",
1500
-
]
1501
-
1502
-
[[package]]
1503
-
name = "bit-set"
1504
-
version = "0.8.0"
1505
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1506
-
checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3"
1507
-
dependencies = [
1508
-
"bit-vec 0.8.0",
1509
-
]
1510
-
1511
-
[[package]]
1512
-
name = "bit-vec"
1513
-
version = "0.6.3"
1514
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1515
-
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
1516
-
1517
-
[[package]]
1518
-
name = "bit-vec"
1519
-
version = "0.8.0"
1520
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1521
-
checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
1522
-
1523
-
[[package]]
1524
-
name = "bit_field"
1525
-
version = "0.10.2"
1526
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1527
-
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
1528
-
1529
-
[[package]]
1530
-
name = "bitflags"
1531
-
version = "1.3.2"
1532
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1533
-
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
1534
-
1535
-
[[package]]
1536
-
name = "bitflags"
1537
-
version = "2.9.0"
1538
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1539
-
checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd"
1540
-
dependencies = [
1541
-
"serde",
1542
-
]
1543
-
1544
-
[[package]]
1545
-
name = "bitstream-io"
1546
-
version = "2.6.0"
1547
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1548
-
checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2"
1549
-
1550
-
[[package]]
1551
-
name = "blake3"
1552
-
version = "1.8.2"
1553
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1554
-
checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0"
1555
-
dependencies = [
1556
-
"arrayref",
1557
-
"arrayvec",
1558
-
"cc",
1559
-
"cfg-if",
1560
-
"constant_time_eq",
1561
-
]
1562
-
1563
-
[[package]]
1564
-
name = "block"
1565
-
version = "0.1.6"
1566
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1567
-
checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
1568
-
1569
-
[[package]]
1570
-
name = "block2"
1571
-
version = "0.5.1"
1572
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1573
-
checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
1574
-
dependencies = [
1575
-
"objc2 0.5.2",
1576
-
]
1577
-
1578
-
[[package]]
1579
-
name = "blocking"
1580
-
version = "1.6.1"
1581
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1582
-
checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
1583
-
dependencies = [
1584
-
"async-channel",
1585
-
"async-task",
1586
-
"futures-io",
1587
-
"futures-lite",
1588
-
"piper",
1589
-
]
1590
-
1591
-
[[package]]
1592
-
name = "built"
1593
-
version = "0.7.7"
1594
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1595
-
checksum = "56ed6191a7e78c36abdb16ab65341eefd73d64d303fffccdbb00d51e4205967b"
1596
-
1597
-
[[package]]
1598
-
name = "bumpalo"
1599
-
version = "3.17.0"
1600
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1601
-
checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
1602
-
1603
-
[[package]]
1604
-
name = "bytemuck"
1605
-
version = "1.23.0"
1606
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1607
-
checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c"
1608
-
dependencies = [
1609
-
"bytemuck_derive",
1610
-
]
1611
-
1612
-
[[package]]
1613
-
name = "bytemuck_derive"
1614
-
version = "1.9.3"
1615
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1616
-
checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1"
1617
-
dependencies = [
1618
-
"proc-macro2",
1619
-
"quote",
1620
-
"syn 2.0.101",
1621
-
]
1622
-
1623
-
[[package]]
1624
-
name = "byteorder"
1625
-
version = "1.5.0"
1626
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1627
-
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
1628
-
1629
-
[[package]]
1630
-
name = "byteorder-lite"
1631
-
version = "0.1.0"
1632
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1633
-
checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495"
1634
-
1635
-
[[package]]
1636
-
name = "bytes"
1637
-
version = "1.10.1"
1638
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1639
-
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
1640
-
1641
-
[[package]]
1642
-
name = "calloop"
1643
-
version = "0.13.0"
1644
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1645
-
checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
1646
-
dependencies = [
1647
-
"bitflags 2.9.0",
1648
-
"log",
1649
-
"polling",
1650
-
"rustix",
1651
-
"slab",
1652
-
"thiserror 1.0.69",
1653
-
]
1654
-
1655
-
[[package]]
1656
-
name = "calloop-wayland-source"
1657
-
version = "0.3.0"
1658
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1659
-
checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
1660
-
dependencies = [
1661
-
"calloop",
1662
-
"rustix",
1663
-
"wayland-backend",
1664
-
"wayland-client",
1665
-
]
1666
-
1667
-
[[package]]
1668
-
name = "cc"
1669
-
version = "1.2.22"
1670
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1671
-
checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1"
1672
-
dependencies = [
1673
-
"jobserver",
1674
-
"libc",
1675
-
"shlex",
1676
-
]
1677
-
1678
-
[[package]]
1679
-
name = "cesu8"
1680
-
version = "1.1.0"
1681
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1682
-
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
1683
-
1684
-
[[package]]
1685
-
name = "cexpr"
1686
-
version = "0.6.0"
1687
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1688
-
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
1689
-
dependencies = [
1690
-
"nom",
1691
-
]
1692
-
1693
-
[[package]]
1694
-
name = "cfg-expr"
1695
-
version = "0.15.8"
1696
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1697
-
checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
1698
-
dependencies = [
1699
-
"smallvec",
1700
-
"target-lexicon",
1701
-
]
1702
-
1703
-
[[package]]
1704
-
name = "cfg-if"
1705
-
version = "1.0.0"
1706
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1707
-
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
1708
-
1709
-
[[package]]
1710
-
name = "cfg_aliases"
1711
-
version = "0.2.1"
1712
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1713
-
checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
1714
-
1715
-
[[package]]
1716
-
name = "clang-sys"
1717
-
version = "1.8.1"
1718
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1719
-
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
1720
-
dependencies = [
1721
-
"glob",
1722
-
"libc",
1723
-
"libloading",
1724
-
]
1725
-
1726
-
[[package]]
1727
-
name = "clipboard-win"
1728
-
version = "5.4.0"
1729
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1730
-
checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892"
1731
-
dependencies = [
1732
-
"error-code",
1733
-
]
1734
-
1735
-
[[package]]
1736
-
name = "codespan-reporting"
1737
-
version = "0.11.1"
1738
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1739
-
checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
1740
-
dependencies = [
1741
-
"termcolor",
1742
-
"unicode-width",
1743
-
]
1744
-
1745
-
[[package]]
1746
-
name = "color_quant"
1747
-
version = "1.1.0"
1748
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1749
-
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
1750
-
1751
-
[[package]]
1752
-
name = "combine"
1753
-
version = "4.6.7"
1754
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1755
-
checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd"
1756
-
dependencies = [
1757
-
"bytes",
1758
-
"memchr",
1759
-
]
1760
-
1761
-
[[package]]
1762
-
name = "concurrent-queue"
1763
-
version = "2.5.0"
1764
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1765
-
checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
1766
-
dependencies = [
1767
-
"crossbeam-utils",
1768
-
"portable-atomic",
1769
-
]
1770
-
1771
-
[[package]]
1772
-
name = "console_error_panic_hook"
1773
-
version = "0.1.7"
1774
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1775
-
checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
1776
-
dependencies = [
1777
-
"cfg-if",
1778
-
"wasm-bindgen",
1779
-
]
1780
-
1781
-
[[package]]
1782
-
name = "const-fnv1a-hash"
1783
-
version = "1.1.0"
1784
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1785
-
checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca"
1786
-
1787
-
[[package]]
1788
-
name = "const_panic"
1789
-
version = "0.2.12"
1790
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1791
-
checksum = "2459fc9262a1aa204eb4b5764ad4f189caec88aea9634389c0a25f8be7f6265e"
1792
-
1793
-
[[package]]
1794
-
name = "const_soft_float"
1795
-
version = "0.1.4"
1796
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1797
-
checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff"
1798
-
1799
-
[[package]]
1800
-
name = "constant_time_eq"
1801
-
version = "0.3.1"
1802
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1803
-
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
1804
-
1805
-
[[package]]
1806
-
name = "constgebra"
1807
-
version = "0.1.4"
1808
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1809
-
checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc"
1810
-
dependencies = [
1811
-
"const_soft_float",
1812
-
]
1813
-
1814
-
[[package]]
1815
-
name = "core-foundation"
1816
-
version = "0.9.4"
1817
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1818
-
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
1819
-
dependencies = [
1820
-
"core-foundation-sys",
1821
-
"libc",
1822
-
]
1823
-
1824
-
[[package]]
1825
-
name = "core-foundation"
1826
-
version = "0.10.0"
1827
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1828
-
checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63"
1829
-
dependencies = [
1830
-
"core-foundation-sys",
1831
-
"libc",
1832
-
]
1833
-
1834
-
[[package]]
1835
-
name = "core-foundation-sys"
1836
-
version = "0.8.7"
1837
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1838
-
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
1839
-
1840
-
[[package]]
1841
-
name = "core-graphics"
1842
-
version = "0.23.2"
1843
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1844
-
checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
1845
-
dependencies = [
1846
-
"bitflags 1.3.2",
1847
-
"core-foundation 0.9.4",
1848
-
"core-graphics-types",
1849
-
"foreign-types",
1850
-
"libc",
1851
-
]
1852
-
1853
-
[[package]]
1854
-
name = "core-graphics-types"
1855
-
version = "0.1.3"
1856
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1857
-
checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf"
1858
-
dependencies = [
1859
-
"bitflags 1.3.2",
1860
-
"core-foundation 0.9.4",
1861
-
"libc",
1862
-
]
1863
-
1864
-
[[package]]
1865
-
name = "coreaudio-rs"
1866
-
version = "0.11.3"
1867
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1868
-
checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace"
1869
-
dependencies = [
1870
-
"bitflags 1.3.2",
1871
-
"core-foundation-sys",
1872
-
"coreaudio-sys",
1873
-
]
1874
-
1875
-
[[package]]
1876
-
name = "coreaudio-sys"
1877
-
version = "0.2.16"
1878
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1879
-
checksum = "2ce857aa0b77d77287acc1ac3e37a05a8c95a2af3647d23b15f263bdaeb7562b"
1880
-
dependencies = [
1881
-
"bindgen",
1882
-
]
1883
-
1884
-
[[package]]
1885
-
name = "cosmic-text"
1886
-
version = "0.13.2"
1887
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1888
-
checksum = "e418dd4f5128c3e93eab12246391c54a20c496811131f85754dc8152ee207892"
1889
-
dependencies = [
1890
-
"bitflags 2.9.0",
1891
-
"fontdb",
1892
-
"log",
1893
-
"rangemap",
1894
-
"rustc-hash",
1895
-
"rustybuzz",
1896
-
"self_cell",
1897
-
"smol_str",
1898
-
"swash",
1899
-
"sys-locale",
1900
-
"ttf-parser 0.21.1",
1901
-
"unicode-bidi",
1902
-
"unicode-linebreak",
1903
-
"unicode-script",
1904
-
"unicode-segmentation",
1905
-
]
1906
-
1907
-
[[package]]
1908
-
name = "cpal"
1909
-
version = "0.15.3"
1910
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1911
-
checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779"
1912
-
dependencies = [
1913
-
"alsa",
1914
-
"core-foundation-sys",
1915
-
"coreaudio-rs",
1916
-
"dasp_sample",
1917
-
"jni",
1918
-
"js-sys",
1919
-
"libc",
1920
-
"mach2",
1921
-
"ndk 0.8.0",
1922
-
"ndk-context",
1923
-
"oboe",
1924
-
"wasm-bindgen",
1925
-
"wasm-bindgen-futures",
1926
-
"web-sys",
1927
-
"windows 0.54.0",
1928
-
]
1929
-
1930
-
[[package]]
1931
-
name = "crc32fast"
1932
-
version = "1.4.2"
1933
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1934
-
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
1935
-
dependencies = [
1936
-
"cfg-if",
1937
-
]
1938
-
1939
-
[[package]]
1940
-
name = "critical-section"
1941
-
version = "1.2.0"
1942
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1943
-
checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b"
1944
-
1945
-
[[package]]
1946
-
name = "crossbeam-channel"
1947
-
version = "0.5.15"
1948
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1949
-
checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
1950
-
dependencies = [
1951
-
"crossbeam-utils",
1952
-
]
1953
-
1954
-
[[package]]
1955
-
name = "crossbeam-deque"
1956
-
version = "0.8.6"
1957
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1958
-
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
1959
-
dependencies = [
1960
-
"crossbeam-epoch",
1961
-
"crossbeam-utils",
1962
-
]
1963
-
1964
-
[[package]]
1965
-
name = "crossbeam-epoch"
1966
-
version = "0.9.18"
1967
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1968
-
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
1969
-
dependencies = [
1970
-
"crossbeam-utils",
1971
-
]
1972
-
1973
-
[[package]]
1974
-
name = "crossbeam-queue"
1975
-
version = "0.3.12"
1976
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1977
-
checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115"
1978
-
dependencies = [
1979
-
"crossbeam-utils",
1980
-
]
1981
-
1982
-
[[package]]
1983
-
name = "crossbeam-utils"
1984
-
version = "0.8.21"
1985
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1986
-
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
1987
-
1988
-
[[package]]
1989
-
name = "crunchy"
1990
-
version = "0.2.3"
1991
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1992
-
checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
1993
-
1994
-
[[package]]
1995
-
name = "ctrlc"
1996
-
version = "3.4.6"
1997
-
source = "registry+https://github.com/rust-lang/crates.io-index"
1998
-
checksum = "697b5419f348fd5ae2478e8018cb016c00a5881c7f46c717de98ffd135a5651c"
1999
-
dependencies = [
2000
-
"nix",
2001
-
"windows-sys 0.59.0",
2002
-
]
2003
-
2004
-
[[package]]
2005
-
name = "cursor-icon"
2006
-
version = "1.1.0"
2007
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2008
-
checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
2009
-
2010
-
[[package]]
2011
-
name = "dasp_sample"
2012
-
version = "0.11.0"
2013
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2014
-
checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
2015
-
2016
-
[[package]]
2017
-
name = "data-encoding"
2018
-
version = "2.9.0"
2019
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2020
-
checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476"
2021
-
2022
-
[[package]]
2023
-
name = "derive_more"
2024
-
version = "1.0.0"
2025
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2026
-
checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05"
2027
-
dependencies = [
2028
-
"derive_more-impl",
2029
-
]
2030
-
2031
-
[[package]]
2032
-
name = "derive_more-impl"
2033
-
version = "1.0.0"
2034
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2035
-
checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
2036
-
dependencies = [
2037
-
"proc-macro2",
2038
-
"quote",
2039
-
"syn 2.0.101",
2040
-
"unicode-xid",
2041
-
]
2042
-
2043
-
[[package]]
2044
-
name = "dispatch"
2045
-
version = "0.2.0"
2046
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2047
-
checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
2048
-
2049
-
[[package]]
2050
-
name = "dispatch2"
2051
-
version = "0.3.0"
2052
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2053
-
checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec"
2054
-
dependencies = [
2055
-
"bitflags 2.9.0",
2056
-
"objc2 0.6.1",
2057
-
]
2058
-
2059
-
[[package]]
2060
-
name = "displaydoc"
2061
-
version = "0.2.5"
2062
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2063
-
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
2064
-
dependencies = [
2065
-
"proc-macro2",
2066
-
"quote",
2067
-
"syn 2.0.101",
2068
-
]
2069
-
2070
-
[[package]]
2071
-
name = "disqualified"
2072
-
version = "1.0.0"
2073
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2074
-
checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd"
2075
-
2076
-
[[package]]
2077
-
name = "dlib"
2078
-
version = "0.5.2"
2079
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2080
-
checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
2081
-
dependencies = [
2082
-
"libloading",
2083
-
]
2084
-
2085
-
[[package]]
2086
-
name = "document-features"
2087
-
version = "0.2.11"
2088
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2089
-
checksum = "95249b50c6c185bee49034bcb378a49dc2b5dff0be90ff6616d31d64febab05d"
2090
-
dependencies = [
2091
-
"litrs",
2092
-
]
2093
-
2094
-
[[package]]
2095
-
name = "downcast-rs"
2096
-
version = "1.2.1"
2097
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2098
-
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
2099
-
2100
-
[[package]]
2101
-
name = "downcast-rs"
2102
-
version = "2.0.1"
2103
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2104
-
checksum = "ea8a8b81cacc08888170eef4d13b775126db426d0b348bee9d18c2c1eaf123cf"
2105
-
2106
-
[[package]]
2107
-
name = "dpi"
2108
-
version = "0.1.2"
2109
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2110
-
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
2111
-
2112
-
[[package]]
2113
-
name = "ecolor"
2114
-
version = "0.31.1"
2115
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2116
-
checksum = "bc4feb366740ded31a004a0e4452fbf84e80ef432ecf8314c485210229672fd1"
2117
-
dependencies = [
2118
-
"bytemuck",
2119
-
"emath",
2120
-
]
2121
-
2122
-
[[package]]
2123
-
name = "egui"
2124
-
version = "0.31.1"
2125
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2126
-
checksum = "25dd34cec49ab55d85ebf70139cb1ccd29c977ef6b6ba4fe85489d6877ee9ef3"
2127
-
dependencies = [
2128
-
"ahash",
2129
-
"bitflags 2.9.0",
2130
-
"emath",
2131
-
"epaint",
2132
-
"nohash-hasher",
2133
-
"profiling",
2134
-
]
2135
-
2136
-
[[package]]
2137
-
name = "either"
2138
-
version = "1.15.0"
2139
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2140
-
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
2141
-
2142
-
[[package]]
2143
-
name = "emath"
2144
-
version = "0.31.1"
2145
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2146
-
checksum = "9e4cadcff7a5353ba72b7fea76bf2122b5ebdbc68e8155aa56dfdea90083fe1b"
2147
-
dependencies = [
2148
-
"bytemuck",
2149
-
]
2150
-
2151
-
[[package]]
2152
-
name = "encase"
2153
-
version = "0.10.0"
2154
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2155
-
checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020"
2156
-
dependencies = [
2157
-
"const_panic",
2158
-
"encase_derive",
2159
-
"glam 0.29.3",
2160
-
"thiserror 1.0.69",
2161
-
]
2162
-
2163
-
[[package]]
2164
-
name = "encase_derive"
2165
-
version = "0.10.0"
2166
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2167
-
checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85"
2168
-
dependencies = [
2169
-
"encase_derive_impl",
2170
-
]
2171
-
2172
-
[[package]]
2173
-
name = "encase_derive_impl"
2174
-
version = "0.10.0"
2175
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2176
-
checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792"
2177
-
dependencies = [
2178
-
"proc-macro2",
2179
-
"quote",
2180
-
"syn 2.0.101",
2181
-
]
2182
-
2183
-
[[package]]
2184
-
name = "epaint"
2185
-
version = "0.31.1"
2186
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2187
-
checksum = "41fcc0f5a7c613afd2dee5e4b30c3e6acafb8ad6f0edb06068811f708a67c562"
2188
-
dependencies = [
2189
-
"ab_glyph",
2190
-
"ahash",
2191
-
"bytemuck",
2192
-
"ecolor",
2193
-
"emath",
2194
-
"epaint_default_fonts",
2195
-
"nohash-hasher",
2196
-
"parking_lot",
2197
-
"profiling",
2198
-
]
2199
-
2200
-
[[package]]
2201
-
name = "epaint_default_fonts"
2202
-
version = "0.31.1"
2203
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2204
-
checksum = "fc7e7a64c02cf7a5b51e745a9e45f60660a286f151c238b9d397b3e923f5082f"
2205
-
2206
-
[[package]]
2207
-
name = "equivalent"
2208
-
version = "1.0.2"
2209
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2210
-
checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
2211
-
2212
-
[[package]]
2213
-
name = "erased-serde"
2214
-
version = "0.4.6"
2215
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2216
-
checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7"
2217
-
dependencies = [
2218
-
"serde",
2219
-
"typeid",
2220
-
]
2221
-
2222
-
[[package]]
2223
-
name = "errno"
2224
-
version = "0.3.11"
2225
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2226
-
checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e"
2227
-
dependencies = [
2228
-
"libc",
2229
-
"windows-sys 0.59.0",
2230
-
]
2231
-
2232
-
[[package]]
2233
-
name = "error-code"
2234
-
version = "3.3.2"
2235
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2236
-
checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59"
2237
-
2238
-
[[package]]
2239
-
name = "euclid"
2240
-
version = "0.22.11"
2241
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2242
-
checksum = "ad9cdb4b747e485a12abb0e6566612956c7a1bafa3bdb8d682c5b6d403589e48"
2243
-
dependencies = [
2244
-
"num-traits",
2245
-
]
2246
-
2247
-
[[package]]
2248
-
name = "event-listener"
2249
-
version = "5.4.0"
2250
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2251
-
checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
2252
-
dependencies = [
2253
-
"concurrent-queue",
2254
-
"parking",
2255
-
"pin-project-lite",
2256
-
]
2257
-
2258
-
[[package]]
2259
-
name = "event-listener-strategy"
2260
-
version = "0.5.4"
2261
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2262
-
checksum = "8be9f3dfaaffdae2972880079a491a1a8bb7cbed0b8dd7a347f668b4150a3b93"
2263
-
dependencies = [
2264
-
"event-listener",
2265
-
"pin-project-lite",
2266
-
]
2267
-
2268
-
[[package]]
2269
-
name = "exr"
2270
-
version = "1.73.0"
2271
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2272
-
checksum = "f83197f59927b46c04a183a619b7c29df34e63e63c7869320862268c0ef687e0"
2273
-
dependencies = [
2274
-
"bit_field",
2275
-
"half",
2276
-
"lebe",
2277
-
"miniz_oxide",
2278
-
"rayon-core",
2279
-
"smallvec",
2280
-
"zune-inflate",
2281
-
]
2282
-
2283
-
[[package]]
2284
-
name = "fastrand"
2285
-
version = "2.3.0"
2286
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2287
-
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
2288
-
2289
-
[[package]]
2290
-
name = "fdeflate"
2291
-
version = "0.3.7"
2292
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2293
-
checksum = "1e6853b52649d4ac5c0bd02320cddc5ba956bdb407c4b75a2c6b75bf51500f8c"
2294
-
dependencies = [
2295
-
"simd-adler32",
2296
-
]
2297
-
2298
-
[[package]]
2299
-
name = "fixedbitset"
2300
-
version = "0.5.7"
2301
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2302
-
checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99"
2303
-
2304
-
[[package]]
2305
-
name = "flate2"
2306
-
version = "1.1.1"
2307
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2308
-
checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
2309
-
dependencies = [
2310
-
"crc32fast",
2311
-
"libz-rs-sys",
2312
-
"miniz_oxide",
2313
-
]
2314
-
2315
-
[[package]]
2316
-
name = "fnv"
2317
-
version = "1.0.7"
2318
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2319
-
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
2320
-
2321
-
[[package]]
2322
-
name = "foldhash"
2323
-
version = "0.1.5"
2324
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2325
-
checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
2326
-
2327
-
[[package]]
2328
-
name = "font-types"
2329
-
version = "0.9.0"
2330
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2331
-
checksum = "02a596f5713680923a2080d86de50fe472fb290693cf0f701187a1c8b36996b7"
2332
-
dependencies = [
2333
-
"bytemuck",
2334
-
]
2335
-
2336
-
[[package]]
2337
-
name = "fontconfig-parser"
2338
-
version = "0.5.7"
2339
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2340
-
checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7"
2341
-
dependencies = [
2342
-
"roxmltree",
2343
-
]
2344
-
2345
-
[[package]]
2346
-
name = "fontdb"
2347
-
version = "0.16.2"
2348
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2349
-
checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
2350
-
dependencies = [
2351
-
"fontconfig-parser",
2352
-
"log",
2353
-
"memmap2",
2354
-
"slotmap",
2355
-
"tinyvec",
2356
-
"ttf-parser 0.20.0",
2357
-
]
2358
-
2359
-
[[package]]
2360
-
name = "foreign-types"
2361
-
version = "0.5.0"
2362
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2363
-
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
2364
-
dependencies = [
2365
-
"foreign-types-macros",
2366
-
"foreign-types-shared",
2367
-
]
2368
-
2369
-
[[package]]
2370
-
name = "foreign-types-macros"
2371
-
version = "0.2.3"
2372
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2373
-
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
2374
-
dependencies = [
2375
-
"proc-macro2",
2376
-
"quote",
2377
-
"syn 2.0.101",
2378
-
]
2379
-
2380
-
[[package]]
2381
-
name = "foreign-types-shared"
2382
-
version = "0.3.1"
2383
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2384
-
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
2385
-
2386
-
[[package]]
2387
-
name = "form_urlencoded"
2388
-
version = "1.2.1"
2389
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2390
-
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
2391
-
dependencies = [
2392
-
"percent-encoding",
2393
-
]
2394
-
2395
-
[[package]]
2396
-
name = "futures-channel"
2397
-
version = "0.3.31"
2398
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2399
-
checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10"
2400
-
dependencies = [
2401
-
"futures-core",
2402
-
]
2403
-
2404
-
[[package]]
2405
-
name = "futures-core"
2406
-
version = "0.3.31"
2407
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2408
-
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
2409
-
2410
-
[[package]]
2411
-
name = "futures-io"
2412
-
version = "0.3.31"
2413
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2414
-
checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6"
2415
-
2416
-
[[package]]
2417
-
name = "futures-lite"
2418
-
version = "2.6.0"
2419
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2420
-
checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532"
2421
-
dependencies = [
2422
-
"fastrand",
2423
-
"futures-core",
2424
-
"futures-io",
2425
-
"parking",
2426
-
"pin-project-lite",
2427
-
]
2428
-
2429
-
[[package]]
2430
-
name = "gethostname"
2431
-
version = "0.4.3"
2432
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2433
-
checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
2434
-
dependencies = [
2435
-
"libc",
2436
-
"windows-targets 0.48.5",
2437
-
]
2438
-
2439
-
[[package]]
2440
-
name = "getrandom"
2441
-
version = "0.2.16"
2442
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2443
-
checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
2444
-
dependencies = [
2445
-
"cfg-if",
2446
-
"js-sys",
2447
-
"libc",
2448
-
"wasi 0.11.0+wasi-snapshot-preview1",
2449
-
"wasm-bindgen",
2450
-
]
2451
-
2452
-
[[package]]
2453
-
name = "getrandom"
2454
-
version = "0.3.3"
2455
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2456
-
checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
2457
-
dependencies = [
2458
-
"cfg-if",
2459
-
"libc",
2460
-
"r-efi",
2461
-
"wasi 0.14.2+wasi-0.2.4",
2462
-
]
2463
-
2464
-
[[package]]
2465
-
name = "gif"
2466
-
version = "0.13.1"
2467
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2468
-
checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
2469
-
dependencies = [
2470
-
"color_quant",
2471
-
"weezl",
2472
-
]
2473
-
2474
-
[[package]]
2475
-
name = "gilrs"
2476
-
version = "0.11.0"
2477
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2478
-
checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f"
2479
-
dependencies = [
2480
-
"fnv",
2481
-
"gilrs-core",
2482
-
"log",
2483
-
"uuid",
2484
-
"vec_map",
2485
-
]
2486
-
2487
-
[[package]]
2488
-
name = "gilrs-core"
2489
-
version = "0.6.4"
2490
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2491
-
checksum = "a6d95ae10ce5aa99543a28cf74e41c11f3b9e3c14f0452bbde46024753cd683e"
2492
-
dependencies = [
2493
-
"core-foundation 0.10.0",
2494
-
"inotify",
2495
-
"io-kit-sys",
2496
-
"js-sys",
2497
-
"libc",
2498
-
"libudev-sys",
2499
-
"log",
2500
-
"nix",
2501
-
"uuid",
2502
-
"vec_map",
2503
-
"wasm-bindgen",
2504
-
"web-sys",
2505
-
"windows 0.61.1",
2506
-
]
2507
-
2508
-
[[package]]
2509
-
name = "gl_generator"
2510
-
version = "0.14.0"
2511
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2512
-
checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
2513
-
dependencies = [
2514
-
"khronos_api",
2515
-
"log",
2516
-
"xml-rs",
2517
-
]
2518
-
2519
-
[[package]]
2520
-
name = "glam"
2521
-
version = "0.29.3"
2522
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2523
-
checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee"
2524
-
dependencies = [
2525
-
"bytemuck",
2526
-
"libm",
2527
-
"rand",
2528
-
"serde",
2529
-
]
2530
-
2531
-
[[package]]
2532
-
name = "glam"
2533
-
version = "0.30.3"
2534
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2535
-
checksum = "6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7"
2536
-
2537
-
[[package]]
2538
-
name = "glob"
2539
-
version = "0.3.2"
2540
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2541
-
checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
2542
-
2543
-
[[package]]
2544
-
name = "glow"
2545
-
version = "0.16.0"
2546
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2547
-
checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08"
2548
-
dependencies = [
2549
-
"js-sys",
2550
-
"slotmap",
2551
-
"wasm-bindgen",
2552
-
"web-sys",
2553
-
]
2554
-
2555
-
[[package]]
2556
-
name = "gltf"
2557
-
version = "1.4.1"
2558
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2559
-
checksum = "e3ce1918195723ce6ac74e80542c5a96a40c2b26162c1957a5cd70799b8cacf7"
2560
-
dependencies = [
2561
-
"byteorder",
2562
-
"gltf-json",
2563
-
"lazy_static",
2564
-
"serde_json",
2565
-
]
2566
-
2567
-
[[package]]
2568
-
name = "gltf-derive"
2569
-
version = "1.4.1"
2570
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2571
-
checksum = "14070e711538afba5d6c807edb74bcb84e5dbb9211a3bf5dea0dfab5b24f4c51"
2572
-
dependencies = [
2573
-
"inflections",
2574
-
"proc-macro2",
2575
-
"quote",
2576
-
"syn 2.0.101",
2577
-
]
2578
-
2579
-
[[package]]
2580
-
name = "gltf-json"
2581
-
version = "1.4.1"
2582
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2583
-
checksum = "e6176f9d60a7eab0a877e8e96548605dedbde9190a7ae1e80bbcc1c9af03ab14"
2584
-
dependencies = [
2585
-
"gltf-derive",
2586
-
"serde",
2587
-
"serde_derive",
2588
-
"serde_json",
2589
-
]
2590
-
2591
-
[[package]]
2592
-
name = "glutin_wgl_sys"
2593
-
version = "0.6.1"
2594
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2595
-
checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e"
2596
-
dependencies = [
2597
-
"gl_generator",
2598
-
]
2599
-
2600
-
[[package]]
2601
-
name = "gpu-alloc"
2602
-
version = "0.6.0"
2603
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2604
-
checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
2605
-
dependencies = [
2606
-
"bitflags 2.9.0",
2607
-
"gpu-alloc-types",
2608
-
]
2609
-
2610
-
[[package]]
2611
-
name = "gpu-alloc-types"
2612
-
version = "0.3.0"
2613
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2614
-
checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
2615
-
dependencies = [
2616
-
"bitflags 2.9.0",
2617
-
]
2618
-
2619
-
[[package]]
2620
-
name = "gpu-allocator"
2621
-
version = "0.27.0"
2622
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2623
-
checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd"
2624
-
dependencies = [
2625
-
"log",
2626
-
"presser",
2627
-
"thiserror 1.0.69",
2628
-
"windows 0.58.0",
2629
-
]
2630
-
2631
-
[[package]]
2632
-
name = "gpu-descriptor"
2633
-
version = "0.3.1"
2634
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2635
-
checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca"
2636
-
dependencies = [
2637
-
"bitflags 2.9.0",
2638
-
"gpu-descriptor-types",
2639
-
"hashbrown",
2640
-
]
2641
-
2642
-
[[package]]
2643
-
name = "gpu-descriptor-types"
2644
-
version = "0.2.0"
2645
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2646
-
checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91"
2647
-
dependencies = [
2648
-
"bitflags 2.9.0",
2649
-
]
2650
-
2651
-
[[package]]
2652
-
name = "grid"
2653
-
version = "0.15.0"
2654
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2655
-
checksum = "36119f3a540b086b4e436bb2b588cf98a68863470e0e880f4d0842f112a3183a"
2656
-
2657
-
[[package]]
2658
-
name = "guillotiere"
2659
-
version = "0.6.2"
2660
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2661
-
checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
2662
-
dependencies = [
2663
-
"euclid",
2664
-
"svg_fmt",
2665
-
]
2666
-
2667
-
[[package]]
2668
-
name = "half"
2669
-
version = "2.6.0"
2670
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2671
-
checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9"
2672
-
dependencies = [
2673
-
"cfg-if",
2674
-
"crunchy",
2675
-
]
2676
-
2677
-
[[package]]
2678
-
name = "hash32"
2679
-
version = "0.3.1"
2680
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2681
-
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
2682
-
dependencies = [
2683
-
"byteorder",
2684
-
]
2685
-
2686
-
[[package]]
2687
-
name = "hashbrown"
2688
-
version = "0.15.3"
2689
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2690
-
checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
2691
-
dependencies = [
2692
-
"equivalent",
2693
-
"foldhash",
2694
-
"serde",
2695
-
]
2696
-
2697
-
[[package]]
2698
-
name = "heapless"
2699
-
version = "0.8.0"
2700
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2701
-
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
2702
-
dependencies = [
2703
-
"hash32",
2704
-
"portable-atomic",
2705
-
"stable_deref_trait",
2706
-
]
2707
-
2708
-
[[package]]
2709
-
name = "heck"
2710
-
version = "0.5.0"
2711
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2712
-
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
2713
-
2714
-
[[package]]
2715
-
name = "hermit-abi"
2716
-
version = "0.4.0"
2717
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2718
-
checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
2719
-
2720
-
[[package]]
2721
-
name = "hexasphere"
2722
-
version = "15.1.0"
2723
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2724
-
checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679"
2725
-
dependencies = [
2726
-
"constgebra",
2727
-
"glam 0.29.3",
2728
-
"tinyvec",
2729
-
]
2730
-
2731
-
[[package]]
2732
-
name = "hexf-parse"
2733
-
version = "0.2.1"
2734
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2735
-
checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
2736
-
2737
-
[[package]]
2738
-
name = "home"
2739
-
version = "0.5.11"
2740
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2741
-
checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf"
2742
-
dependencies = [
2743
-
"windows-sys 0.59.0",
2744
-
]
2745
-
2746
-
[[package]]
2747
-
name = "icu_collections"
2748
-
version = "2.0.0"
2749
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2750
-
checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
2751
-
dependencies = [
2752
-
"displaydoc",
2753
-
"potential_utf",
2754
-
"yoke",
2755
-
"zerofrom",
2756
-
"zerovec",
2757
-
]
2758
-
2759
-
[[package]]
2760
-
name = "icu_locale_core"
2761
-
version = "2.0.0"
2762
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2763
-
checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
2764
-
dependencies = [
2765
-
"displaydoc",
2766
-
"litemap",
2767
-
"tinystr",
2768
-
"writeable",
2769
-
"zerovec",
2770
-
]
2771
-
2772
-
[[package]]
2773
-
name = "icu_normalizer"
2774
-
version = "2.0.0"
2775
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2776
-
checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
2777
-
dependencies = [
2778
-
"displaydoc",
2779
-
"icu_collections",
2780
-
"icu_normalizer_data",
2781
-
"icu_properties",
2782
-
"icu_provider",
2783
-
"smallvec",
2784
-
"zerovec",
2785
-
]
2786
-
2787
-
[[package]]
2788
-
name = "icu_normalizer_data"
2789
-
version = "2.0.0"
2790
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2791
-
checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
2792
-
2793
-
[[package]]
2794
-
name = "icu_properties"
2795
-
version = "2.0.0"
2796
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2797
-
checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a"
2798
-
dependencies = [
2799
-
"displaydoc",
2800
-
"icu_collections",
2801
-
"icu_locale_core",
2802
-
"icu_properties_data",
2803
-
"icu_provider",
2804
-
"potential_utf",
2805
-
"zerotrie",
2806
-
"zerovec",
2807
-
]
2808
-
2809
-
[[package]]
2810
-
name = "icu_properties_data"
2811
-
version = "2.0.0"
2812
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2813
-
checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04"
2814
-
2815
-
[[package]]
2816
-
name = "icu_provider"
2817
-
version = "2.0.0"
2818
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2819
-
checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
2820
-
dependencies = [
2821
-
"displaydoc",
2822
-
"icu_locale_core",
2823
-
"stable_deref_trait",
2824
-
"tinystr",
2825
-
"writeable",
2826
-
"yoke",
2827
-
"zerofrom",
2828
-
"zerotrie",
2829
-
"zerovec",
2830
-
]
2831
-
2832
-
[[package]]
2833
-
name = "idna"
2834
-
version = "1.0.3"
2835
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2836
-
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
2837
-
dependencies = [
2838
-
"idna_adapter",
2839
-
"smallvec",
2840
-
"utf8_iter",
2841
-
]
2842
-
2843
-
[[package]]
2844
-
name = "idna_adapter"
2845
-
version = "1.2.1"
2846
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2847
-
checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344"
2848
-
dependencies = [
2849
-
"icu_normalizer",
2850
-
"icu_properties",
2851
-
]
2852
-
2853
-
[[package]]
2854
-
name = "image"
2855
-
version = "0.24.9"
2856
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2857
-
checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
2858
-
dependencies = [
2859
-
"bytemuck",
2860
-
"byteorder",
2861
-
"color_quant",
2862
-
"exr",
2863
-
"gif",
2864
-
"jpeg-decoder",
2865
-
"num-traits",
2866
-
"png",
2867
-
"qoi",
2868
-
"tiff",
2869
-
]
2870
-
2871
-
[[package]]
2872
-
name = "image"
2873
-
version = "0.25.6"
2874
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2875
-
checksum = "db35664ce6b9810857a38a906215e75a9c879f0696556a39f59c62829710251a"
2876
-
dependencies = [
2877
-
"bytemuck",
2878
-
"byteorder-lite",
2879
-
"color_quant",
2880
-
"exr",
2881
-
"gif",
2882
-
"image-webp",
2883
-
"num-traits",
2884
-
"png",
2885
-
"qoi",
2886
-
"ravif",
2887
-
"rayon",
2888
-
"rgb",
2889
-
"tiff",
2890
-
"zune-core",
2891
-
"zune-jpeg",
2892
-
]
2893
-
2894
-
[[package]]
2895
-
name = "image-webp"
2896
-
version = "0.2.1"
2897
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2898
-
checksum = "b77d01e822461baa8409e156015a1d91735549f0f2c17691bd2d996bef238f7f"
2899
-
dependencies = [
2900
-
"byteorder-lite",
2901
-
"quick-error",
2902
-
]
2903
-
2904
-
[[package]]
2905
-
name = "imgref"
2906
-
version = "1.11.0"
2907
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2908
-
checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408"
2909
-
2910
-
[[package]]
2911
-
name = "immutable-chunkmap"
2912
-
version = "2.0.6"
2913
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2914
-
checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578"
2915
-
dependencies = [
2916
-
"arrayvec",
2917
-
]
2918
-
2919
-
[[package]]
2920
-
name = "indexmap"
2921
-
version = "2.9.0"
2922
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2923
-
checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
2924
-
dependencies = [
2925
-
"equivalent",
2926
-
"hashbrown",
2927
-
"serde",
2928
-
]
2929
-
2930
-
[[package]]
2931
-
name = "inflections"
2932
-
version = "1.1.1"
2933
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2934
-
checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
2935
-
2936
-
[[package]]
2937
-
name = "inotify"
2938
-
version = "0.11.0"
2939
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2940
-
checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"
2941
-
dependencies = [
2942
-
"bitflags 2.9.0",
2943
-
"inotify-sys",
2944
-
"libc",
2945
-
]
2946
-
2947
-
[[package]]
2948
-
name = "inotify-sys"
2949
-
version = "0.1.5"
2950
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2951
-
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
2952
-
dependencies = [
2953
-
"libc",
2954
-
]
2955
-
2956
-
[[package]]
2957
-
name = "interpolate_name"
2958
-
version = "0.2.4"
2959
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2960
-
checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
2961
-
dependencies = [
2962
-
"proc-macro2",
2963
-
"quote",
2964
-
"syn 2.0.101",
2965
-
]
2966
-
2967
-
[[package]]
2968
-
name = "io-kit-sys"
2969
-
version = "0.4.1"
2970
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2971
-
checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b"
2972
-
dependencies = [
2973
-
"core-foundation-sys",
2974
-
"mach2",
2975
-
]
2976
-
2977
-
[[package]]
2978
-
name = "itertools"
2979
-
version = "0.12.1"
2980
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2981
-
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
2982
-
dependencies = [
2983
-
"either",
2984
-
]
2985
-
2986
-
[[package]]
2987
-
name = "itertools"
2988
-
version = "0.13.0"
2989
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2990
-
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
2991
-
dependencies = [
2992
-
"either",
2993
-
]
2994
-
2995
-
[[package]]
2996
-
name = "itertools"
2997
-
version = "0.14.0"
2998
-
source = "registry+https://github.com/rust-lang/crates.io-index"
2999
-
checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285"
3000
-
dependencies = [
3001
-
"either",
3002
-
]
3003
-
3004
-
[[package]]
3005
-
name = "itoa"
3006
-
version = "1.0.15"
3007
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3008
-
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
3009
-
3010
-
[[package]]
3011
-
name = "jni"
3012
-
version = "0.21.1"
3013
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3014
-
checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97"
3015
-
dependencies = [
3016
-
"cesu8",
3017
-
"cfg-if",
3018
-
"combine",
3019
-
"jni-sys",
3020
-
"log",
3021
-
"thiserror 1.0.69",
3022
-
"walkdir",
3023
-
"windows-sys 0.45.0",
3024
-
]
3025
-
3026
-
[[package]]
3027
-
name = "jni-sys"
3028
-
version = "0.3.0"
3029
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3030
-
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
3031
-
3032
-
[[package]]
3033
-
name = "jobserver"
3034
-
version = "0.1.33"
3035
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3036
-
checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a"
3037
-
dependencies = [
3038
-
"getrandom 0.3.3",
3039
-
"libc",
3040
-
]
3041
-
3042
-
[[package]]
3043
-
name = "jpeg-decoder"
3044
-
version = "0.3.1"
3045
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3046
-
checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
3047
-
dependencies = [
3048
-
"rayon",
3049
-
]
3050
-
3051
-
[[package]]
3052
-
name = "js-sys"
3053
-
version = "0.3.77"
3054
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3055
-
checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f"
3056
-
dependencies = [
3057
-
"once_cell",
3058
-
"wasm-bindgen",
3059
-
]
3060
-
3061
-
[[package]]
3062
-
name = "khronos-egl"
3063
-
version = "6.0.0"
3064
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3065
-
checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
3066
-
dependencies = [
3067
-
"libc",
3068
-
"libloading",
3069
-
"pkg-config",
3070
-
]
3071
-
3072
-
[[package]]
3073
-
name = "khronos_api"
3074
-
version = "3.1.0"
3075
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3076
-
checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
3077
-
3078
-
[[package]]
3079
-
name = "ktx2"
3080
-
version = "0.3.0"
3081
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3082
-
checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838"
3083
-
dependencies = [
3084
-
"bitflags 1.3.2",
3085
-
]
3086
-
3087
-
[[package]]
3088
-
name = "lazy_static"
3089
-
version = "1.5.0"
3090
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3091
-
checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
3092
-
3093
-
[[package]]
3094
-
name = "lebe"
3095
-
version = "0.5.2"
3096
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3097
-
checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
3098
-
3099
-
[[package]]
3100
-
name = "lewton"
3101
-
version = "0.10.2"
3102
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3103
-
checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
3104
-
dependencies = [
3105
-
"byteorder",
3106
-
"ogg",
3107
-
"tinyvec",
3108
-
]
3109
-
3110
-
[[package]]
3111
-
name = "libc"
3112
-
version = "0.2.172"
3113
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3114
-
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
3115
-
3116
-
[[package]]
3117
-
name = "libfuzzer-sys"
3118
-
version = "0.4.9"
3119
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3120
-
checksum = "cf78f52d400cf2d84a3a973a78a592b4adc535739e0a5597a0da6f0c357adc75"
3121
-
dependencies = [
3122
-
"arbitrary",
3123
-
"cc",
3124
-
]
3125
-
3126
-
[[package]]
3127
-
name = "libloading"
3128
-
version = "0.8.6"
3129
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3130
-
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
3131
-
dependencies = [
3132
-
"cfg-if",
3133
-
"windows-targets 0.52.6",
3134
-
]
3135
-
3136
-
[[package]]
3137
-
name = "libm"
3138
-
version = "0.2.15"
3139
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3140
-
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
3141
-
3142
-
[[package]]
3143
-
name = "libredox"
3144
-
version = "0.1.3"
3145
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3146
-
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
3147
-
dependencies = [
3148
-
"bitflags 2.9.0",
3149
-
"libc",
3150
-
"redox_syscall 0.5.12",
3151
-
]
3152
-
3153
-
[[package]]
3154
-
name = "libudev-sys"
3155
-
version = "0.1.4"
3156
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3157
-
checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324"
3158
-
dependencies = [
3159
-
"libc",
3160
-
"pkg-config",
3161
-
]
3162
-
3163
-
[[package]]
3164
-
name = "libz-rs-sys"
3165
-
version = "0.5.0"
3166
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3167
-
checksum = "6489ca9bd760fe9642d7644e827b0c9add07df89857b0416ee15c1cc1a3b8c5a"
3168
-
dependencies = [
3169
-
"zlib-rs",
3170
-
]
3171
-
3172
-
[[package]]
3173
-
name = "linux-raw-sys"
3174
-
version = "0.4.15"
3175
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3176
-
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
3177
-
3178
-
[[package]]
3179
-
name = "litemap"
3180
-
version = "0.8.0"
3181
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3182
-
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
3183
-
3184
-
[[package]]
3185
-
name = "litrs"
3186
-
version = "0.4.1"
3187
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3188
-
checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5"
3189
-
3190
-
[[package]]
3191
-
name = "lock_api"
3192
-
version = "0.4.12"
3193
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3194
-
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
3195
-
dependencies = [
3196
-
"autocfg",
3197
-
"scopeguard",
3198
-
]
3199
-
3200
-
[[package]]
3201
-
name = "log"
3202
-
version = "0.4.27"
3203
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3204
-
checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
3205
-
3206
-
[[package]]
3207
-
name = "loop9"
3208
-
version = "0.1.5"
3209
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3210
-
checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062"
3211
-
dependencies = [
3212
-
"imgref",
3213
-
]
3214
-
3215
-
[[package]]
3216
-
name = "mach2"
3217
-
version = "0.4.2"
3218
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3219
-
checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
3220
-
dependencies = [
3221
-
"libc",
3222
-
]
3223
-
3224
-
[[package]]
3225
-
name = "malloc_buf"
3226
-
version = "0.0.6"
3227
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3228
-
checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
3229
-
dependencies = [
3230
-
"libc",
3231
-
]
3232
-
3233
-
[[package]]
3234
-
name = "matchers"
3235
-
version = "0.1.0"
3236
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3237
-
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
3238
-
dependencies = [
3239
-
"regex-automata 0.1.10",
3240
-
]
3241
-
3242
-
[[package]]
3243
-
name = "matrixmultiply"
3244
-
version = "0.3.9"
3245
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3246
-
checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a"
3247
-
dependencies = [
3248
-
"autocfg",
3249
-
"rawpointer",
3250
-
]
3251
-
3252
-
[[package]]
3253
-
name = "maybe-rayon"
3254
-
version = "0.1.1"
3255
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3256
-
checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519"
3257
-
dependencies = [
3258
-
"cfg-if",
3259
-
"rayon",
3260
-
]
3261
-
3262
-
[[package]]
3263
-
name = "memchr"
3264
-
version = "2.7.4"
3265
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3266
-
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
3267
-
3268
-
[[package]]
3269
-
name = "memmap2"
3270
-
version = "0.9.5"
3271
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3272
-
checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f"
3273
-
dependencies = [
3274
-
"libc",
3275
-
]
3276
-
3277
-
[[package]]
3278
-
name = "mesh-tools"
3279
-
version = "0.1.0"
3280
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3281
-
checksum = "9b07c5e96a6080555d650321a81c7e3cd68b08261f63ee5db2b069a50f5ce7db"
3282
-
dependencies = [
3283
-
"base64 0.13.1",
3284
-
"byteorder",
3285
-
"image 0.24.9",
3286
-
"nalgebra",
3287
-
"serde",
3288
-
"serde_json",
3289
-
"thiserror 1.0.69",
3290
-
"uuid",
3291
-
]
3292
-
3293
-
[[package]]
3294
-
name = "metal"
3295
-
version = "0.31.0"
3296
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3297
-
checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e"
3298
-
dependencies = [
3299
-
"bitflags 2.9.0",
3300
-
"block",
3301
-
"core-graphics-types",
3302
-
"foreign-types",
3303
-
"log",
3304
-
"objc",
3305
-
"paste",
3306
-
]
3307
-
3308
-
[[package]]
3309
-
name = "minimal-lexical"
3310
-
version = "0.2.1"
3311
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3312
-
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
3313
-
3314
-
[[package]]
3315
-
name = "miniz_oxide"
3316
-
version = "0.8.8"
3317
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3318
-
checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
3319
-
dependencies = [
3320
-
"adler2",
3321
-
"simd-adler32",
3322
-
]
3323
-
3324
-
[[package]]
3325
-
name = "naga"
3326
-
version = "24.0.0"
3327
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3328
-
checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e"
3329
-
dependencies = [
3330
-
"arrayvec",
3331
-
"bit-set 0.8.0",
3332
-
"bitflags 2.9.0",
3333
-
"cfg_aliases",
3334
-
"codespan-reporting",
3335
-
"hexf-parse",
3336
-
"indexmap",
3337
-
"log",
3338
-
"pp-rs",
3339
-
"rustc-hash",
3340
-
"spirv",
3341
-
"strum",
3342
-
"termcolor",
3343
-
"thiserror 2.0.12",
3344
-
"unicode-xid",
3345
-
]
3346
-
3347
-
[[package]]
3348
-
name = "naga_oil"
3349
-
version = "0.17.0"
3350
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3351
-
checksum = "0ca507a365f886f95f74420361b75442a3709c747a8a6e8b6c45b8667f45a82c"
3352
-
dependencies = [
3353
-
"bit-set 0.5.3",
3354
-
"codespan-reporting",
3355
-
"data-encoding",
3356
-
"indexmap",
3357
-
"naga",
3358
-
"once_cell",
3359
-
"regex",
3360
-
"regex-syntax 0.8.5",
3361
-
"rustc-hash",
3362
-
"thiserror 1.0.69",
3363
-
"tracing",
3364
-
"unicode-ident",
3365
-
]
3366
-
3367
-
[[package]]
3368
-
name = "nalgebra"
3369
-
version = "0.31.4"
3370
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3371
-
checksum = "20bd243ab3dbb395b39ee730402d2e5405e448c75133ec49cc977762c4cba3d1"
3372
-
dependencies = [
3373
-
"approx",
3374
-
"matrixmultiply",
3375
-
"nalgebra-macros",
3376
-
"num-complex",
3377
-
"num-rational",
3378
-
"num-traits",
3379
-
"simba",
3380
-
"typenum",
3381
-
]
3382
-
3383
-
[[package]]
3384
-
name = "nalgebra-macros"
3385
-
version = "0.1.0"
3386
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3387
-
checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218"
3388
-
dependencies = [
3389
-
"proc-macro2",
3390
-
"quote",
3391
-
"syn 1.0.109",
3392
-
]
3393
-
3394
-
[[package]]
3395
-
name = "ndk"
3396
-
version = "0.8.0"
3397
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3398
-
checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
3399
-
dependencies = [
3400
-
"bitflags 2.9.0",
3401
-
"jni-sys",
3402
-
"log",
3403
-
"ndk-sys 0.5.0+25.2.9519653",
3404
-
"num_enum",
3405
-
"thiserror 1.0.69",
3406
-
]
3407
-
3408
-
[[package]]
3409
-
name = "ndk"
3410
-
version = "0.9.0"
3411
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3412
-
checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
3413
-
dependencies = [
3414
-
"bitflags 2.9.0",
3415
-
"jni-sys",
3416
-
"log",
3417
-
"ndk-sys 0.6.0+11769913",
3418
-
"num_enum",
3419
-
"raw-window-handle",
3420
-
"thiserror 1.0.69",
3421
-
]
3422
-
3423
-
[[package]]
3424
-
name = "ndk-context"
3425
-
version = "0.1.1"
3426
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3427
-
checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
3428
-
3429
-
[[package]]
3430
-
name = "ndk-sys"
3431
-
version = "0.5.0+25.2.9519653"
3432
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3433
-
checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691"
3434
-
dependencies = [
3435
-
"jni-sys",
3436
-
]
3437
-
3438
-
[[package]]
3439
-
name = "ndk-sys"
3440
-
version = "0.6.0+11769913"
3441
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3442
-
checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873"
3443
-
dependencies = [
3444
-
"jni-sys",
3445
-
]
3446
-
3447
-
[[package]]
3448
-
name = "new_debug_unreachable"
3449
-
version = "1.0.6"
3450
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3451
-
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
3452
-
3453
-
[[package]]
3454
-
name = "nix"
3455
-
version = "0.29.0"
3456
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3457
-
checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
3458
-
dependencies = [
3459
-
"bitflags 2.9.0",
3460
-
"cfg-if",
3461
-
"cfg_aliases",
3462
-
"libc",
3463
-
]
3464
-
3465
-
[[package]]
3466
-
name = "nohash-hasher"
3467
-
version = "0.2.0"
3468
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3469
-
checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
3470
-
3471
-
[[package]]
3472
-
name = "nom"
3473
-
version = "7.1.3"
3474
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3475
-
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
3476
-
dependencies = [
3477
-
"memchr",
3478
-
"minimal-lexical",
3479
-
]
3480
-
3481
-
[[package]]
3482
-
name = "nonmax"
3483
-
version = "0.5.5"
3484
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3485
-
checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51"
3486
-
3487
-
[[package]]
3488
-
name = "noop_proc_macro"
3489
-
version = "0.3.0"
3490
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3491
-
checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8"
3492
-
3493
-
[[package]]
3494
-
name = "ntapi"
3495
-
version = "0.4.1"
3496
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3497
-
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
3498
-
dependencies = [
3499
-
"winapi",
3500
-
]
3501
-
3502
-
[[package]]
3503
-
name = "nu-ansi-term"
3504
-
version = "0.46.0"
3505
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3506
-
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
3507
-
dependencies = [
3508
-
"overload",
3509
-
"winapi",
3510
-
]
3511
-
3512
-
[[package]]
3513
-
name = "num-bigint"
3514
-
version = "0.4.6"
3515
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3516
-
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
3517
-
dependencies = [
3518
-
"num-integer",
3519
-
"num-traits",
3520
-
]
3521
-
3522
-
[[package]]
3523
-
name = "num-complex"
3524
-
version = "0.4.6"
3525
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3526
-
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
3527
-
dependencies = [
3528
-
"num-traits",
3529
-
]
3530
-
3531
-
[[package]]
3532
-
name = "num-derive"
3533
-
version = "0.4.2"
3534
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3535
-
checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
3536
-
dependencies = [
3537
-
"proc-macro2",
3538
-
"quote",
3539
-
"syn 2.0.101",
3540
-
]
3541
-
3542
-
[[package]]
3543
-
name = "num-integer"
3544
-
version = "0.1.46"
3545
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3546
-
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
3547
-
dependencies = [
3548
-
"num-traits",
3549
-
]
3550
-
3551
-
[[package]]
3552
-
name = "num-rational"
3553
-
version = "0.4.2"
3554
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3555
-
checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
3556
-
dependencies = [
3557
-
"num-bigint",
3558
-
"num-integer",
3559
-
"num-traits",
3560
-
]
3561
-
3562
-
[[package]]
3563
-
name = "num-traits"
3564
-
version = "0.2.19"
3565
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3566
-
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
3567
-
dependencies = [
3568
-
"autocfg",
3569
-
"libm",
3570
-
]
3571
-
3572
-
[[package]]
3573
-
name = "num_enum"
3574
-
version = "0.7.3"
3575
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3576
-
checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179"
3577
-
dependencies = [
3578
-
"num_enum_derive",
3579
-
]
3580
-
3581
-
[[package]]
3582
-
name = "num_enum_derive"
3583
-
version = "0.7.3"
3584
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3585
-
checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
3586
-
dependencies = [
3587
-
"proc-macro-crate",
3588
-
"proc-macro2",
3589
-
"quote",
3590
-
"syn 2.0.101",
3591
-
]
3592
-
3593
-
[[package]]
3594
-
name = "objc"
3595
-
version = "0.2.7"
3596
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3597
-
checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
3598
-
dependencies = [
3599
-
"malloc_buf",
3600
-
]
3601
-
3602
-
[[package]]
3603
-
name = "objc-sys"
3604
-
version = "0.3.5"
3605
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3606
-
checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
3607
-
3608
-
[[package]]
3609
-
name = "objc2"
3610
-
version = "0.5.2"
3611
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3612
-
checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
3613
-
dependencies = [
3614
-
"objc-sys",
3615
-
"objc2-encode",
3616
-
]
3617
-
3618
-
[[package]]
3619
-
name = "objc2"
3620
-
version = "0.6.1"
3621
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3622
-
checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551"
3623
-
dependencies = [
3624
-
"objc2-encode",
3625
-
]
3626
-
3627
-
[[package]]
3628
-
name = "objc2-app-kit"
3629
-
version = "0.2.2"
3630
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3631
-
checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
3632
-
dependencies = [
3633
-
"bitflags 2.9.0",
3634
-
"block2",
3635
-
"libc",
3636
-
"objc2 0.5.2",
3637
-
"objc2-core-data",
3638
-
"objc2-core-image",
3639
-
"objc2-foundation 0.2.2",
3640
-
"objc2-quartz-core",
3641
-
]
3642
-
3643
-
[[package]]
3644
-
name = "objc2-app-kit"
3645
-
version = "0.3.1"
3646
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3647
-
checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc"
3648
-
dependencies = [
3649
-
"bitflags 2.9.0",
3650
-
"objc2 0.6.1",
3651
-
"objc2-core-graphics",
3652
-
"objc2-foundation 0.3.1",
3653
-
]
3654
-
3655
-
[[package]]
3656
-
name = "objc2-cloud-kit"
3657
-
version = "0.2.2"
3658
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3659
-
checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
3660
-
dependencies = [
3661
-
"bitflags 2.9.0",
3662
-
"block2",
3663
-
"objc2 0.5.2",
3664
-
"objc2-core-location",
3665
-
"objc2-foundation 0.2.2",
3666
-
]
3667
-
3668
-
[[package]]
3669
-
name = "objc2-contacts"
3670
-
version = "0.2.2"
3671
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3672
-
checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889"
3673
-
dependencies = [
3674
-
"block2",
3675
-
"objc2 0.5.2",
3676
-
"objc2-foundation 0.2.2",
3677
-
]
3678
-
3679
-
[[package]]
3680
-
name = "objc2-core-data"
3681
-
version = "0.2.2"
3682
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3683
-
checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
3684
-
dependencies = [
3685
-
"bitflags 2.9.0",
3686
-
"block2",
3687
-
"objc2 0.5.2",
3688
-
"objc2-foundation 0.2.2",
3689
-
]
3690
-
3691
-
[[package]]
3692
-
name = "objc2-core-foundation"
3693
-
version = "0.3.1"
3694
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3695
-
checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166"
3696
-
dependencies = [
3697
-
"bitflags 2.9.0",
3698
-
"dispatch2",
3699
-
"objc2 0.6.1",
3700
-
]
3701
-
3702
-
[[package]]
3703
-
name = "objc2-core-graphics"
3704
-
version = "0.3.1"
3705
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3706
-
checksum = "989c6c68c13021b5c2d6b71456ebb0f9dc78d752e86a98da7c716f4f9470f5a4"
3707
-
dependencies = [
3708
-
"bitflags 2.9.0",
3709
-
"dispatch2",
3710
-
"objc2 0.6.1",
3711
-
"objc2-core-foundation",
3712
-
"objc2-io-surface",
3713
-
]
3714
-
3715
-
[[package]]
3716
-
name = "objc2-core-image"
3717
-
version = "0.2.2"
3718
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3719
-
checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
3720
-
dependencies = [
3721
-
"block2",
3722
-
"objc2 0.5.2",
3723
-
"objc2-foundation 0.2.2",
3724
-
"objc2-metal",
3725
-
]
3726
-
3727
-
[[package]]
3728
-
name = "objc2-core-location"
3729
-
version = "0.2.2"
3730
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3731
-
checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781"
3732
-
dependencies = [
3733
-
"block2",
3734
-
"objc2 0.5.2",
3735
-
"objc2-contacts",
3736
-
"objc2-foundation 0.2.2",
3737
-
]
3738
-
3739
-
[[package]]
3740
-
name = "objc2-encode"
3741
-
version = "4.1.0"
3742
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3743
-
checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33"
3744
-
3745
-
[[package]]
3746
-
name = "objc2-foundation"
3747
-
version = "0.2.2"
3748
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3749
-
checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
3750
-
dependencies = [
3751
-
"bitflags 2.9.0",
3752
-
"block2",
3753
-
"dispatch",
3754
-
"libc",
3755
-
"objc2 0.5.2",
3756
-
]
3757
-
3758
-
[[package]]
3759
-
name = "objc2-foundation"
3760
-
version = "0.3.1"
3761
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3762
-
checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c"
3763
-
dependencies = [
3764
-
"bitflags 2.9.0",
3765
-
"objc2 0.6.1",
3766
-
"objc2-core-foundation",
3767
-
]
3768
-
3769
-
[[package]]
3770
-
name = "objc2-io-surface"
3771
-
version = "0.3.1"
3772
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3773
-
checksum = "7282e9ac92529fa3457ce90ebb15f4ecbc383e8338060960760fa2cf75420c3c"
3774
-
dependencies = [
3775
-
"bitflags 2.9.0",
3776
-
"objc2 0.6.1",
3777
-
"objc2-core-foundation",
3778
-
]
3779
-
3780
-
[[package]]
3781
-
name = "objc2-link-presentation"
3782
-
version = "0.2.2"
3783
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3784
-
checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398"
3785
-
dependencies = [
3786
-
"block2",
3787
-
"objc2 0.5.2",
3788
-
"objc2-app-kit 0.2.2",
3789
-
"objc2-foundation 0.2.2",
3790
-
]
3791
-
3792
-
[[package]]
3793
-
name = "objc2-metal"
3794
-
version = "0.2.2"
3795
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3796
-
checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
3797
-
dependencies = [
3798
-
"bitflags 2.9.0",
3799
-
"block2",
3800
-
"objc2 0.5.2",
3801
-
"objc2-foundation 0.2.2",
3802
-
]
3803
-
3804
-
[[package]]
3805
-
name = "objc2-quartz-core"
3806
-
version = "0.2.2"
3807
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3808
-
checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
3809
-
dependencies = [
3810
-
"bitflags 2.9.0",
3811
-
"block2",
3812
-
"objc2 0.5.2",
3813
-
"objc2-foundation 0.2.2",
3814
-
"objc2-metal",
3815
-
]
3816
-
3817
-
[[package]]
3818
-
name = "objc2-symbols"
3819
-
version = "0.2.2"
3820
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3821
-
checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc"
3822
-
dependencies = [
3823
-
"objc2 0.5.2",
3824
-
"objc2-foundation 0.2.2",
3825
-
]
3826
-
3827
-
[[package]]
3828
-
name = "objc2-ui-kit"
3829
-
version = "0.2.2"
3830
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3831
-
checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
3832
-
dependencies = [
3833
-
"bitflags 2.9.0",
3834
-
"block2",
3835
-
"objc2 0.5.2",
3836
-
"objc2-cloud-kit",
3837
-
"objc2-core-data",
3838
-
"objc2-core-image",
3839
-
"objc2-core-location",
3840
-
"objc2-foundation 0.2.2",
3841
-
"objc2-link-presentation",
3842
-
"objc2-quartz-core",
3843
-
"objc2-symbols",
3844
-
"objc2-uniform-type-identifiers",
3845
-
"objc2-user-notifications",
3846
-
]
3847
-
3848
-
[[package]]
3849
-
name = "objc2-uniform-type-identifiers"
3850
-
version = "0.2.2"
3851
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3852
-
checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe"
3853
-
dependencies = [
3854
-
"block2",
3855
-
"objc2 0.5.2",
3856
-
"objc2-foundation 0.2.2",
3857
-
]
3858
-
3859
-
[[package]]
3860
-
name = "objc2-user-notifications"
3861
-
version = "0.2.2"
3862
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3863
-
checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
3864
-
dependencies = [
3865
-
"bitflags 2.9.0",
3866
-
"block2",
3867
-
"objc2 0.5.2",
3868
-
"objc2-core-location",
3869
-
"objc2-foundation 0.2.2",
3870
-
]
3871
-
3872
-
[[package]]
3873
-
name = "oboe"
3874
-
version = "0.6.1"
3875
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3876
-
checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
3877
-
dependencies = [
3878
-
"jni",
3879
-
"ndk 0.8.0",
3880
-
"ndk-context",
3881
-
"num-derive",
3882
-
"num-traits",
3883
-
"oboe-sys",
3884
-
]
3885
-
3886
-
[[package]]
3887
-
name = "oboe-sys"
3888
-
version = "0.6.1"
3889
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3890
-
checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d"
3891
-
dependencies = [
3892
-
"cc",
3893
-
]
3894
-
3895
-
[[package]]
3896
-
name = "offset-allocator"
3897
-
version = "0.2.0"
3898
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3899
-
checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2"
3900
-
dependencies = [
3901
-
"log",
3902
-
"nonmax",
3903
-
]
3904
-
3905
-
[[package]]
3906
-
name = "ogg"
3907
-
version = "0.8.0"
3908
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3909
-
checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
3910
-
dependencies = [
3911
-
"byteorder",
3912
-
]
3913
-
3914
-
[[package]]
3915
-
name = "once_cell"
3916
-
version = "1.21.3"
3917
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3918
-
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
3919
-
3920
-
[[package]]
3921
-
name = "orbclient"
3922
-
version = "0.3.48"
3923
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3924
-
checksum = "ba0b26cec2e24f08ed8bb31519a9333140a6599b867dac464bb150bdb796fd43"
3925
-
dependencies = [
3926
-
"libredox",
3927
-
]
3928
-
3929
-
[[package]]
3930
-
name = "ordered-float"
3931
-
version = "4.6.0"
3932
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3933
-
checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951"
3934
-
dependencies = [
3935
-
"num-traits",
3936
-
]
3937
-
3938
-
[[package]]
3939
-
name = "overload"
3940
-
version = "0.1.1"
3941
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3942
-
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
3943
-
3944
-
[[package]]
3945
-
name = "owned_ttf_parser"
3946
-
version = "0.25.0"
3947
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3948
-
checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4"
3949
-
dependencies = [
3950
-
"ttf-parser 0.25.1",
3951
-
]
3952
-
3953
-
[[package]]
3954
-
name = "owo-colors"
3955
-
version = "4.2.0"
3956
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3957
-
checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564"
3958
-
3959
-
[[package]]
3960
-
name = "parking"
3961
-
version = "2.2.1"
3962
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3963
-
checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
3964
-
3965
-
[[package]]
3966
-
name = "parking_lot"
3967
-
version = "0.12.3"
3968
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3969
-
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
3970
-
dependencies = [
3971
-
"lock_api",
3972
-
"parking_lot_core",
3973
-
]
3974
-
3975
-
[[package]]
3976
-
name = "parking_lot_core"
3977
-
version = "0.9.10"
3978
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3979
-
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
3980
-
dependencies = [
3981
-
"cfg-if",
3982
-
"libc",
3983
-
"redox_syscall 0.5.12",
3984
-
"smallvec",
3985
-
"windows-targets 0.52.6",
3986
-
]
3987
-
3988
-
[[package]]
3989
-
name = "paste"
3990
-
version = "1.0.15"
3991
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3992
-
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
3993
-
3994
-
[[package]]
3995
-
name = "percent-encoding"
3996
-
version = "2.3.1"
3997
-
source = "registry+https://github.com/rust-lang/crates.io-index"
3998
-
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
3999
-
4000
-
[[package]]
4001
-
name = "petgraph"
4002
-
version = "0.7.1"
4003
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4004
-
checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772"
4005
-
dependencies = [
4006
-
"fixedbitset",
4007
-
"indexmap",
4008
-
"serde",
4009
-
"serde_derive",
4010
-
]
4011
-
4012
-
[[package]]
4013
-
name = "pin-project"
4014
-
version = "1.1.10"
4015
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4016
-
checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a"
4017
-
dependencies = [
4018
-
"pin-project-internal",
4019
-
]
4020
-
4021
-
[[package]]
4022
-
name = "pin-project-internal"
4023
-
version = "1.1.10"
4024
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4025
-
checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
4026
-
dependencies = [
4027
-
"proc-macro2",
4028
-
"quote",
4029
-
"syn 2.0.101",
4030
-
]
4031
-
4032
-
[[package]]
4033
-
name = "pin-project-lite"
4034
-
version = "0.2.16"
4035
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4036
-
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
4037
-
4038
-
[[package]]
4039
-
name = "piper"
4040
-
version = "0.2.4"
4041
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4042
-
checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
4043
-
dependencies = [
4044
-
"atomic-waker",
4045
-
"fastrand",
4046
-
"futures-io",
4047
-
]
4048
-
4049
-
[[package]]
4050
-
name = "pkg-config"
4051
-
version = "0.3.32"
4052
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4053
-
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
4054
-
4055
-
[[package]]
4056
-
name = "png"
4057
-
version = "0.17.16"
4058
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4059
-
checksum = "82151a2fc869e011c153adc57cf2789ccb8d9906ce52c0b39a6b5697749d7526"
4060
-
dependencies = [
4061
-
"bitflags 1.3.2",
4062
-
"crc32fast",
4063
-
"fdeflate",
4064
-
"flate2",
4065
-
"miniz_oxide",
4066
-
]
4067
-
4068
-
[[package]]
4069
-
name = "polling"
4070
-
version = "3.7.4"
4071
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4072
-
checksum = "a604568c3202727d1507653cb121dbd627a58684eb09a820fd746bee38b4442f"
4073
-
dependencies = [
4074
-
"cfg-if",
4075
-
"concurrent-queue",
4076
-
"hermit-abi",
4077
-
"pin-project-lite",
4078
-
"rustix",
4079
-
"tracing",
4080
-
"windows-sys 0.59.0",
4081
-
]
4082
-
4083
-
[[package]]
4084
-
name = "portable-atomic"
4085
-
version = "1.11.0"
4086
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4087
-
checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e"
4088
-
4089
-
[[package]]
4090
-
name = "portable-atomic-util"
4091
-
version = "0.2.4"
4092
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4093
-
checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
4094
-
dependencies = [
4095
-
"portable-atomic",
4096
-
]
4097
-
4098
-
[[package]]
4099
-
name = "potential_utf"
4100
-
version = "0.1.2"
4101
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4102
-
checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585"
4103
-
dependencies = [
4104
-
"zerovec",
4105
-
]
4106
-
4107
-
[[package]]
4108
-
name = "pp-rs"
4109
-
version = "0.2.1"
4110
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4111
-
checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee"
4112
-
dependencies = [
4113
-
"unicode-xid",
4114
-
]
4115
-
4116
-
[[package]]
4117
-
name = "ppv-lite86"
4118
-
version = "0.2.21"
4119
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4120
-
checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
4121
-
dependencies = [
4122
-
"zerocopy",
4123
-
]
4124
-
4125
-
[[package]]
4126
-
name = "presser"
4127
-
version = "0.3.1"
4128
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4129
-
checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa"
4130
-
4131
-
[[package]]
4132
-
name = "prettyplease"
4133
-
version = "0.2.32"
4134
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4135
-
checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6"
4136
-
dependencies = [
4137
-
"proc-macro2",
4138
-
"syn 2.0.101",
4139
-
]
4140
-
4141
-
[[package]]
4142
-
name = "proc-macro-crate"
4143
-
version = "3.3.0"
4144
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4145
-
checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35"
4146
-
dependencies = [
4147
-
"toml_edit",
4148
-
]
4149
-
4150
-
[[package]]
4151
-
name = "proc-macro2"
4152
-
version = "1.0.95"
4153
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4154
-
checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778"
4155
-
dependencies = [
4156
-
"unicode-ident",
4157
-
]
4158
-
4159
-
[[package]]
4160
-
name = "profiling"
4161
-
version = "1.0.16"
4162
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4163
-
checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d"
4164
-
dependencies = [
4165
-
"profiling-procmacros",
4166
-
]
4167
-
4168
-
[[package]]
4169
-
name = "profiling-procmacros"
4170
-
version = "1.0.16"
4171
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4172
-
checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30"
4173
-
dependencies = [
4174
-
"quote",
4175
-
"syn 2.0.101",
4176
-
]
4177
-
4178
-
[[package]]
4179
-
name = "qoi"
4180
-
version = "0.4.1"
4181
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4182
-
checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
4183
-
dependencies = [
4184
-
"bytemuck",
4185
-
]
4186
-
4187
-
[[package]]
4188
-
name = "quick-error"
4189
-
version = "2.0.1"
4190
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4191
-
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
4192
-
4193
-
[[package]]
4194
-
name = "quick-xml"
4195
-
version = "0.37.5"
4196
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4197
-
checksum = "331e97a1af0bf59823e6eadffe373d7b27f485be8748f71471c662c1f269b7fb"
4198
-
dependencies = [
4199
-
"memchr",
4200
-
]
4201
-
4202
-
[[package]]
4203
-
name = "quote"
4204
-
version = "1.0.40"
4205
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4206
-
checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
4207
-
dependencies = [
4208
-
"proc-macro2",
4209
-
]
4210
-
4211
-
[[package]]
4212
-
name = "r-efi"
4213
-
version = "5.2.0"
4214
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4215
-
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
4216
-
4217
-
[[package]]
4218
-
name = "radsort"
4219
-
version = "0.1.1"
4220
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4221
-
checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22"
4222
-
4223
-
[[package]]
4224
-
name = "rand"
4225
-
version = "0.8.5"
4226
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4227
-
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
4228
-
dependencies = [
4229
-
"libc",
4230
-
"rand_chacha",
4231
-
"rand_core",
4232
-
]
4233
-
4234
-
[[package]]
4235
-
name = "rand_chacha"
4236
-
version = "0.3.1"
4237
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4238
-
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
4239
-
dependencies = [
4240
-
"ppv-lite86",
4241
-
"rand_core",
4242
-
]
4243
-
4244
-
[[package]]
4245
-
name = "rand_core"
4246
-
version = "0.6.4"
4247
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4248
-
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
4249
-
dependencies = [
4250
-
"getrandom 0.2.16",
4251
-
]
4252
-
4253
-
[[package]]
4254
-
name = "rand_distr"
4255
-
version = "0.4.3"
4256
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4257
-
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
4258
-
dependencies = [
4259
-
"num-traits",
4260
-
"rand",
4261
-
]
4262
-
4263
-
[[package]]
4264
-
name = "range-alloc"
4265
-
version = "0.1.4"
4266
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4267
-
checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde"
4268
-
4269
-
[[package]]
4270
-
name = "rangemap"
4271
-
version = "1.5.1"
4272
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4273
-
checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684"
4274
-
4275
-
[[package]]
4276
-
name = "rav1e"
4277
-
version = "0.7.1"
4278
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4279
-
checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9"
4280
-
dependencies = [
4281
-
"arbitrary",
4282
-
"arg_enum_proc_macro",
4283
-
"arrayvec",
4284
-
"av1-grain",
4285
-
"bitstream-io",
4286
-
"built",
4287
-
"cfg-if",
4288
-
"interpolate_name",
4289
-
"itertools 0.12.1",
4290
-
"libc",
4291
-
"libfuzzer-sys",
4292
-
"log",
4293
-
"maybe-rayon",
4294
-
"new_debug_unreachable",
4295
-
"noop_proc_macro",
4296
-
"num-derive",
4297
-
"num-traits",
4298
-
"once_cell",
4299
-
"paste",
4300
-
"profiling",
4301
-
"rand",
4302
-
"rand_chacha",
4303
-
"simd_helpers",
4304
-
"system-deps",
4305
-
"thiserror 1.0.69",
4306
-
"v_frame",
4307
-
"wasm-bindgen",
4308
-
]
4309
-
4310
-
[[package]]
4311
-
name = "ravif"
4312
-
version = "0.11.12"
4313
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4314
-
checksum = "d6a5f31fcf7500f9401fea858ea4ab5525c99f2322cfcee732c0e6c74208c0c6"
4315
-
dependencies = [
4316
-
"avif-serialize",
4317
-
"imgref",
4318
-
"loop9",
4319
-
"quick-error",
4320
-
"rav1e",
4321
-
"rayon",
4322
-
"rgb",
4323
-
]
4324
-
4325
-
[[package]]
4326
-
name = "raw-window-handle"
4327
-
version = "0.6.2"
4328
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4329
-
checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
4330
-
4331
-
[[package]]
4332
-
name = "rawpointer"
4333
-
version = "0.2.1"
4334
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4335
-
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
4336
-
4337
-
[[package]]
4338
-
name = "rayon"
4339
-
version = "1.10.0"
4340
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4341
-
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
4342
-
dependencies = [
4343
-
"either",
4344
-
"rayon-core",
4345
-
]
4346
-
4347
-
[[package]]
4348
-
name = "rayon-core"
4349
-
version = "1.12.1"
4350
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4351
-
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
4352
-
dependencies = [
4353
-
"crossbeam-deque",
4354
-
"crossbeam-utils",
4355
-
]
4356
-
4357
-
[[package]]
4358
-
name = "read-fonts"
4359
-
version = "0.29.0"
4360
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4361
-
checksum = "5ce8e2ca6b24313587a03ca61bb74c384e2a815bd90cf2866cfc9f5fb7a11fa0"
4362
-
dependencies = [
4363
-
"bytemuck",
4364
-
"font-types",
4365
-
]
4366
-
4367
-
[[package]]
4368
-
name = "rectangle-pack"
4369
-
version = "0.4.2"
4370
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4371
-
checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb"
4372
-
4373
-
[[package]]
4374
-
name = "redox_syscall"
4375
-
version = "0.4.1"
4376
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4377
-
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
4378
-
dependencies = [
4379
-
"bitflags 1.3.2",
4380
-
]
4381
-
4382
-
[[package]]
4383
-
name = "redox_syscall"
4384
-
version = "0.5.12"
4385
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4386
-
checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
4387
-
dependencies = [
4388
-
"bitflags 2.9.0",
4389
-
]
4390
-
4391
-
[[package]]
4392
-
name = "regex"
4393
-
version = "1.11.1"
4394
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4395
-
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
4396
-
dependencies = [
4397
-
"aho-corasick",
4398
-
"memchr",
4399
-
"regex-automata 0.4.9",
4400
-
"regex-syntax 0.8.5",
4401
-
]
4402
-
4403
-
[[package]]
4404
-
name = "regex-automata"
4405
-
version = "0.1.10"
4406
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4407
-
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
4408
-
dependencies = [
4409
-
"regex-syntax 0.6.29",
4410
-
]
4411
-
4412
-
[[package]]
4413
-
name = "regex-automata"
4414
-
version = "0.4.9"
4415
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4416
-
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
4417
-
dependencies = [
4418
-
"aho-corasick",
4419
-
"memchr",
4420
-
"regex-syntax 0.8.5",
4421
-
]
4422
-
4423
-
[[package]]
4424
-
name = "regex-syntax"
4425
-
version = "0.6.29"
4426
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4427
-
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
4428
-
4429
-
[[package]]
4430
-
name = "regex-syntax"
4431
-
version = "0.8.5"
4432
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4433
-
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
4434
-
4435
-
[[package]]
4436
-
name = "renderdoc-sys"
4437
-
version = "1.1.0"
4438
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4439
-
checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832"
4440
-
4441
-
[[package]]
4442
-
name = "rgb"
4443
-
version = "0.8.50"
4444
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4445
-
checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a"
4446
-
4447
-
[[package]]
4448
-
name = "rodio"
4449
-
version = "0.20.1"
4450
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4451
-
checksum = "e7ceb6607dd738c99bc8cb28eff249b7cd5c8ec88b9db96c0608c1480d140fb1"
4452
-
dependencies = [
4453
-
"cpal",
4454
-
"lewton",
4455
-
]
4456
-
4457
-
[[package]]
4458
-
name = "ron"
4459
-
version = "0.8.1"
4460
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4461
-
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
4462
-
dependencies = [
4463
-
"base64 0.21.7",
4464
-
"bitflags 2.9.0",
4465
-
"serde",
4466
-
"serde_derive",
4467
-
]
4468
-
4469
-
[[package]]
4470
-
name = "roxmltree"
4471
-
version = "0.20.0"
4472
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4473
-
checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
4474
-
4475
-
[[package]]
4476
-
name = "rustc-hash"
4477
-
version = "1.1.0"
4478
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4479
-
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
4480
-
4481
-
[[package]]
4482
-
name = "rustix"
4483
-
version = "0.38.44"
4484
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4485
-
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
4486
-
dependencies = [
4487
-
"bitflags 2.9.0",
4488
-
"errno",
4489
-
"libc",
4490
-
"linux-raw-sys",
4491
-
"windows-sys 0.59.0",
4492
-
]
4493
-
4494
-
[[package]]
4495
-
name = "rustversion"
4496
-
version = "1.0.20"
4497
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4498
-
checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2"
4499
-
4500
-
[[package]]
4501
-
name = "rustybuzz"
4502
-
version = "0.14.1"
4503
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4504
-
checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c"
4505
-
dependencies = [
4506
-
"bitflags 2.9.0",
4507
-
"bytemuck",
4508
-
"libm",
4509
-
"smallvec",
4510
-
"ttf-parser 0.21.1",
4511
-
"unicode-bidi-mirroring",
4512
-
"unicode-ccc",
4513
-
"unicode-properties",
4514
-
"unicode-script",
4515
-
]
4516
-
4517
-
[[package]]
4518
-
name = "ruzstd"
4519
-
version = "0.8.1"
4520
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4521
-
checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c"
4522
-
dependencies = [
4523
-
"twox-hash",
4524
-
]
4525
-
4526
-
[[package]]
4527
-
name = "ryu"
4528
-
version = "1.0.20"
4529
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4530
-
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
4531
-
4532
-
[[package]]
4533
-
name = "safe_arch"
4534
-
version = "0.7.4"
4535
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4536
-
checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323"
4537
-
dependencies = [
4538
-
"bytemuck",
4539
-
]
4540
-
4541
-
[[package]]
4542
-
name = "same-file"
4543
-
version = "1.0.6"
4544
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4545
-
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
4546
-
dependencies = [
4547
-
"winapi-util",
4548
-
]
4549
-
4550
-
[[package]]
4551
-
name = "scoped-tls"
4552
-
version = "1.0.1"
4553
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4554
-
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
4555
-
4556
-
[[package]]
4557
-
name = "scopeguard"
4558
-
version = "1.2.0"
4559
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4560
-
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
4561
-
4562
-
[[package]]
4563
-
name = "sctk-adwaita"
4564
-
version = "0.10.1"
4565
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4566
-
checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec"
4567
-
dependencies = [
4568
-
"ab_glyph",
4569
-
"log",
4570
-
"memmap2",
4571
-
"smithay-client-toolkit",
4572
-
"tiny-skia",
4573
-
]
4574
-
4575
-
[[package]]
4576
-
name = "self_cell"
4577
-
version = "1.2.0"
4578
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4579
-
checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749"
4580
-
4581
-
[[package]]
4582
-
name = "send_wrapper"
4583
-
version = "0.6.0"
4584
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4585
-
checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
4586
-
4587
-
[[package]]
4588
-
name = "serde"
4589
-
version = "1.0.219"
4590
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4591
-
checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
4592
-
dependencies = [
4593
-
"serde_derive",
4594
-
]
4595
-
4596
-
[[package]]
4597
-
name = "serde_derive"
4598
-
version = "1.0.219"
4599
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4600
-
checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
4601
-
dependencies = [
4602
-
"proc-macro2",
4603
-
"quote",
4604
-
"syn 2.0.101",
4605
-
]
4606
-
4607
-
[[package]]
4608
-
name = "serde_json"
4609
-
version = "1.0.140"
4610
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4611
-
checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373"
4612
-
dependencies = [
4613
-
"itoa",
4614
-
"memchr",
4615
-
"ryu",
4616
-
"serde",
4617
-
]
4618
-
4619
-
[[package]]
4620
-
name = "serde_spanned"
4621
-
version = "0.6.8"
4622
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4623
-
checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
4624
-
dependencies = [
4625
-
"serde",
4626
-
]
4627
-
4628
-
[[package]]
4629
-
name = "sharded-slab"
4630
-
version = "0.1.7"
4631
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4632
-
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
4633
-
dependencies = [
4634
-
"lazy_static",
4635
-
]
4636
-
4637
-
[[package]]
4638
-
name = "shlex"
4639
-
version = "1.3.0"
4640
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4641
-
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
4642
-
4643
-
[[package]]
4644
-
name = "simba"
4645
-
version = "0.7.3"
4646
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4647
-
checksum = "2f3fd720c48c53cace224ae62bef1bbff363a70c68c4802a78b5cc6159618176"
4648
-
dependencies = [
4649
-
"approx",
4650
-
"num-complex",
4651
-
"num-traits",
4652
-
"paste",
4653
-
"wide",
4654
-
]
4655
-
4656
-
[[package]]
4657
-
name = "simd-adler32"
4658
-
version = "0.3.7"
4659
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4660
-
checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
4661
-
4662
-
[[package]]
4663
-
name = "simd_helpers"
4664
-
version = "0.1.0"
4665
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4666
-
checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6"
4667
-
dependencies = [
4668
-
"quote",
4669
-
]
4670
-
4671
-
[[package]]
4672
-
name = "skrifa"
4673
-
version = "0.31.0"
4674
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4675
-
checksum = "bbe6666ab11018ab91ff7b03f1a3b9fdbecfb610848436fefa5ce50343d3d913"
4676
-
dependencies = [
4677
-
"bytemuck",
4678
-
"read-fonts",
4679
-
]
4680
-
4681
-
[[package]]
4682
-
name = "slab"
4683
-
version = "0.4.9"
4684
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4685
-
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
4686
-
dependencies = [
4687
-
"autocfg",
4688
-
]
4689
-
4690
-
[[package]]
4691
-
name = "slotmap"
4692
-
version = "1.0.7"
4693
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4694
-
checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a"
4695
-
dependencies = [
4696
-
"version_check",
4697
-
]
4698
-
4699
-
[[package]]
4700
-
name = "smallvec"
4701
-
version = "1.15.0"
4702
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4703
-
checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
4704
-
4705
-
[[package]]
4706
-
name = "smithay-client-toolkit"
4707
-
version = "0.19.2"
4708
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4709
-
checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
4710
-
dependencies = [
4711
-
"bitflags 2.9.0",
4712
-
"calloop",
4713
-
"calloop-wayland-source",
4714
-
"cursor-icon",
4715
-
"libc",
4716
-
"log",
4717
-
"memmap2",
4718
-
"rustix",
4719
-
"thiserror 1.0.69",
4720
-
"wayland-backend",
4721
-
"wayland-client",
4722
-
"wayland-csd-frame",
4723
-
"wayland-cursor",
4724
-
"wayland-protocols",
4725
-
"wayland-protocols-wlr",
4726
-
"wayland-scanner",
4727
-
"xkeysym",
4728
-
]
4729
-
4730
-
[[package]]
4731
-
name = "smol_str"
4732
-
version = "0.2.2"
4733
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4734
-
checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead"
4735
-
dependencies = [
4736
-
"serde",
4737
-
]
4738
-
4739
-
[[package]]
4740
-
name = "spin"
4741
-
version = "0.9.8"
4742
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4743
-
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
4744
-
dependencies = [
4745
-
"portable-atomic",
4746
-
]
4747
-
4748
-
[[package]]
4749
-
name = "spirv"
4750
-
version = "0.3.0+sdk-1.3.268.0"
4751
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4752
-
checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
4753
-
dependencies = [
4754
-
"bitflags 2.9.0",
4755
-
]
4756
-
4757
-
[[package]]
4758
-
name = "stable_deref_trait"
4759
-
version = "1.2.0"
4760
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4761
-
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
4762
-
4763
-
[[package]]
4764
-
name = "stackfuture"
4765
-
version = "0.3.0"
4766
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4767
-
checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2"
4768
-
4769
-
[[package]]
4770
-
name = "static_assertions"
4771
-
version = "1.1.0"
4772
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4773
-
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
4774
-
4775
-
[[package]]
4776
-
name = "strict-num"
4777
-
version = "0.1.1"
4778
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4779
-
checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
4780
-
4781
-
[[package]]
4782
-
name = "strum"
4783
-
version = "0.26.3"
4784
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4785
-
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
4786
-
dependencies = [
4787
-
"strum_macros",
4788
-
]
4789
-
4790
-
[[package]]
4791
-
name = "strum_macros"
4792
-
version = "0.26.4"
4793
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4794
-
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
4795
-
dependencies = [
4796
-
"heck",
4797
-
"proc-macro2",
4798
-
"quote",
4799
-
"rustversion",
4800
-
"syn 2.0.101",
4801
-
]
4802
-
4803
-
[[package]]
4804
-
name = "svg_fmt"
4805
-
version = "0.4.5"
4806
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4807
-
checksum = "0193cc4331cfd2f3d2011ef287590868599a2f33c3e69bc22c1a3d3acf9e02fb"
4808
-
4809
-
[[package]]
4810
-
name = "swash"
4811
-
version = "0.2.4"
4812
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4813
-
checksum = "5dce3f0af95643c855cdc449fbaa17d8c2cd08e0b00a49a6babcbe6e71667f3d"
4814
-
dependencies = [
4815
-
"skrifa",
4816
-
"yazi",
4817
-
"zeno",
4818
-
]
4819
-
4820
-
[[package]]
4821
-
name = "syn"
4822
-
version = "1.0.109"
4823
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4824
-
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
4825
-
dependencies = [
4826
-
"proc-macro2",
4827
-
"quote",
4828
-
"unicode-ident",
4829
-
]
4830
-
4831
-
[[package]]
4832
-
name = "syn"
4833
-
version = "2.0.101"
4834
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4835
-
checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf"
4836
-
dependencies = [
4837
-
"proc-macro2",
4838
-
"quote",
4839
-
"unicode-ident",
4840
-
]
4841
-
4842
-
[[package]]
4843
-
name = "synstructure"
4844
-
version = "0.13.2"
4845
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4846
-
checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
4847
-
dependencies = [
4848
-
"proc-macro2",
4849
-
"quote",
4850
-
"syn 2.0.101",
4851
-
]
4852
-
4853
-
[[package]]
4854
-
name = "sys-locale"
4855
-
version = "0.3.2"
4856
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4857
-
checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4"
4858
-
dependencies = [
4859
-
"libc",
4860
-
]
4861
-
4862
-
[[package]]
4863
-
name = "sysinfo"
4864
-
version = "0.34.2"
4865
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4866
-
checksum = "a4b93974b3d3aeaa036504b8eefd4c039dced109171c1ae973f1dc63b2c7e4b2"
4867
-
dependencies = [
4868
-
"libc",
4869
-
"memchr",
4870
-
"ntapi",
4871
-
"objc2-core-foundation",
4872
-
"windows 0.57.0",
4873
-
]
4874
-
4875
-
[[package]]
4876
-
name = "system-deps"
4877
-
version = "6.2.2"
4878
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4879
-
checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
4880
-
dependencies = [
4881
-
"cfg-expr",
4882
-
"heck",
4883
-
"pkg-config",
4884
-
"toml",
4885
-
"version-compare",
4886
-
]
4887
-
4888
-
[[package]]
4889
-
name = "taffy"
4890
-
version = "0.7.7"
4891
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4892
-
checksum = "ab4f4d046dd956a47a7e1a2947083d7ac3e6aa3cfaaead36173ceaa5ab11878c"
4893
-
dependencies = [
4894
-
"arrayvec",
4895
-
"grid",
4896
-
"serde",
4897
-
"slotmap",
4898
-
]
4899
-
4900
-
[[package]]
4901
-
name = "target-lexicon"
4902
-
version = "0.12.16"
4903
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4904
-
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
4905
-
4906
-
[[package]]
4907
-
name = "termcolor"
4908
-
version = "1.4.1"
4909
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4910
-
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
4911
-
dependencies = [
4912
-
"winapi-util",
4913
-
]
4914
-
4915
-
[[package]]
4916
-
name = "thiserror"
4917
-
version = "1.0.69"
4918
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4919
-
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
4920
-
dependencies = [
4921
-
"thiserror-impl 1.0.69",
4922
-
]
4923
-
4924
-
[[package]]
4925
-
name = "thiserror"
4926
-
version = "2.0.12"
4927
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4928
-
checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708"
4929
-
dependencies = [
4930
-
"thiserror-impl 2.0.12",
4931
-
]
4932
-
4933
-
[[package]]
4934
-
name = "thiserror-impl"
4935
-
version = "1.0.69"
4936
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4937
-
checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
4938
-
dependencies = [
4939
-
"proc-macro2",
4940
-
"quote",
4941
-
"syn 2.0.101",
4942
-
]
4943
-
4944
-
[[package]]
4945
-
name = "thiserror-impl"
4946
-
version = "2.0.12"
4947
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4948
-
checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d"
4949
-
dependencies = [
4950
-
"proc-macro2",
4951
-
"quote",
4952
-
"syn 2.0.101",
4953
-
]
4954
-
4955
-
[[package]]
4956
-
name = "thread_local"
4957
-
version = "1.1.8"
4958
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4959
-
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
4960
-
dependencies = [
4961
-
"cfg-if",
4962
-
"once_cell",
4963
-
]
4964
-
4965
-
[[package]]
4966
-
name = "tiff"
4967
-
version = "0.9.1"
4968
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4969
-
checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
4970
-
dependencies = [
4971
-
"flate2",
4972
-
"jpeg-decoder",
4973
-
"weezl",
4974
-
]
4975
-
4976
-
[[package]]
4977
-
name = "tiny-skia"
4978
-
version = "0.11.4"
4979
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4980
-
checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab"
4981
-
dependencies = [
4982
-
"arrayref",
4983
-
"arrayvec",
4984
-
"bytemuck",
4985
-
"cfg-if",
4986
-
"log",
4987
-
"tiny-skia-path",
4988
-
]
4989
-
4990
-
[[package]]
4991
-
name = "tiny-skia-path"
4992
-
version = "0.11.4"
4993
-
source = "registry+https://github.com/rust-lang/crates.io-index"
4994
-
checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93"
4995
-
dependencies = [
4996
-
"arrayref",
4997
-
"bytemuck",
4998
-
"strict-num",
4999
-
]
5000
-
5001
-
[[package]]
5002
-
name = "tinystr"
5003
-
version = "0.8.1"
5004
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5005
-
checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
5006
-
dependencies = [
5007
-
"displaydoc",
5008
-
"zerovec",
5009
-
]
5010
-
5011
-
[[package]]
5012
-
name = "tinyvec"
5013
-
version = "1.9.0"
5014
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5015
-
checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71"
5016
-
dependencies = [
5017
-
"tinyvec_macros",
5018
-
]
5019
-
5020
-
[[package]]
5021
-
name = "tinyvec_macros"
5022
-
version = "0.1.1"
5023
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5024
-
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
5025
-
5026
-
[[package]]
5027
-
name = "toml"
5028
-
version = "0.8.22"
5029
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5030
-
checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae"
5031
-
dependencies = [
5032
-
"serde",
5033
-
"serde_spanned",
5034
-
"toml_datetime",
5035
-
"toml_edit",
5036
-
]
5037
-
5038
-
[[package]]
5039
-
name = "toml_datetime"
5040
-
version = "0.6.9"
5041
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5042
-
checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3"
5043
-
dependencies = [
5044
-
"serde",
5045
-
]
5046
-
5047
-
[[package]]
5048
-
name = "toml_edit"
5049
-
version = "0.22.26"
5050
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5051
-
checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e"
5052
-
dependencies = [
5053
-
"indexmap",
5054
-
"serde",
5055
-
"serde_spanned",
5056
-
"toml_datetime",
5057
-
"winnow",
5058
-
]
5059
-
5060
-
[[package]]
5061
-
name = "tracing"
5062
-
version = "0.1.41"
5063
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5064
-
checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
5065
-
dependencies = [
5066
-
"pin-project-lite",
5067
-
"tracing-attributes",
5068
-
"tracing-core",
5069
-
]
5070
-
5071
-
[[package]]
5072
-
name = "tracing-attributes"
5073
-
version = "0.1.28"
5074
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5075
-
checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
5076
-
dependencies = [
5077
-
"proc-macro2",
5078
-
"quote",
5079
-
"syn 2.0.101",
5080
-
]
5081
-
5082
-
[[package]]
5083
-
name = "tracing-core"
5084
-
version = "0.1.33"
5085
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5086
-
checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
5087
-
dependencies = [
5088
-
"once_cell",
5089
-
"valuable",
5090
-
]
5091
-
5092
-
[[package]]
5093
-
name = "tracing-log"
5094
-
version = "0.2.0"
5095
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5096
-
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
5097
-
dependencies = [
5098
-
"log",
5099
-
"once_cell",
5100
-
"tracing-core",
5101
-
]
5102
-
5103
-
[[package]]
5104
-
name = "tracing-oslog"
5105
-
version = "0.2.0"
5106
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5107
-
checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e"
5108
-
dependencies = [
5109
-
"bindgen",
5110
-
"cc",
5111
-
"cfg-if",
5112
-
"once_cell",
5113
-
"parking_lot",
5114
-
"tracing-core",
5115
-
"tracing-subscriber",
5116
-
]
5117
-
5118
-
[[package]]
5119
-
name = "tracing-subscriber"
5120
-
version = "0.3.19"
5121
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5122
-
checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
5123
-
dependencies = [
5124
-
"matchers",
5125
-
"nu-ansi-term",
5126
-
"once_cell",
5127
-
"regex",
5128
-
"sharded-slab",
5129
-
"smallvec",
5130
-
"thread_local",
5131
-
"tracing",
5132
-
"tracing-core",
5133
-
"tracing-log",
5134
-
]
5135
-
5136
-
[[package]]
5137
-
name = "tracing-wasm"
5138
-
version = "0.2.1"
5139
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5140
-
checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
5141
-
dependencies = [
5142
-
"tracing",
5143
-
"tracing-subscriber",
5144
-
"wasm-bindgen",
5145
-
]
5146
-
5147
-
[[package]]
5148
-
name = "ttf-parser"
5149
-
version = "0.20.0"
5150
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5151
-
checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
5152
-
5153
-
[[package]]
5154
-
name = "ttf-parser"
5155
-
version = "0.21.1"
5156
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5157
-
checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8"
5158
-
5159
-
[[package]]
5160
-
name = "ttf-parser"
5161
-
version = "0.25.1"
5162
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5163
-
checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31"
5164
-
5165
-
[[package]]
5166
-
name = "twox-hash"
5167
-
version = "2.1.0"
5168
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5169
-
checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908"
5170
-
5171
-
[[package]]
5172
-
name = "typeid"
5173
-
version = "1.0.3"
5174
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5175
-
checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c"
5176
-
5177
-
[[package]]
5178
-
name = "typenum"
5179
-
version = "1.18.0"
5180
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5181
-
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
5182
-
5183
-
[[package]]
5184
-
name = "unicode-bidi"
5185
-
version = "0.3.18"
5186
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5187
-
checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5"
5188
-
5189
-
[[package]]
5190
-
name = "unicode-bidi-mirroring"
5191
-
version = "0.2.0"
5192
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5193
-
checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86"
5194
-
5195
-
[[package]]
5196
-
name = "unicode-ccc"
5197
-
version = "0.2.0"
5198
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5199
-
checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656"
5200
-
5201
-
[[package]]
5202
-
name = "unicode-ident"
5203
-
version = "1.0.18"
5204
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5205
-
checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512"
5206
-
5207
-
[[package]]
5208
-
name = "unicode-linebreak"
5209
-
version = "0.1.5"
5210
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5211
-
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
5212
-
5213
-
[[package]]
5214
-
name = "unicode-properties"
5215
-
version = "0.1.3"
5216
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5217
-
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
5218
-
5219
-
[[package]]
5220
-
name = "unicode-script"
5221
-
version = "0.5.7"
5222
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5223
-
checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f"
5224
-
5225
-
[[package]]
5226
-
name = "unicode-segmentation"
5227
-
version = "1.12.0"
5228
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5229
-
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
5230
-
5231
-
[[package]]
5232
-
name = "unicode-width"
5233
-
version = "0.1.14"
5234
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5235
-
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
5236
-
5237
-
[[package]]
5238
-
name = "unicode-xid"
5239
-
version = "0.2.6"
5240
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5241
-
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
5242
-
5243
-
[[package]]
5244
-
name = "url"
5245
-
version = "2.5.4"
5246
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5247
-
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
5248
-
dependencies = [
5249
-
"form_urlencoded",
5250
-
"idna",
5251
-
"percent-encoding",
5252
-
]
5253
-
5254
-
[[package]]
5255
-
name = "utf8_iter"
5256
-
version = "1.0.4"
5257
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5258
-
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
5259
-
5260
-
[[package]]
5261
-
name = "uuid"
5262
-
version = "1.16.0"
5263
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5264
-
checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9"
5265
-
dependencies = [
5266
-
"getrandom 0.3.3",
5267
-
"js-sys",
5268
-
"serde",
5269
-
"wasm-bindgen",
5270
-
]
5271
-
5272
-
[[package]]
5273
-
name = "v_frame"
5274
-
version = "0.3.8"
5275
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5276
-
checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b"
5277
-
dependencies = [
5278
-
"aligned-vec",
5279
-
"num-traits",
5280
-
"wasm-bindgen",
5281
-
]
5282
-
5283
-
[[package]]
5284
-
name = "valuable"
5285
-
version = "0.1.1"
5286
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5287
-
checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
5288
-
5289
-
[[package]]
5290
-
name = "variadics_please"
5291
-
version = "1.1.0"
5292
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5293
-
checksum = "41b6d82be61465f97d42bd1d15bf20f3b0a3a0905018f38f9d6f6962055b0b5c"
5294
-
dependencies = [
5295
-
"proc-macro2",
5296
-
"quote",
5297
-
"syn 2.0.101",
5298
-
]
5299
-
5300
-
[[package]]
5301
-
name = "vec_map"
5302
-
version = "0.8.2"
5303
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5304
-
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
5305
-
5306
-
[[package]]
5307
-
name = "vee"
5308
-
version = "0.1.0"
5309
-
dependencies = [
5310
-
"bevy",
5311
-
"bevy_egui",
5312
-
"binrw",
5313
-
"flate2",
5314
-
"glam 0.30.3",
5315
-
"half",
5316
-
"mesh-tools",
5317
-
]
5318
-
5319
-
[[package]]
5320
-
name = "version-compare"
5321
-
version = "0.2.0"
5322
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5323
-
checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
5324
-
5325
-
[[package]]
5326
-
name = "version_check"
5327
-
version = "0.9.5"
5328
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5329
-
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
5330
-
5331
-
[[package]]
5332
-
name = "walkdir"
5333
-
version = "2.5.0"
5334
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5335
-
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
5336
-
dependencies = [
5337
-
"same-file",
5338
-
"winapi-util",
5339
-
]
5340
-
5341
-
[[package]]
5342
-
name = "wasi"
5343
-
version = "0.11.0+wasi-snapshot-preview1"
5344
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5345
-
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
5346
-
5347
-
[[package]]
5348
-
name = "wasi"
5349
-
version = "0.14.2+wasi-0.2.4"
5350
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5351
-
checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
5352
-
dependencies = [
5353
-
"wit-bindgen-rt",
5354
-
]
5355
-
5356
-
[[package]]
5357
-
name = "wasm-bindgen"
5358
-
version = "0.2.100"
5359
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5360
-
checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5"
5361
-
dependencies = [
5362
-
"cfg-if",
5363
-
"once_cell",
5364
-
"rustversion",
5365
-
"wasm-bindgen-macro",
5366
-
]
5367
-
5368
-
[[package]]
5369
-
name = "wasm-bindgen-backend"
5370
-
version = "0.2.100"
5371
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5372
-
checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6"
5373
-
dependencies = [
5374
-
"bumpalo",
5375
-
"log",
5376
-
"proc-macro2",
5377
-
"quote",
5378
-
"syn 2.0.101",
5379
-
"wasm-bindgen-shared",
5380
-
]
5381
-
5382
-
[[package]]
5383
-
name = "wasm-bindgen-futures"
5384
-
version = "0.4.50"
5385
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5386
-
checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61"
5387
-
dependencies = [
5388
-
"cfg-if",
5389
-
"js-sys",
5390
-
"once_cell",
5391
-
"wasm-bindgen",
5392
-
"web-sys",
5393
-
]
5394
-
5395
-
[[package]]
5396
-
name = "wasm-bindgen-macro"
5397
-
version = "0.2.100"
5398
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5399
-
checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407"
5400
-
dependencies = [
5401
-
"quote",
5402
-
"wasm-bindgen-macro-support",
5403
-
]
5404
-
5405
-
[[package]]
5406
-
name = "wasm-bindgen-macro-support"
5407
-
version = "0.2.100"
5408
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5409
-
checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
5410
-
dependencies = [
5411
-
"proc-macro2",
5412
-
"quote",
5413
-
"syn 2.0.101",
5414
-
"wasm-bindgen-backend",
5415
-
"wasm-bindgen-shared",
5416
-
]
5417
-
5418
-
[[package]]
5419
-
name = "wasm-bindgen-shared"
5420
-
version = "0.2.100"
5421
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5422
-
checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d"
5423
-
dependencies = [
5424
-
"unicode-ident",
5425
-
]
5426
-
5427
-
[[package]]
5428
-
name = "wayland-backend"
5429
-
version = "0.3.10"
5430
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5431
-
checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121"
5432
-
dependencies = [
5433
-
"cc",
5434
-
"downcast-rs 1.2.1",
5435
-
"rustix",
5436
-
"scoped-tls",
5437
-
"smallvec",
5438
-
"wayland-sys",
5439
-
]
5440
-
5441
-
[[package]]
5442
-
name = "wayland-client"
5443
-
version = "0.31.10"
5444
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5445
-
checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61"
5446
-
dependencies = [
5447
-
"bitflags 2.9.0",
5448
-
"rustix",
5449
-
"wayland-backend",
5450
-
"wayland-scanner",
5451
-
]
5452
-
5453
-
[[package]]
5454
-
name = "wayland-csd-frame"
5455
-
version = "0.3.0"
5456
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5457
-
checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
5458
-
dependencies = [
5459
-
"bitflags 2.9.0",
5460
-
"cursor-icon",
5461
-
"wayland-backend",
5462
-
]
5463
-
5464
-
[[package]]
5465
-
name = "wayland-cursor"
5466
-
version = "0.31.10"
5467
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5468
-
checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182"
5469
-
dependencies = [
5470
-
"rustix",
5471
-
"wayland-client",
5472
-
"xcursor",
5473
-
]
5474
-
5475
-
[[package]]
5476
-
name = "wayland-protocols"
5477
-
version = "0.32.8"
5478
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5479
-
checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a"
5480
-
dependencies = [
5481
-
"bitflags 2.9.0",
5482
-
"wayland-backend",
5483
-
"wayland-client",
5484
-
"wayland-scanner",
5485
-
]
5486
-
5487
-
[[package]]
5488
-
name = "wayland-protocols-plasma"
5489
-
version = "0.3.8"
5490
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5491
-
checksum = "4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175"
5492
-
dependencies = [
5493
-
"bitflags 2.9.0",
5494
-
"wayland-backend",
5495
-
"wayland-client",
5496
-
"wayland-protocols",
5497
-
"wayland-scanner",
5498
-
]
5499
-
5500
-
[[package]]
5501
-
name = "wayland-protocols-wlr"
5502
-
version = "0.3.8"
5503
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5504
-
checksum = "1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf"
5505
-
dependencies = [
5506
-
"bitflags 2.9.0",
5507
-
"wayland-backend",
5508
-
"wayland-client",
5509
-
"wayland-protocols",
5510
-
"wayland-scanner",
5511
-
]
5512
-
5513
-
[[package]]
5514
-
name = "wayland-scanner"
5515
-
version = "0.31.6"
5516
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5517
-
checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484"
5518
-
dependencies = [
5519
-
"proc-macro2",
5520
-
"quick-xml",
5521
-
"quote",
5522
-
]
5523
-
5524
-
[[package]]
5525
-
name = "wayland-sys"
5526
-
version = "0.31.6"
5527
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5528
-
checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615"
5529
-
dependencies = [
5530
-
"dlib",
5531
-
"log",
5532
-
"once_cell",
5533
-
"pkg-config",
5534
-
]
5535
-
5536
-
[[package]]
5537
-
name = "web-sys"
5538
-
version = "0.3.77"
5539
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5540
-
checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2"
5541
-
dependencies = [
5542
-
"js-sys",
5543
-
"wasm-bindgen",
5544
-
]
5545
-
5546
-
[[package]]
5547
-
name = "web-time"
5548
-
version = "1.1.0"
5549
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5550
-
checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
5551
-
dependencies = [
5552
-
"js-sys",
5553
-
"wasm-bindgen",
5554
-
]
5555
-
5556
-
[[package]]
5557
-
name = "webbrowser"
5558
-
version = "1.0.4"
5559
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5560
-
checksum = "d5df295f8451142f1856b1bd86a606dfe9587d439bc036e319c827700dbd555e"
5561
-
dependencies = [
5562
-
"core-foundation 0.10.0",
5563
-
"home",
5564
-
"jni",
5565
-
"log",
5566
-
"ndk-context",
5567
-
"objc2 0.6.1",
5568
-
"objc2-foundation 0.3.1",
5569
-
"url",
5570
-
"web-sys",
5571
-
]
5572
-
5573
-
[[package]]
5574
-
name = "weezl"
5575
-
version = "0.1.8"
5576
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5577
-
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
5578
-
5579
-
[[package]]
5580
-
name = "wgpu"
5581
-
version = "24.0.3"
5582
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5583
-
checksum = "35904fb00ba2d2e0a4d002fcbbb6e1b89b574d272a50e5fc95f6e81cf281c245"
5584
-
dependencies = [
5585
-
"arrayvec",
5586
-
"bitflags 2.9.0",
5587
-
"cfg_aliases",
5588
-
"document-features",
5589
-
"js-sys",
5590
-
"log",
5591
-
"naga",
5592
-
"parking_lot",
5593
-
"profiling",
5594
-
"raw-window-handle",
5595
-
"smallvec",
5596
-
"static_assertions",
5597
-
"wasm-bindgen",
5598
-
"wasm-bindgen-futures",
5599
-
"web-sys",
5600
-
"wgpu-core",
5601
-
"wgpu-hal",
5602
-
"wgpu-types",
5603
-
]
5604
-
5605
-
[[package]]
5606
-
name = "wgpu-core"
5607
-
version = "24.0.2"
5608
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5609
-
checksum = "671c25545d479b47d3f0a8e373aceb2060b67c6eb841b24ac8c32348151c7a0c"
5610
-
dependencies = [
5611
-
"arrayvec",
5612
-
"bit-vec 0.8.0",
5613
-
"bitflags 2.9.0",
5614
-
"cfg_aliases",
5615
-
"document-features",
5616
-
"indexmap",
5617
-
"log",
5618
-
"naga",
5619
-
"once_cell",
5620
-
"parking_lot",
5621
-
"profiling",
5622
-
"raw-window-handle",
5623
-
"rustc-hash",
5624
-
"smallvec",
5625
-
"thiserror 2.0.12",
5626
-
"wgpu-hal",
5627
-
"wgpu-types",
5628
-
]
5629
-
5630
-
[[package]]
5631
-
name = "wgpu-hal"
5632
-
version = "24.0.4"
5633
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5634
-
checksum = "f112f464674ca69f3533248508ee30cb84c67cf06c25ff6800685f5e0294e259"
5635
-
dependencies = [
5636
-
"android_system_properties",
5637
-
"arrayvec",
5638
-
"ash",
5639
-
"bit-set 0.8.0",
5640
-
"bitflags 2.9.0",
5641
-
"block",
5642
-
"bytemuck",
5643
-
"cfg_aliases",
5644
-
"core-graphics-types",
5645
-
"glow",
5646
-
"glutin_wgl_sys",
5647
-
"gpu-alloc",
5648
-
"gpu-allocator",
5649
-
"gpu-descriptor",
5650
-
"js-sys",
5651
-
"khronos-egl",
5652
-
"libc",
5653
-
"libloading",
5654
-
"log",
5655
-
"metal",
5656
-
"naga",
5657
-
"ndk-sys 0.5.0+25.2.9519653",
5658
-
"objc",
5659
-
"once_cell",
5660
-
"ordered-float",
5661
-
"parking_lot",
5662
-
"profiling",
5663
-
"range-alloc",
5664
-
"raw-window-handle",
5665
-
"renderdoc-sys",
5666
-
"rustc-hash",
5667
-
"smallvec",
5668
-
"thiserror 2.0.12",
5669
-
"wasm-bindgen",
5670
-
"web-sys",
5671
-
"wgpu-types",
5672
-
"windows 0.58.0",
5673
-
"windows-core 0.58.0",
5674
-
]
5675
-
5676
-
[[package]]
5677
-
name = "wgpu-types"
5678
-
version = "24.0.0"
5679
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5680
-
checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c"
5681
-
dependencies = [
5682
-
"bitflags 2.9.0",
5683
-
"js-sys",
5684
-
"log",
5685
-
"serde",
5686
-
"web-sys",
5687
-
]
5688
-
5689
-
[[package]]
5690
-
name = "wide"
5691
-
version = "0.7.32"
5692
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5693
-
checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22"
5694
-
dependencies = [
5695
-
"bytemuck",
5696
-
"safe_arch",
5697
-
]
5698
-
5699
-
[[package]]
5700
-
name = "winapi"
5701
-
version = "0.3.9"
5702
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5703
-
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
5704
-
dependencies = [
5705
-
"winapi-i686-pc-windows-gnu",
5706
-
"winapi-x86_64-pc-windows-gnu",
5707
-
]
5708
-
5709
-
[[package]]
5710
-
name = "winapi-i686-pc-windows-gnu"
5711
-
version = "0.4.0"
5712
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5713
-
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
5714
-
5715
-
[[package]]
5716
-
name = "winapi-util"
5717
-
version = "0.1.9"
5718
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5719
-
checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
5720
-
dependencies = [
5721
-
"windows-sys 0.59.0",
5722
-
]
5723
-
5724
-
[[package]]
5725
-
name = "winapi-x86_64-pc-windows-gnu"
5726
-
version = "0.4.0"
5727
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5728
-
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
5729
-
5730
-
[[package]]
5731
-
name = "windows"
5732
-
version = "0.54.0"
5733
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5734
-
checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
5735
-
dependencies = [
5736
-
"windows-core 0.54.0",
5737
-
"windows-targets 0.52.6",
5738
-
]
5739
-
5740
-
[[package]]
5741
-
name = "windows"
5742
-
version = "0.57.0"
5743
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5744
-
checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143"
5745
-
dependencies = [
5746
-
"windows-core 0.57.0",
5747
-
"windows-targets 0.52.6",
5748
-
]
5749
-
5750
-
[[package]]
5751
-
name = "windows"
5752
-
version = "0.58.0"
5753
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5754
-
checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
5755
-
dependencies = [
5756
-
"windows-core 0.58.0",
5757
-
"windows-targets 0.52.6",
5758
-
]
5759
-
5760
-
[[package]]
5761
-
name = "windows"
5762
-
version = "0.61.1"
5763
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5764
-
checksum = "c5ee8f3d025738cb02bad7868bbb5f8a6327501e870bf51f1b455b0a2454a419"
5765
-
dependencies = [
5766
-
"windows-collections",
5767
-
"windows-core 0.61.0",
5768
-
"windows-future",
5769
-
"windows-link",
5770
-
"windows-numerics",
5771
-
]
5772
-
5773
-
[[package]]
5774
-
name = "windows-collections"
5775
-
version = "0.2.0"
5776
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5777
-
checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8"
5778
-
dependencies = [
5779
-
"windows-core 0.61.0",
5780
-
]
5781
-
5782
-
[[package]]
5783
-
name = "windows-core"
5784
-
version = "0.54.0"
5785
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5786
-
checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
5787
-
dependencies = [
5788
-
"windows-result 0.1.2",
5789
-
"windows-targets 0.52.6",
5790
-
]
5791
-
5792
-
[[package]]
5793
-
name = "windows-core"
5794
-
version = "0.57.0"
5795
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5796
-
checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d"
5797
-
dependencies = [
5798
-
"windows-implement 0.57.0",
5799
-
"windows-interface 0.57.0",
5800
-
"windows-result 0.1.2",
5801
-
"windows-targets 0.52.6",
5802
-
]
5803
-
5804
-
[[package]]
5805
-
name = "windows-core"
5806
-
version = "0.58.0"
5807
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5808
-
checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
5809
-
dependencies = [
5810
-
"windows-implement 0.58.0",
5811
-
"windows-interface 0.58.0",
5812
-
"windows-result 0.2.0",
5813
-
"windows-strings 0.1.0",
5814
-
"windows-targets 0.52.6",
5815
-
]
5816
-
5817
-
[[package]]
5818
-
name = "windows-core"
5819
-
version = "0.61.0"
5820
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5821
-
checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980"
5822
-
dependencies = [
5823
-
"windows-implement 0.60.0",
5824
-
"windows-interface 0.59.1",
5825
-
"windows-link",
5826
-
"windows-result 0.3.2",
5827
-
"windows-strings 0.4.0",
5828
-
]
5829
-
5830
-
[[package]]
5831
-
name = "windows-future"
5832
-
version = "0.2.0"
5833
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5834
-
checksum = "7a1d6bbefcb7b60acd19828e1bc965da6fcf18a7e39490c5f8be71e54a19ba32"
5835
-
dependencies = [
5836
-
"windows-core 0.61.0",
5837
-
"windows-link",
5838
-
]
5839
-
5840
-
[[package]]
5841
-
name = "windows-implement"
5842
-
version = "0.57.0"
5843
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5844
-
checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7"
5845
-
dependencies = [
5846
-
"proc-macro2",
5847
-
"quote",
5848
-
"syn 2.0.101",
5849
-
]
5850
-
5851
-
[[package]]
5852
-
name = "windows-implement"
5853
-
version = "0.58.0"
5854
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5855
-
checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
5856
-
dependencies = [
5857
-
"proc-macro2",
5858
-
"quote",
5859
-
"syn 2.0.101",
5860
-
]
5861
-
5862
-
[[package]]
5863
-
name = "windows-implement"
5864
-
version = "0.60.0"
5865
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5866
-
checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
5867
-
dependencies = [
5868
-
"proc-macro2",
5869
-
"quote",
5870
-
"syn 2.0.101",
5871
-
]
5872
-
5873
-
[[package]]
5874
-
name = "windows-interface"
5875
-
version = "0.57.0"
5876
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5877
-
checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7"
5878
-
dependencies = [
5879
-
"proc-macro2",
5880
-
"quote",
5881
-
"syn 2.0.101",
5882
-
]
5883
-
5884
-
[[package]]
5885
-
name = "windows-interface"
5886
-
version = "0.58.0"
5887
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5888
-
checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
5889
-
dependencies = [
5890
-
"proc-macro2",
5891
-
"quote",
5892
-
"syn 2.0.101",
5893
-
]
5894
-
5895
-
[[package]]
5896
-
name = "windows-interface"
5897
-
version = "0.59.1"
5898
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5899
-
checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
5900
-
dependencies = [
5901
-
"proc-macro2",
5902
-
"quote",
5903
-
"syn 2.0.101",
5904
-
]
5905
-
5906
-
[[package]]
5907
-
name = "windows-link"
5908
-
version = "0.1.1"
5909
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5910
-
checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
5911
-
5912
-
[[package]]
5913
-
name = "windows-numerics"
5914
-
version = "0.2.0"
5915
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5916
-
checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1"
5917
-
dependencies = [
5918
-
"windows-core 0.61.0",
5919
-
"windows-link",
5920
-
]
5921
-
5922
-
[[package]]
5923
-
name = "windows-result"
5924
-
version = "0.1.2"
5925
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5926
-
checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
5927
-
dependencies = [
5928
-
"windows-targets 0.52.6",
5929
-
]
5930
-
5931
-
[[package]]
5932
-
name = "windows-result"
5933
-
version = "0.2.0"
5934
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5935
-
checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
5936
-
dependencies = [
5937
-
"windows-targets 0.52.6",
5938
-
]
5939
-
5940
-
[[package]]
5941
-
name = "windows-result"
5942
-
version = "0.3.2"
5943
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5944
-
checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
5945
-
dependencies = [
5946
-
"windows-link",
5947
-
]
5948
-
5949
-
[[package]]
5950
-
name = "windows-strings"
5951
-
version = "0.1.0"
5952
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5953
-
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
5954
-
dependencies = [
5955
-
"windows-result 0.2.0",
5956
-
"windows-targets 0.52.6",
5957
-
]
5958
-
5959
-
[[package]]
5960
-
name = "windows-strings"
5961
-
version = "0.4.0"
5962
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5963
-
checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97"
5964
-
dependencies = [
5965
-
"windows-link",
5966
-
]
5967
-
5968
-
[[package]]
5969
-
name = "windows-sys"
5970
-
version = "0.45.0"
5971
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5972
-
checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
5973
-
dependencies = [
5974
-
"windows-targets 0.42.2",
5975
-
]
5976
-
5977
-
[[package]]
5978
-
name = "windows-sys"
5979
-
version = "0.52.0"
5980
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5981
-
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
5982
-
dependencies = [
5983
-
"windows-targets 0.52.6",
5984
-
]
5985
-
5986
-
[[package]]
5987
-
name = "windows-sys"
5988
-
version = "0.59.0"
5989
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5990
-
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
5991
-
dependencies = [
5992
-
"windows-targets 0.52.6",
5993
-
]
5994
-
5995
-
[[package]]
5996
-
name = "windows-targets"
5997
-
version = "0.42.2"
5998
-
source = "registry+https://github.com/rust-lang/crates.io-index"
5999
-
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
6000
-
dependencies = [
6001
-
"windows_aarch64_gnullvm 0.42.2",
6002
-
"windows_aarch64_msvc 0.42.2",
6003
-
"windows_i686_gnu 0.42.2",
6004
-
"windows_i686_msvc 0.42.2",
6005
-
"windows_x86_64_gnu 0.42.2",
6006
-
"windows_x86_64_gnullvm 0.42.2",
6007
-
"windows_x86_64_msvc 0.42.2",
6008
-
]
6009
-
6010
-
[[package]]
6011
-
name = "windows-targets"
6012
-
version = "0.48.5"
6013
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6014
-
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
6015
-
dependencies = [
6016
-
"windows_aarch64_gnullvm 0.48.5",
6017
-
"windows_aarch64_msvc 0.48.5",
6018
-
"windows_i686_gnu 0.48.5",
6019
-
"windows_i686_msvc 0.48.5",
6020
-
"windows_x86_64_gnu 0.48.5",
6021
-
"windows_x86_64_gnullvm 0.48.5",
6022
-
"windows_x86_64_msvc 0.48.5",
6023
-
]
6024
-
6025
-
[[package]]
6026
-
name = "windows-targets"
6027
-
version = "0.52.6"
6028
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6029
-
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
6030
-
dependencies = [
6031
-
"windows_aarch64_gnullvm 0.52.6",
6032
-
"windows_aarch64_msvc 0.52.6",
6033
-
"windows_i686_gnu 0.52.6",
6034
-
"windows_i686_gnullvm",
6035
-
"windows_i686_msvc 0.52.6",
6036
-
"windows_x86_64_gnu 0.52.6",
6037
-
"windows_x86_64_gnullvm 0.52.6",
6038
-
"windows_x86_64_msvc 0.52.6",
6039
-
]
6040
-
6041
-
[[package]]
6042
-
name = "windows_aarch64_gnullvm"
6043
-
version = "0.42.2"
6044
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6045
-
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
6046
-
6047
-
[[package]]
6048
-
name = "windows_aarch64_gnullvm"
6049
-
version = "0.48.5"
6050
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6051
-
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
6052
-
6053
-
[[package]]
6054
-
name = "windows_aarch64_gnullvm"
6055
-
version = "0.52.6"
6056
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6057
-
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
6058
-
6059
-
[[package]]
6060
-
name = "windows_aarch64_msvc"
6061
-
version = "0.42.2"
6062
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6063
-
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
6064
-
6065
-
[[package]]
6066
-
name = "windows_aarch64_msvc"
6067
-
version = "0.48.5"
6068
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6069
-
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
6070
-
6071
-
[[package]]
6072
-
name = "windows_aarch64_msvc"
6073
-
version = "0.52.6"
6074
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6075
-
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
6076
-
6077
-
[[package]]
6078
-
name = "windows_i686_gnu"
6079
-
version = "0.42.2"
6080
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6081
-
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
6082
-
6083
-
[[package]]
6084
-
name = "windows_i686_gnu"
6085
-
version = "0.48.5"
6086
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6087
-
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
6088
-
6089
-
[[package]]
6090
-
name = "windows_i686_gnu"
6091
-
version = "0.52.6"
6092
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6093
-
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
6094
-
6095
-
[[package]]
6096
-
name = "windows_i686_gnullvm"
6097
-
version = "0.52.6"
6098
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6099
-
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
6100
-
6101
-
[[package]]
6102
-
name = "windows_i686_msvc"
6103
-
version = "0.42.2"
6104
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6105
-
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
6106
-
6107
-
[[package]]
6108
-
name = "windows_i686_msvc"
6109
-
version = "0.48.5"
6110
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6111
-
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
6112
-
6113
-
[[package]]
6114
-
name = "windows_i686_msvc"
6115
-
version = "0.52.6"
6116
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6117
-
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
6118
-
6119
-
[[package]]
6120
-
name = "windows_x86_64_gnu"
6121
-
version = "0.42.2"
6122
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6123
-
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
6124
-
6125
-
[[package]]
6126
-
name = "windows_x86_64_gnu"
6127
-
version = "0.48.5"
6128
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6129
-
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
6130
-
6131
-
[[package]]
6132
-
name = "windows_x86_64_gnu"
6133
-
version = "0.52.6"
6134
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6135
-
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
6136
-
6137
-
[[package]]
6138
-
name = "windows_x86_64_gnullvm"
6139
-
version = "0.42.2"
6140
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6141
-
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
6142
-
6143
-
[[package]]
6144
-
name = "windows_x86_64_gnullvm"
6145
-
version = "0.48.5"
6146
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6147
-
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
6148
-
6149
-
[[package]]
6150
-
name = "windows_x86_64_gnullvm"
6151
-
version = "0.52.6"
6152
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6153
-
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
6154
-
6155
-
[[package]]
6156
-
name = "windows_x86_64_msvc"
6157
-
version = "0.42.2"
6158
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6159
-
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
6160
-
6161
-
[[package]]
6162
-
name = "windows_x86_64_msvc"
6163
-
version = "0.48.5"
6164
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6165
-
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
6166
-
6167
-
[[package]]
6168
-
name = "windows_x86_64_msvc"
6169
-
version = "0.52.6"
6170
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6171
-
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
6172
-
6173
-
[[package]]
6174
-
name = "winit"
6175
-
version = "0.30.10"
6176
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6177
-
checksum = "b0d05bd8908e14618c9609471db04007e644fd9cce6529756046cfc577f9155e"
6178
-
dependencies = [
6179
-
"ahash",
6180
-
"android-activity",
6181
-
"atomic-waker",
6182
-
"bitflags 2.9.0",
6183
-
"block2",
6184
-
"bytemuck",
6185
-
"calloop",
6186
-
"cfg_aliases",
6187
-
"concurrent-queue",
6188
-
"core-foundation 0.9.4",
6189
-
"core-graphics",
6190
-
"cursor-icon",
6191
-
"dpi",
6192
-
"js-sys",
6193
-
"libc",
6194
-
"memmap2",
6195
-
"ndk 0.9.0",
6196
-
"objc2 0.5.2",
6197
-
"objc2-app-kit 0.2.2",
6198
-
"objc2-foundation 0.2.2",
6199
-
"objc2-ui-kit",
6200
-
"orbclient",
6201
-
"percent-encoding",
6202
-
"pin-project",
6203
-
"raw-window-handle",
6204
-
"redox_syscall 0.4.1",
6205
-
"rustix",
6206
-
"sctk-adwaita",
6207
-
"smithay-client-toolkit",
6208
-
"smol_str",
6209
-
"tracing",
6210
-
"unicode-segmentation",
6211
-
"wasm-bindgen",
6212
-
"wasm-bindgen-futures",
6213
-
"wayland-backend",
6214
-
"wayland-client",
6215
-
"wayland-protocols",
6216
-
"wayland-protocols-plasma",
6217
-
"web-sys",
6218
-
"web-time",
6219
-
"windows-sys 0.52.0",
6220
-
"x11-dl",
6221
-
"x11rb",
6222
-
"xkbcommon-dl",
6223
-
]
6224
-
6225
-
[[package]]
6226
-
name = "winnow"
6227
-
version = "0.7.10"
6228
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6229
-
checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
6230
-
dependencies = [
6231
-
"memchr",
6232
-
]
6233
-
6234
-
[[package]]
6235
-
name = "wit-bindgen-rt"
6236
-
version = "0.39.0"
6237
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6238
-
checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
6239
-
dependencies = [
6240
-
"bitflags 2.9.0",
6241
-
]
6242
-
6243
-
[[package]]
6244
-
name = "writeable"
6245
-
version = "0.6.1"
6246
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6247
-
checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
6248
-
6249
-
[[package]]
6250
-
name = "x11-dl"
6251
-
version = "2.21.0"
6252
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6253
-
checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f"
6254
-
dependencies = [
6255
-
"libc",
6256
-
"once_cell",
6257
-
"pkg-config",
6258
-
]
6259
-
6260
-
[[package]]
6261
-
name = "x11rb"
6262
-
version = "0.13.1"
6263
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6264
-
checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
6265
-
dependencies = [
6266
-
"as-raw-xcb-connection",
6267
-
"gethostname",
6268
-
"libc",
6269
-
"libloading",
6270
-
"once_cell",
6271
-
"rustix",
6272
-
"x11rb-protocol",
6273
-
]
6274
-
6275
-
[[package]]
6276
-
name = "x11rb-protocol"
6277
-
version = "0.13.1"
6278
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6279
-
checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
6280
-
6281
-
[[package]]
6282
-
name = "xcursor"
6283
-
version = "0.3.8"
6284
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6285
-
checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61"
6286
-
6287
-
[[package]]
6288
-
name = "xkbcommon-dl"
6289
-
version = "0.4.2"
6290
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6291
-
checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
6292
-
dependencies = [
6293
-
"bitflags 2.9.0",
6294
-
"dlib",
6295
-
"log",
6296
-
"once_cell",
6297
-
"xkeysym",
6298
-
]
6299
-
6300
-
[[package]]
6301
-
name = "xkeysym"
6302
-
version = "0.2.1"
6303
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6304
-
checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
6305
-
6306
-
[[package]]
6307
-
name = "xml-rs"
6308
-
version = "0.8.26"
6309
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6310
-
checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda"
6311
-
6312
-
[[package]]
6313
-
name = "yazi"
6314
-
version = "0.2.1"
6315
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6316
-
checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5"
6317
-
6318
-
[[package]]
6319
-
name = "yoke"
6320
-
version = "0.8.0"
6321
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6322
-
checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
6323
-
dependencies = [
6324
-
"serde",
6325
-
"stable_deref_trait",
6326
-
"yoke-derive",
6327
-
"zerofrom",
6328
-
]
6329
-
6330
-
[[package]]
6331
-
name = "yoke-derive"
6332
-
version = "0.8.0"
6333
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6334
-
checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
6335
-
dependencies = [
6336
-
"proc-macro2",
6337
-
"quote",
6338
-
"syn 2.0.101",
6339
-
"synstructure",
6340
-
]
6341
-
6342
-
[[package]]
6343
-
name = "zeno"
6344
-
version = "0.3.3"
6345
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6346
-
checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524"
6347
-
6348
-
[[package]]
6349
-
name = "zerocopy"
6350
-
version = "0.8.25"
6351
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6352
-
checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb"
6353
-
dependencies = [
6354
-
"zerocopy-derive",
6355
-
]
6356
-
6357
-
[[package]]
6358
-
name = "zerocopy-derive"
6359
-
version = "0.8.25"
6360
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6361
-
checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef"
6362
-
dependencies = [
6363
-
"proc-macro2",
6364
-
"quote",
6365
-
"syn 2.0.101",
6366
-
]
6367
-
6368
-
[[package]]
6369
-
name = "zerofrom"
6370
-
version = "0.1.6"
6371
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6372
-
checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5"
6373
-
dependencies = [
6374
-
"zerofrom-derive",
6375
-
]
6376
-
6377
-
[[package]]
6378
-
name = "zerofrom-derive"
6379
-
version = "0.1.6"
6380
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6381
-
checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
6382
-
dependencies = [
6383
-
"proc-macro2",
6384
-
"quote",
6385
-
"syn 2.0.101",
6386
-
"synstructure",
6387
-
]
6388
-
6389
-
[[package]]
6390
-
name = "zerotrie"
6391
-
version = "0.2.2"
6392
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6393
-
checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
6394
-
dependencies = [
6395
-
"displaydoc",
6396
-
"yoke",
6397
-
"zerofrom",
6398
-
]
6399
-
6400
-
[[package]]
6401
-
name = "zerovec"
6402
-
version = "0.11.2"
6403
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6404
-
checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428"
6405
-
dependencies = [
6406
-
"yoke",
6407
-
"zerofrom",
6408
-
"zerovec-derive",
6409
-
]
6410
-
6411
-
[[package]]
6412
-
name = "zerovec-derive"
6413
-
version = "0.11.1"
6414
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6415
-
checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
6416
-
dependencies = [
6417
-
"proc-macro2",
6418
-
"quote",
6419
-
"syn 2.0.101",
6420
-
]
6421
-
6422
-
[[package]]
6423
-
name = "zlib-rs"
6424
-
version = "0.5.0"
6425
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6426
-
checksum = "868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8"
6427
-
6428
-
[[package]]
6429
-
name = "zune-core"
6430
-
version = "0.4.12"
6431
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6432
-
checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
6433
-
6434
-
[[package]]
6435
-
name = "zune-inflate"
6436
-
version = "0.2.54"
6437
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6438
-
checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
6439
-
dependencies = [
6440
-
"simd-adler32",
6441
-
]
6442
-
6443
-
[[package]]
6444
-
name = "zune-jpeg"
6445
-
version = "0.4.14"
6446
-
source = "registry+https://github.com/rust-lang/crates.io-index"
6447
-
checksum = "99a5bab8d7dedf81405c4bb1f2b83ea057643d9cb28778cea9eecddeedd2e028"
6448
-
dependencies = [
6449
-
"zune-core",
6450
-
]
+2
-2
vfl/Cargo.toml
crates/vfl/Cargo.toml
+2
-2
vfl/Cargo.toml
crates/vfl/Cargo.toml
···
29
29
pollster = { version = "0.4.0", optional = true }
30
30
tegra_swizzle = { version = "0.4.0", optional = true }
31
31
texture2ddecoder = { version = "0.1.2", optional = true }
32
-
wgpu = { version = "25", optional = true }
32
+
# wgpu = { version = "25", optional = true }
33
33
futures-intrusive = { version = "0.5.0", optional = true }
34
34
35
35
# feat: gltf
···
42
42
res = ["dep:image", "dep:tegra_swizzle", "dep:flate2"]
43
43
draw = [
44
44
"res",
45
-
"dep:wgpu",
45
+
# "dep:wgpu",
46
46
"dep:futures-intrusive",
47
47
"dep:texture2ddecoder",
48
48
"dep:pollster",
vfl/src/charinfo/mod.rs
crates/vfl/src/charinfo/mod.rs
vfl/src/charinfo/mod.rs
crates/vfl/src/charinfo/mod.rs
+4
-1
vfl/src/charinfo/nx.rs
crates/vfl/src/charinfo/nx.rs
+4
-1
vfl/src/charinfo/nx.rs
crates/vfl/src/charinfo/nx.rs
···
75
75
76
76
#[test]
77
77
fn mii_deser() -> R {
78
-
let mut mii = File::open(concat!(env!("CARGO_MANIFEST_DIR"), "/../j0.charinfo"))?;
78
+
let mut mii = File::open(concat!(
79
+
env!("CARGO_WORKSPACE_DIR"),
80
+
"/resources_here/j0.charinfo"
81
+
))?;
79
82
80
83
let mii = NxCharInfo::read(&mut mii)?;
81
84
+1
-1
vfl/src/color.rs
crates/vfl/src/color.rs
+1
-1
vfl/src/color.rs
crates/vfl/src/color.rs
···
115
115
/// This function will give you color modulations for each needed texture or shape.
116
116
/// When a channel is not modulated, it will return [NaN, NaN, NaN, NaN]
117
117
/// EG: An "R" format texture does not need G&B modulation
118
-
/// Ref: https://github.com/ariankordi/ffl/blob/97eecdf3688f92c4c95cecf5d6ab3e84c0ee42c0/src/FFLiModulate.cpp
118
+
/// Ref: <https://github.com/ariankordi/ffl/blob/97eecdf3688f92c4c95cecf5d6ab3e84c0ee42c0/src/FFLiModulate.cpp>
119
119
#[allow(clippy::must_use_candidate)]
120
120
pub fn modulate(class: ColorModulated, char: &NxCharInfo) -> ModulationIntent {
121
121
use ModulationMode as M;
+18
-17
vfl/src/draw/faceline.rs
crates/vfl/src/draw/faceline.rs
+18
-17
vfl/src/draw/faceline.rs
crates/vfl/src/draw/faceline.rs
···
1
-
use super::wgpu_render::Vertex;
1
+
use super::Vertex;
2
2
3
3
pub fn trivial_quad() -> (Vec<Vertex>, Vec<u32>) {
4
4
(
···
30
30
pub fn bgr_to_rgb([b, g, r, a]: [f32; 4]) -> [f32; 4] {
31
31
[r, g, b, a]
32
32
}
33
+
33
34
#[cfg(test)]
34
35
mod tests {
35
-
use crate::charinfo;
36
-
use crate::charinfo::nx::NxCharInfo;
37
-
use crate::color::nx::modulate;
38
-
use crate::draw::faceline::{bgr_to_rgb, trivial_quad};
39
-
use crate::draw::render_2d::Rendered2dShape;
40
-
use crate::draw::render_3d::ProgramState;
41
-
use crate::draw::wgpu_render::{HeadlessRenderer, Vertex, model_view_matrix, quad, texture};
42
-
use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
43
-
use crate::res::tex::nx::{ResourceTexture, ResourceTextureFormat, TEXTURE_MID_SRGB_DAT};
44
-
use binrw::BinRead;
45
-
use glam::{uvec2, vec3};
46
-
use nalgebra::Matrix4;
47
-
use std::error::Error;
48
-
use std::{fs::File, io::BufReader};
49
-
use wgpu::CommandEncoder;
36
+
// use crate::charinfo;
37
+
// use crate::charinfo::nx::NxCharInfo;
38
+
// use crate::color::nx::modulate;
39
+
// use crate::draw::faceline::{bgr_to_rgb, trivial_quad};
40
+
// use crate::draw::render_2d::Model2d;
41
+
// use crate::draw::render_3d::ProgramState;
42
+
// use crate::draw::wgpu_render::{HeadlessRenderer, Vertex, model_view_matrix, quad, texture};
43
+
// use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
44
+
// use crate::res::tex::nx::{ResourceTexture, ResourceTextureFormat, TEXTURE_MID_SRGB_DAT};
45
+
// use binrw::BinRead;
46
+
// use glam::{uvec2, vec3};
47
+
// use nalgebra::Matrix4;
48
+
// use std::error::Error;
49
+
// use std::{fs::File, io::BufReader};
50
+
// use wgpu::CommandEncoder;
50
51
51
-
type R = Result<(), Box<dyn Error>>;
52
+
// type R = Result<(), Box<dyn Error>>;
52
53
53
54
// #[test]
54
55
// fn faceline_makeup() -> R {
+6
-10
vfl/src/draw/mask.rs
crates/vfl/src/draw/mask.rs
+6
-10
vfl/src/draw/mask.rs
crates/vfl/src/draw/mask.rs
···
80
80
}
81
81
82
82
impl MaskFaceParts {
83
-
pub fn init_glasses(
84
-
info: &NxCharInfo,
85
-
resolution: f32,
86
-
nose_translate: [f32; 3],
87
-
) -> [FacePart; 2] {
83
+
pub fn init_glasses(info: &NxCharInfo, resolution: f32) -> [FacePart; 2] {
88
84
let resolution = resolution / 64.0;
89
85
90
86
let glass_y = TEX_EYE_BASE_Y + RFL_MAGIC_Y_OFFSET * TEX_SCALE_Y * f32::from(info.glass_y);
···
226
222
227
223
#[cfg(test)]
228
224
mod tests {
229
-
use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
230
-
use binrw::BinRead;
231
-
use std::error::Error;
232
-
use std::{fs::File, io::BufReader};
225
+
// use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
226
+
// use binrw::BinRead;
227
+
// use std::error::Error;
228
+
// use std::{fs::File, io::BufReader};
233
229
234
-
type R = Result<(), Box<dyn Error>>;
230
+
// type R = Result<(), Box<dyn Error>>;
235
231
236
232
// #[test]
237
233
// fn mask_shape() -> R {
-12
vfl/src/draw/mod.rs
-12
vfl/src/draw/mod.rs
···
1
-
#[cfg(feature = "draw")]
2
-
pub mod render_2d;
3
-
#[cfg(feature = "draw")]
4
-
pub mod render_3d;
5
-
#[cfg(feature = "draw")]
6
-
pub mod wgpu_render;
7
-
8
-
pub mod faceline;
9
-
pub mod mask;
10
-
11
-
pub const TEX_SCALE_X: f32 = 0.889_614_64;
12
-
pub const TEX_SCALE_Y: f32 = 0.927_667_5;
-315
vfl/src/draw/render_2d.rs
-315
vfl/src/draw/render_2d.rs
···
1
-
use bytemuck::cast_slice;
2
-
use glam::vec3;
3
-
use image::DynamicImage;
4
-
use nalgebra::Matrix4;
5
-
use wgpu::{
6
-
CommandEncoder, PipelineCompilationOptions, TexelCopyTextureInfo, TextureView, include_wgsl,
7
-
util::DeviceExt,
8
-
};
9
-
10
-
use crate::{
11
-
color::nx::{ModulationIntent, modulate},
12
-
res::tex::nx::ResourceTextureFormat,
13
-
};
14
-
15
-
use super::{
16
-
faceline::trivial_quad,
17
-
render_3d::ProgramState,
18
-
wgpu_render::{TextureTransformUniform, Vertex},
19
-
};
20
-
21
-
type Color = [f32; 4];
22
-
23
-
const NON_REPLACEMENT: Color = [f32::NAN, f32::NAN, f32::NAN, f32::NAN];
24
-
#[derive(Debug)]
25
-
pub struct Rendered2dShape {
26
-
pub vertices: Vec<Vertex>,
27
-
pub indices: Vec<u32>,
28
-
pub tex: DynamicImage,
29
-
pub mvp_matrix: Matrix4<f32>,
30
-
pub modulation: ModulationIntent,
31
-
pub opaque: Option<Color>,
32
-
pub label: Option<String>,
33
-
}
34
-
35
-
impl Rendered2dShape {
36
-
pub fn render_texture_trivial(
37
-
rendered_texture: DynamicImage,
38
-
modulation: ModulationIntent,
39
-
opaque: Option<Color>,
40
-
st: &mut impl ProgramState,
41
-
texture_view: &TextureView,
42
-
encoder: &mut CommandEncoder,
43
-
label: Option<String>,
44
-
) {
45
-
let (vertices, indices) = trivial_quad();
46
-
47
-
let mvp_matrix = {
48
-
let scale = vec3(-2.0, -2.0, 1.0);
49
-
let scale = nalgebra::Vector3::<f32>::from(Into::<mint::Vector3<f32>>::into(scale));
50
-
51
-
nalgebra::Matrix4::new_nonuniform_scaling(&scale)
52
-
};
53
-
54
-
let rendered_2d_shape = Rendered2dShape {
55
-
vertices,
56
-
indices,
57
-
tex: rendered_texture,
58
-
mvp_matrix,
59
-
modulation,
60
-
opaque,
61
-
label,
62
-
};
63
-
64
-
rendered_2d_shape.render(st, texture_view, encoder);
65
-
}
66
-
67
-
#[allow(clippy::too_many_lines)]
68
-
pub fn render(
69
-
self,
70
-
st: &mut impl ProgramState,
71
-
texture_view: &TextureView,
72
-
encoder: &mut CommandEncoder,
73
-
) {
74
-
if let Some(ref label) = self.label {
75
-
encoder.push_debug_group(&format!("Texture {label}"));
76
-
}
77
-
78
-
let vertex_buffer = st
79
-
.device()
80
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
81
-
label: Some("Vertex Buffer"),
82
-
contents: cast_slice(&self.vertices),
83
-
usage: wgpu::BufferUsages::VERTEX,
84
-
});
85
-
86
-
let index_buffer = st
87
-
.device()
88
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
89
-
label: Some("Index Buffer"),
90
-
contents: cast_slice(&self.indices),
91
-
usage: wgpu::BufferUsages::INDEX,
92
-
});
93
-
94
-
let shape_texture_rgba = self.tex.to_rgba8();
95
-
let shape_texture_dimensions = shape_texture_rgba.dimensions();
96
-
let shape_texture_size = wgpu::Extent3d {
97
-
width: shape_texture_dimensions.0,
98
-
height: shape_texture_dimensions.1,
99
-
depth_or_array_layers: 1,
100
-
};
101
-
let shape_diffuse_texture = st.device().create_texture(&wgpu::TextureDescriptor {
102
-
size: shape_texture_size,
103
-
mip_level_count: 1,
104
-
sample_count: 1,
105
-
dimension: wgpu::TextureDimension::D2,
106
-
format: st.surface_fmt(),
107
-
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
108
-
label: Some("diffuse_texture"),
109
-
view_formats: &[st.surface_fmt()],
110
-
});
111
-
112
-
st.queue().write_texture(
113
-
TexelCopyTextureInfo {
114
-
texture: &shape_diffuse_texture,
115
-
mip_level: 0,
116
-
origin: wgpu::Origin3d::ZERO,
117
-
aspect: wgpu::TextureAspect::All,
118
-
},
119
-
&shape_texture_rgba,
120
-
wgpu::TexelCopyBufferLayout {
121
-
offset: 0,
122
-
bytes_per_row: Some(4 * shape_texture_dimensions.0),
123
-
rows_per_image: Some(shape_texture_dimensions.1),
124
-
},
125
-
shape_texture_size,
126
-
);
127
-
128
-
let shape_diffuse_texture_view =
129
-
shape_diffuse_texture.create_view(&wgpu::TextureViewDescriptor::default());
130
-
let shape_diffuse_sampler = st.device().create_sampler(&wgpu::SamplerDescriptor {
131
-
address_mode_u: wgpu::AddressMode::ClampToEdge,
132
-
address_mode_v: wgpu::AddressMode::ClampToEdge,
133
-
address_mode_w: wgpu::AddressMode::ClampToEdge,
134
-
mag_filter: wgpu::FilterMode::Linear,
135
-
min_filter: wgpu::FilterMode::Nearest,
136
-
mipmap_filter: wgpu::FilterMode::Nearest,
137
-
..Default::default()
138
-
});
139
-
140
-
let texture_bind_group_layout =
141
-
st.device()
142
-
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
143
-
entries: &[
144
-
wgpu::BindGroupLayoutEntry {
145
-
binding: 0,
146
-
visibility: wgpu::ShaderStages::FRAGMENT,
147
-
ty: wgpu::BindingType::Texture {
148
-
multisampled: false,
149
-
view_dimension: wgpu::TextureViewDimension::D2,
150
-
sample_type: wgpu::TextureSampleType::Float { filterable: true },
151
-
},
152
-
count: None,
153
-
},
154
-
wgpu::BindGroupLayoutEntry {
155
-
binding: 1,
156
-
visibility: wgpu::ShaderStages::FRAGMENT,
157
-
ty: wgpu::BindingType::Sampler(wgpu::SamplerBindingType::Filtering),
158
-
count: None,
159
-
},
160
-
],
161
-
label: Some("texture_bind_group_layout"),
162
-
});
163
-
164
-
let shape_diffuse_bind_group = st.device().create_bind_group(&wgpu::BindGroupDescriptor {
165
-
layout: &texture_bind_group_layout,
166
-
entries: &[
167
-
wgpu::BindGroupEntry {
168
-
binding: 0,
169
-
resource: wgpu::BindingResource::TextureView(&shape_diffuse_texture_view),
170
-
},
171
-
wgpu::BindGroupEntry {
172
-
binding: 1,
173
-
resource: wgpu::BindingResource::Sampler(&shape_diffuse_sampler),
174
-
},
175
-
],
176
-
label: Some("diffuse_bind_group"),
177
-
});
178
-
179
-
let mvp_matrix = self.mvp_matrix.into();
180
-
let mvp_uniform = TextureTransformUniform {
181
-
mvp_matrix,
182
-
channel_replacements_r: self.modulation.channels[0],
183
-
channel_replacements_g: self.modulation.channels[1],
184
-
channel_replacements_b: self.modulation.channels[2],
185
-
texture_type: (Into::<u8>::into(self.modulation.mode)).into(),
186
-
pad: Default::default(),
187
-
};
188
-
189
-
let mvp_buffer = st
190
-
.device()
191
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
192
-
label: Some("MvpMatrix Buffer"),
193
-
contents: cast_slice(&[mvp_uniform]),
194
-
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
195
-
});
196
-
197
-
let mvp_bind_group_layout =
198
-
st.device()
199
-
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
200
-
entries: &[wgpu::BindGroupLayoutEntry {
201
-
binding: 0,
202
-
visibility: wgpu::ShaderStages::VERTEX | wgpu::ShaderStages::FRAGMENT,
203
-
ty: wgpu::BindingType::Buffer {
204
-
ty: wgpu::BufferBindingType::Uniform,
205
-
has_dynamic_offset: false,
206
-
min_binding_size: None,
207
-
},
208
-
count: None,
209
-
}],
210
-
label: Some("mvp_bind_group_layout"),
211
-
});
212
-
213
-
let mvp_bind_group = st.device().create_bind_group(&wgpu::BindGroupDescriptor {
214
-
layout: &mvp_bind_group_layout,
215
-
entries: &[wgpu::BindGroupEntry {
216
-
binding: 0,
217
-
resource: mvp_buffer.as_entire_binding(),
218
-
}],
219
-
label: Some("mvp_bind_group"),
220
-
});
221
-
222
-
let shader_module = st
223
-
.device()
224
-
.create_shader_module(include_wgsl!("shader.wgsl"));
225
-
let render_pipeline_layout =
226
-
st.device()
227
-
.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
228
-
label: Some("Render Pipeline Layout"),
229
-
bind_group_layouts: &[&texture_bind_group_layout, &mvp_bind_group_layout],
230
-
push_constant_ranges: &[],
231
-
});
232
-
let render_pipeline = st
233
-
.device()
234
-
.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
235
-
label: Some("Render Pipeline"),
236
-
layout: Some(&render_pipeline_layout),
237
-
vertex: wgpu::VertexState {
238
-
module: &shader_module,
239
-
entry_point: Some("vs_main"),
240
-
buffers: &[Vertex::desc()],
241
-
compilation_options: PipelineCompilationOptions::default(),
242
-
},
243
-
fragment: Some(wgpu::FragmentState {
244
-
module: &shader_module,
245
-
entry_point: Some("fs_main"),
246
-
targets: &[Some(wgpu::ColorTargetState {
247
-
format: st.surface_fmt(),
248
-
blend: Some(wgpu::BlendState::ALPHA_BLENDING),
249
-
write_mask: wgpu::ColorWrites::ALL,
250
-
})],
251
-
compilation_options: PipelineCompilationOptions::default(),
252
-
}),
253
-
primitive: wgpu::PrimitiveState {
254
-
topology: wgpu::PrimitiveTopology::TriangleList,
255
-
strip_index_format: None,
256
-
front_face: wgpu::FrontFace::Ccw,
257
-
cull_mode: None,
258
-
// Setting this to anything other than Fill requires Features::NON_FILL_POLYGON_MODE
259
-
polygon_mode: wgpu::PolygonMode::Fill,
260
-
// Requires Features::DEPTH_CLIP_CONTROL
261
-
unclipped_depth: false,
262
-
// Requires Features::CONSERVATIVE_RASTERIZATION
263
-
conservative: false,
264
-
},
265
-
depth_stencil: None,
266
-
multisample: wgpu::MultisampleState {
267
-
count: 1,
268
-
mask: !0,
269
-
alpha_to_coverage_enabled: false,
270
-
},
271
-
// If the pipeline will be used with a multiview render pass, this
272
-
// indicates how many array layers the attachments will have.
273
-
multiview: None,
274
-
cache: None,
275
-
});
276
-
277
-
{
278
-
let render_pass_desc = wgpu::RenderPassDescriptor {
279
-
label: Some("Render Pass"),
280
-
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
281
-
view: texture_view,
282
-
resolve_target: None,
283
-
ops: wgpu::Operations {
284
-
load: match self.opaque {
285
-
Some([r, g, b, a]) => wgpu::LoadOp::Clear(wgpu::Color {
286
-
r: r.into(),
287
-
g: g.into(),
288
-
b: b.into(),
289
-
a: a.into(),
290
-
}),
291
-
None => wgpu::LoadOp::Load,
292
-
},
293
-
store: wgpu::StoreOp::Store,
294
-
},
295
-
})],
296
-
depth_stencil_attachment: None,
297
-
occlusion_query_set: None,
298
-
timestamp_writes: None,
299
-
};
300
-
let mut render_pass = encoder.begin_render_pass(&render_pass_desc);
301
-
302
-
render_pass.set_pipeline(&render_pipeline);
303
-
render_pass.set_bind_group(0, &shape_diffuse_bind_group, &[]);
304
-
render_pass.set_bind_group(1, &mvp_bind_group, &[]);
305
-
render_pass.set_vertex_buffer(0, vertex_buffer.slice(..));
306
-
render_pass.set_index_buffer(index_buffer.slice(..), wgpu::IndexFormat::Uint32);
307
-
308
-
render_pass.draw_indexed(0..self.indices.len().try_into().unwrap(), 0, 0..1);
309
-
}
310
-
311
-
if self.label.is_some() {
312
-
encoder.pop_debug_group();
313
-
}
314
-
}
315
-
}
-250
vfl/src/draw/render_3d.rs
-250
vfl/src/draw/render_3d.rs
···
1
-
use bytemuck::cast_slice;
2
-
use glam::{Vec3, Vec4};
3
-
use wgpu::{
4
-
BlendState, CommandEncoder, PipelineCompilationOptions, TextureView, include_wgsl,
5
-
util::DeviceExt,
6
-
};
7
-
8
-
use super::wgpu_render::{Vertex, texture};
9
-
10
-
#[repr(C)]
11
-
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
12
-
struct CharShapeUniform {
13
-
diffuse_color: [f32; 4],
14
-
position: [f32; 3],
15
-
_pad: f32,
16
-
scale: [f32; 3],
17
-
_pad2: f32,
18
-
}
19
-
20
-
pub trait ProgramState {
21
-
fn device(&self) -> wgpu::Device;
22
-
fn queue(&self) -> wgpu::Queue;
23
-
fn camera_bgl(&self) -> &wgpu::BindGroupLayout;
24
-
fn camera_bg(&self) -> &wgpu::BindGroup;
25
-
fn surface_fmt(&self) -> wgpu::TextureFormat;
26
-
fn depth_texture(&self) -> &texture::Texture;
27
-
}
28
-
29
-
#[derive(Default, Debug)]
30
-
pub struct Rendered3dShape {
31
-
pub vertices: Vec<Vertex>,
32
-
pub indices: Vec<u32>,
33
-
pub color: Vec4,
34
-
pub texture: Option<crate::draw::wgpu_render::texture::Texture>,
35
-
pub position: Vec3,
36
-
pub scale: Vec3,
37
-
}
38
-
39
-
impl Rendered3dShape {
40
-
#[allow(clippy::too_many_lines)]
41
-
pub fn render(
42
-
&mut self,
43
-
st: &mut impl ProgramState,
44
-
texture_view: &TextureView,
45
-
encoder: &mut CommandEncoder,
46
-
) {
47
-
let vertex_buffer = st
48
-
.device()
49
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
50
-
label: Some("Vertex Buffer"),
51
-
contents: cast_slice(&self.vertices),
52
-
usage: wgpu::BufferUsages::VERTEX,
53
-
});
54
-
55
-
let index_buffer = st
56
-
.device()
57
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
58
-
label: Some("Index Buffer"),
59
-
contents: cast_slice(&self.indices),
60
-
usage: wgpu::BufferUsages::INDEX,
61
-
});
62
-
63
-
let char_shape_uniform = CharShapeUniform {
64
-
diffuse_color: self.color.into(),
65
-
position: self.position.into(),
66
-
_pad: 0.0,
67
-
scale: self.scale.into(),
68
-
_pad2: 0.0,
69
-
};
70
-
let char_shape_buffer = st
71
-
.device()
72
-
.create_buffer_init(&wgpu::util::BufferInitDescriptor {
73
-
label: Some("Cs Buffer"),
74
-
contents: cast_slice(&[char_shape_uniform]),
75
-
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
76
-
});
77
-
let char_shape_bind_group_layout =
78
-
st.device()
79
-
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
80
-
entries: &[wgpu::BindGroupLayoutEntry {
81
-
binding: 0,
82
-
visibility: wgpu::ShaderStages::VERTEX | wgpu::ShaderStages::FRAGMENT,
83
-
ty: wgpu::BindingType::Buffer {
84
-
ty: wgpu::BufferBindingType::Uniform,
85
-
has_dynamic_offset: false,
86
-
min_binding_size: None,
87
-
},
88
-
count: None,
89
-
}],
90
-
label: Some("cs_group_layout"),
91
-
});
92
-
93
-
let char_shape_bind_group = st.device().create_bind_group(&wgpu::BindGroupDescriptor {
94
-
layout: &char_shape_bind_group_layout,
95
-
entries: &[wgpu::BindGroupEntry {
96
-
binding: 0,
97
-
resource: char_shape_buffer.as_entire_binding(),
98
-
}],
99
-
label: Some("cs_bind_group"),
100
-
});
101
-
102
-
let mut bind_group_layouts = vec![st.camera_bgl(), &char_shape_bind_group_layout];
103
-
104
-
let projected_texture_bind_group_layout =
105
-
st.device()
106
-
.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
107
-
entries: &[
108
-
wgpu::BindGroupLayoutEntry {
109
-
binding: 0,
110
-
visibility: wgpu::ShaderStages::FRAGMENT,
111
-
ty: wgpu::BindingType::Texture {
112
-
multisampled: false,
113
-
view_dimension: wgpu::TextureViewDimension::D2,
114
-
sample_type: wgpu::TextureSampleType::Float { filterable: true },
115
-
},
116
-
count: None,
117
-
},
118
-
wgpu::BindGroupLayoutEntry {
119
-
binding: 1,
120
-
visibility: wgpu::ShaderStages::FRAGMENT,
121
-
ty: wgpu::BindingType::Sampler(wgpu::SamplerBindingType::Filtering),
122
-
count: None,
123
-
},
124
-
],
125
-
label: Some("texture_bind_group_layout"),
126
-
});
127
-
if self.texture.is_some() {
128
-
bind_group_layouts.push(&projected_texture_bind_group_layout);
129
-
}
130
-
131
-
let shader_module = st
132
-
.device()
133
-
.create_shader_module(include_wgsl!("shader_3d.wgsl"));
134
-
135
-
// Optional projected texture
136
-
let projected_texture_bind_group = self.texture.as_ref().map(|texture| {
137
-
st.device().create_bind_group(&wgpu::BindGroupDescriptor {
138
-
layout: &projected_texture_bind_group_layout,
139
-
entries: &[
140
-
wgpu::BindGroupEntry {
141
-
binding: 0,
142
-
resource: wgpu::BindingResource::TextureView(&texture.view),
143
-
},
144
-
wgpu::BindGroupEntry {
145
-
binding: 1,
146
-
resource: wgpu::BindingResource::Sampler(&texture.sampler),
147
-
},
148
-
],
149
-
label: Some("diffuse_bind_group"),
150
-
})
151
-
});
152
-
153
-
let render_pipeline_layout =
154
-
st.device()
155
-
.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
156
-
label: Some("Render Pipeline Layout"),
157
-
bind_group_layouts: &bind_group_layouts,
158
-
push_constant_ranges: &[],
159
-
});
160
-
let render_pipeline = st
161
-
.device()
162
-
.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
163
-
label: Some("Render Pipeline"),
164
-
layout: Some(&render_pipeline_layout),
165
-
vertex: wgpu::VertexState {
166
-
module: &shader_module,
167
-
entry_point: Some("vs_main"),
168
-
buffers: &[Vertex::desc()],
169
-
compilation_options: PipelineCompilationOptions::default(),
170
-
},
171
-
fragment: Some(wgpu::FragmentState {
172
-
module: &shader_module,
173
-
entry_point: if self.texture.is_some() {
174
-
Some("fs_main")
175
-
} else {
176
-
Some("fs_color_only")
177
-
},
178
-
targets: &[Some(wgpu::ColorTargetState {
179
-
format: st.surface_fmt().add_srgb_suffix(),
180
-
blend: Some(BlendState::ALPHA_BLENDING),
181
-
write_mask: wgpu::ColorWrites::ALL,
182
-
})],
183
-
compilation_options: PipelineCompilationOptions::default(),
184
-
}),
185
-
primitive: wgpu::PrimitiveState {
186
-
topology: wgpu::PrimitiveTopology::TriangleList,
187
-
strip_index_format: None,
188
-
front_face: wgpu::FrontFace::Ccw,
189
-
cull_mode: None, // TODO toggle
190
-
// Setting this to anything other than Fill requires Features::NON_FILL_POLYGON_MODE
191
-
polygon_mode: wgpu::PolygonMode::Fill,
192
-
// Requires Features::DEPTH_CLIP_CONTROL
193
-
unclipped_depth: false,
194
-
// Requires Features::CONSERVATIVE_RASTERIZATION
195
-
conservative: false,
196
-
},
197
-
depth_stencil: Some(wgpu::DepthStencilState {
198
-
format: texture::Texture::DEPTH_FORMAT,
199
-
depth_write_enabled: true,
200
-
depth_compare: wgpu::CompareFunction::Less, // 1.
201
-
stencil: wgpu::StencilState::default(), // 2.
202
-
bias: wgpu::DepthBiasState::default(),
203
-
}),
204
-
multisample: wgpu::MultisampleState {
205
-
count: 1,
206
-
mask: !0,
207
-
alpha_to_coverage_enabled: false,
208
-
},
209
-
// If the pipeline will be used with a multiview render pass, this
210
-
// indicates how many array layers the attachments will have.
211
-
multiview: None,
212
-
cache: None,
213
-
});
214
-
215
-
// Scoped lifetime to drop the render pass
216
-
{
217
-
let render_pass_desc = wgpu::RenderPassDescriptor {
218
-
label: Some("Render Pass"),
219
-
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
220
-
view: texture_view,
221
-
resolve_target: None,
222
-
ops: wgpu::Operations {
223
-
load: wgpu::LoadOp::Load,
224
-
store: wgpu::StoreOp::Store,
225
-
},
226
-
})],
227
-
depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment {
228
-
view: &st.depth_texture().view,
229
-
depth_ops: Some(wgpu::Operations {
230
-
load: wgpu::LoadOp::Load,
231
-
store: wgpu::StoreOp::Store,
232
-
}),
233
-
stencil_ops: None,
234
-
}),
235
-
occlusion_query_set: None,
236
-
timestamp_writes: None,
237
-
};
238
-
let mut render_pass = encoder.begin_render_pass(&render_pass_desc);
239
-
240
-
render_pass.set_pipeline(&render_pipeline);
241
-
render_pass.set_bind_group(0, st.camera_bg(), &[]);
242
-
render_pass.set_bind_group(1, &char_shape_bind_group, &[]);
243
-
render_pass.set_bind_group(2, &projected_texture_bind_group, &[]);
244
-
render_pass.set_vertex_buffer(0, vertex_buffer.slice(..));
245
-
render_pass.set_index_buffer(index_buffer.slice(..), wgpu::IndexFormat::Uint32);
246
-
247
-
render_pass.draw_indexed(0..self.indices.len().try_into().unwrap(), 0, 0..1);
248
-
}
249
-
}
250
-
}
vfl/src/draw/shader.wgsl
crates/vee_wgpu/src/shader.wgsl
vfl/src/draw/shader.wgsl
crates/vee_wgpu/src/shader.wgsl
vfl/src/draw/shader_3d.wgsl
crates/vee_wgpu/src/shader_3d.wgsl
vfl/src/draw/shader_3d.wgsl
crates/vee_wgpu/src/shader_3d.wgsl
-1203
vfl/src/draw/wgpu_render.rs
-1203
vfl/src/draw/wgpu_render.rs
···
1
-
use super::TEX_SCALE_X;
2
-
use super::TEX_SCALE_Y;
3
-
use super::mask::{FacePart, ImageOrigin, MaskFaceParts};
4
-
use super::render_2d::Rendered2dShape;
5
-
use super::render_3d::ProgramState;
6
-
use super::render_3d::Rendered3dShape;
7
-
use crate::{
8
-
charinfo::nx::NxCharInfo,
9
-
color::{
10
-
cafe::{
11
-
EYE_COLOR_B, EYE_COLOR_G, EYE_COLOR_R, GLASS_COLOR_R, HAIR_COLOR, MOUTH_COLOR_B,
12
-
MOUTH_COLOR_G, MOUTH_COLOR_R,
13
-
},
14
-
nx::{ColorModulated, modulate},
15
-
},
16
-
res::shape::nx::ResourceShape,
17
-
res::tex::nx::{ResourceTexture, ResourceTextureFormat, TextureElement},
18
-
};
19
-
use binrw::BinRead;
20
-
use camera::Camera;
21
-
use camera::CameraUniform;
22
-
use glam::Vec3;
23
-
use glam::{UVec2, uvec2, vec3};
24
-
use image::{DynamicImage, RgbaImage};
25
-
use nalgebra::Matrix4;
26
-
use std::f32::consts::FRAC_PI_2;
27
-
use std::f32::consts::PI;
28
-
use std::{error::Error, fs::File, io::BufReader};
29
-
use wgpu::CommandEncoder;
30
-
use wgpu::{DeviceDescriptor, TexelCopyTextureInfo, util::DeviceExt};
31
-
32
-
pub const FACE_OUTPUT_SIZE: u16 = 512;
33
-
pub const SHADER: &str = include_str!("./shader.wgsl");
34
-
pub use bytemuck::cast_slice;
35
-
36
-
#[repr(C)]
37
-
#[derive(Copy, Clone, Debug, bytemuck::Pod, bytemuck::Zeroable)]
38
-
pub struct Vertex {
39
-
pub position: [f32; 3],
40
-
pub tex_coords: [f32; 2],
41
-
pub normal: [f32; 3],
42
-
}
43
-
44
-
impl Vertex {
45
-
const ATTRIBS: [wgpu::VertexAttribute; 3] =
46
-
wgpu::vertex_attr_array![0 => Float32x3, 1 => Float32x2, 2 => Float32x3];
47
-
48
-
pub fn desc() -> wgpu::VertexBufferLayout<'static> {
49
-
use std::mem;
50
-
wgpu::VertexBufferLayout {
51
-
array_stride: mem::size_of::<Vertex>() as wgpu::BufferAddress,
52
-
step_mode: wgpu::VertexStepMode::Vertex,
53
-
attributes: &Self::ATTRIBS,
54
-
}
55
-
}
56
-
}
57
-
58
-
#[repr(C)]
59
-
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
60
-
pub struct TextureTransformUniform {
61
-
pub mvp_matrix: [[f32; 4]; 4],
62
-
pub channel_replacements_r: [f32; 4],
63
-
pub channel_replacements_g: [f32; 4],
64
-
pub channel_replacements_b: [f32; 4],
65
-
pub texture_type: u32,
66
-
pub pad: [u32; 3],
67
-
}
68
-
69
-
const NON_REPLACEMENT: [f32; 4] = [f32::NAN, f32::NAN, f32::NAN, f32::NAN];
70
-
// #[derive(Debug)]
71
-
// #[deprecated]
72
-
// pub struct RenderShape {
73
-
// pub vertices: Vec<Vertex>,
74
-
// pub indices: Vec<u32>,
75
-
// pub tex: DynamicImage,
76
-
// pub mvp_matrix: Matrix4<f32>,
77
-
// pub texture_type: ResourceTextureFormat,
78
-
// pub channel_replacements: [[f32; 4]; 3],
79
-
// }
80
-
81
-
pub struct RenderContext {
82
-
pub size: UVec2,
83
-
pub shape: Vec<Rendered2dShape>,
84
-
}
85
-
impl RenderContext {
86
-
pub fn from_shapes(shape: Vec<Rendered2dShape>) -> RenderContext {
87
-
RenderContext {
88
-
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
89
-
shape,
90
-
}
91
-
}
92
-
}
93
-
94
-
impl RenderContext {
95
-
#[allow(clippy::too_many_lines)]
96
-
pub fn new(
97
-
char: &NxCharInfo,
98
-
res_texture: &ResourceTexture,
99
-
res_shape: &ResourceShape,
100
-
file_texture: &Vec<u8>,
101
-
) -> Result<Self, Box<dyn Error>> {
102
-
let mask = MaskFaceParts::init(char, 256.0);
103
-
104
-
let mut make_shape =
105
-
|part: FacePart, modulated: ColorModulated, tex_data: TextureElement| {
106
-
let (vertices, indices, mtx) = quad(
107
-
part.x,
108
-
part.y,
109
-
part.width,
110
-
part.height,
111
-
part.angle_deg,
112
-
part.origin,
113
-
256.0,
114
-
);
115
-
116
-
let tex = tex_data.get_image(file_texture).unwrap().unwrap();
117
-
118
-
Rendered2dShape {
119
-
vertices,
120
-
indices,
121
-
tex: image::DynamicImage::ImageRgba8(tex),
122
-
mvp_matrix: mtx,
123
-
modulation: modulate(modulated, char),
124
-
opaque: None,
125
-
label: Some(format!("{modulated:?}")),
126
-
}
127
-
};
128
-
129
-
let left_eye = make_shape(
130
-
mask.eye[0],
131
-
ColorModulated::Eye,
132
-
res_texture.eye[char.eye_type as usize],
133
-
);
134
-
let right_eye = make_shape(
135
-
mask.eye[1],
136
-
ColorModulated::Eye,
137
-
res_texture.eye[char.eye_type as usize],
138
-
);
139
-
140
-
let left_brow = make_shape(
141
-
mask.eyebrow[0],
142
-
ColorModulated::Eyebrow,
143
-
res_texture.eyebrow[char.eyebrow_type as usize],
144
-
);
145
-
let right_brow = make_shape(
146
-
mask.eyebrow[1],
147
-
ColorModulated::Eyebrow,
148
-
res_texture.eyebrow[char.eyebrow_type as usize],
149
-
);
150
-
151
-
let mouth = make_shape(
152
-
mask.mouth,
153
-
ColorModulated::Mouth,
154
-
res_texture.mouth[char.mouth_type as usize],
155
-
);
156
-
157
-
Ok(RenderContext {
158
-
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
159
-
shape: vec![left_eye, right_eye, left_brow, right_brow, mouth],
160
-
})
161
-
}
162
-
163
-
#[allow(clippy::too_many_lines)]
164
-
pub fn new_faceline(
165
-
char: &NxCharInfo,
166
-
res_texture: &ResourceTexture,
167
-
res_shape: &ResourceShape,
168
-
file_texture: &Vec<u8>,
169
-
) -> Result<Self, Box<dyn Error>> {
170
-
let mask = MaskFaceParts::init(char, 256.0);
171
-
let makeup = char.faceline_make;
172
-
173
-
let mut make_shape =
174
-
|part: FacePart, modulated: ColorModulated, tex_data: TextureElement| {
175
-
let (vertices, indices, mtx) = quad(
176
-
part.x,
177
-
part.y,
178
-
part.width,
179
-
part.height,
180
-
part.angle_deg,
181
-
part.origin,
182
-
256.0,
183
-
);
184
-
185
-
let tex = tex_data.get_image(file_texture).unwrap().unwrap();
186
-
187
-
Rendered2dShape {
188
-
vertices,
189
-
indices,
190
-
tex: image::DynamicImage::ImageRgba8(tex),
191
-
mvp_matrix: mtx,
192
-
modulation: modulate(modulated, char),
193
-
opaque: None,
194
-
label: Some(format!("{modulated:?}")),
195
-
}
196
-
};
197
-
198
-
let mouth = make_shape(
199
-
mask.mouth,
200
-
ColorModulated::Mouth,
201
-
res_texture.mouth[char.mouth_type as usize],
202
-
);
203
-
204
-
Ok(RenderContext {
205
-
size: uvec2(FACE_OUTPUT_SIZE.into(), FACE_OUTPUT_SIZE.into()),
206
-
shape: vec![mouth],
207
-
})
208
-
}
209
-
210
-
pub fn new_glasses(
211
-
char: &NxCharInfo,
212
-
res_texture: &ResourceTexture,
213
-
res_shape: &ResourceShape,
214
-
file_texture: &Vec<u8>,
215
-
) -> Result<Self, Box<dyn Error>> {
216
-
let nose_translate =
217
-
res_shape.face_line_transform[char.faceline_type as usize].nose_translate;
218
-
219
-
let glasses = dbg!(MaskFaceParts::init_glasses(char, 256.0, nose_translate));
220
-
221
-
// let mask = FaceParts::init(&char, 256.0);
222
-
// let part = mask[0];
223
-
let tex_data = res_texture.glass[char.glass_type as usize];
224
-
let mut glass_l = glasses[0];
225
-
226
-
let (vertices, indices, mtx) = quad(
227
-
glass_l.x,
228
-
glass_l.y,
229
-
glass_l.width,
230
-
glass_l.height,
231
-
glass_l.angle_deg,
232
-
glass_l.origin,
233
-
256.0,
234
-
);
235
-
236
-
let tex = tex_data.get_image(file_texture)?.unwrap();
237
-
238
-
let glass_l_render_shape = Rendered2dShape {
239
-
vertices,
240
-
indices,
241
-
tex: image::DynamicImage::ImageRgba8(tex.clone()),
242
-
mvp_matrix: mtx,
243
-
modulation: modulate(ColorModulated::Glass, &char),
244
-
opaque: None,
245
-
label: Some("Glass L".to_owned()),
246
-
};
247
-
248
-
let glass_r = glasses[1];
249
-
250
-
let (vertices, indices, mtx) = quad(
251
-
glass_r.x,
252
-
glass_r.y,
253
-
glass_r.width,
254
-
glass_r.height,
255
-
glass_r.angle_deg,
256
-
glass_r.origin,
257
-
256.0,
258
-
);
259
-
260
-
let glass_r_render_shape = Rendered2dShape {
261
-
vertices,
262
-
indices,
263
-
tex: image::DynamicImage::ImageRgba8(tex),
264
-
mvp_matrix: mtx,
265
-
modulation: modulate(ColorModulated::Glass, &char),
266
-
opaque: None,
267
-
label: Some("Glass R".to_owned()),
268
-
};
269
-
270
-
Ok(RenderContext {
271
-
size: uvec2(512, 256),
272
-
shape: vec![glass_l_render_shape, glass_r_render_shape],
273
-
})
274
-
}
275
-
}
276
-
277
-
pub fn model_view_matrix(
278
-
translation: mint::Vector3<f32>,
279
-
scale: mint::Vector3<f32>,
280
-
rot_z: f32,
281
-
) -> nalgebra::Matrix4<f32> {
282
-
let mut scale = nalgebra::Vector3::<f32>::from(scale);
283
-
let translation = nalgebra::Vector3::<f32>::from(translation);
284
-
285
-
let mut mtx = nalgebra::Matrix4::identity();
286
-
mtx.append_nonuniform_scaling_mut(&scale);
287
-
mtx *= nalgebra::Rotation3::from_euler_angles(0.0, 0.0, rot_z.to_radians()).to_homogeneous();
288
-
mtx.append_nonuniform_scaling_mut(&nalgebra::Vector3::new(TEX_SCALE_X, TEX_SCALE_Y, 1.0));
289
-
mtx.append_translation_mut(&translation);
290
-
291
-
mtx
292
-
}
293
-
294
-
fn v2(x: f32, y: f32) -> [f32; 3] {
295
-
[x, y, 0.0]
296
-
}
297
-
298
-
// https://github.com/SMGCommunity/Petari/blob/6e9ae741a99bb32e6ffbb230a88c976f539dde70/src/RVLFaceLib/RFL_MakeTex.c#L817
299
-
pub fn quad(
300
-
x: f32,
301
-
y: f32,
302
-
width: f32,
303
-
height: f32,
304
-
rot_z: f32,
305
-
origin: ImageOrigin,
306
-
resolution: f32,
307
-
) -> (Vec<Vertex>, Vec<u32>, nalgebra::Matrix4<f32>) {
308
-
// Mtx rot;
309
-
// Mtx pos;
310
-
// f32 baseX;
311
-
// s16 s0;
312
-
// s16 s1;
313
-
let base_x: f32;
314
-
let s0: f32;
315
-
let s1: f32;
316
-
317
-
let mv_mtx = model_view_matrix(
318
-
vec3(x, resolution - y, 0.0).into(),
319
-
vec3(width, height, 1.0).into(),
320
-
rot_z,
321
-
);
322
-
323
-
let p_mtx = Matrix4::new_orthographic(0.0, resolution, 0.0, resolution, -200.0, 200.0);
324
-
let mut mvp_mtx = p_mtx * mv_mtx;
325
-
326
-
*mvp_mtx.get_mut((1, 1)).unwrap() *= -1.0;
327
-
328
-
match origin {
329
-
ImageOrigin::Center => {
330
-
base_x = -0.5;
331
-
s0 = 1.0;
332
-
s1 = 0.0;
333
-
}
334
-
ImageOrigin::Right => {
335
-
base_x = -1.0;
336
-
s0 = 1.0;
337
-
s1 = 0.0;
338
-
}
339
-
ImageOrigin::Left => {
340
-
base_x = 0.0;
341
-
s0 = 0.0;
342
-
s1 = 1.0;
343
-
}
344
-
ImageOrigin::Ignore => {
345
-
base_x = 0.0;
346
-
s0 = 0.0;
347
-
s1 = 1.0;
348
-
}
349
-
}
350
-
351
-
(
352
-
vec![
353
-
Vertex {
354
-
position: v2(1.0 + base_x, -0.5),
355
-
tex_coords: [s0, 0.0],
356
-
normal: [0.0, 0.0, 0.0],
357
-
},
358
-
Vertex {
359
-
position: v2(1.0 + base_x, 0.5),
360
-
tex_coords: [s0, 1.0],
361
-
normal: [0.0, 0.0, 0.0],
362
-
},
363
-
Vertex {
364
-
position: v2(base_x, 0.5),
365
-
tex_coords: [s1, 1.0],
366
-
normal: [0.0, 0.0, 0.0],
367
-
},
368
-
Vertex {
369
-
position: v2(base_x, -0.5),
370
-
tex_coords: [s1, 0.0],
371
-
normal: [0.0, 0.0, 0.0],
372
-
},
373
-
],
374
-
vec![0, 1, 2, 0, 2, 3],
375
-
mvp_mtx,
376
-
)
377
-
}
378
-
379
-
pub struct HeadlessRenderer {
380
-
device: wgpu::Device,
381
-
queue: wgpu::Queue,
382
-
camera_bgl: wgpu::BindGroupLayout,
383
-
camera_bg: wgpu::BindGroup,
384
-
surface_fmt: wgpu::TextureFormat,
385
-
depth_texture: texture::Texture,
386
-
}
387
-
388
-
impl ProgramState for HeadlessRenderer {
389
-
fn device(&self) -> wgpu::Device {
390
-
self.device.clone()
391
-
}
392
-
393
-
fn queue(&self) -> wgpu::Queue {
394
-
self.queue.clone()
395
-
}
396
-
397
-
fn camera_bgl(&self) -> &wgpu::BindGroupLayout {
398
-
&self.camera_bgl
399
-
}
400
-
401
-
fn camera_bg(&self) -> &wgpu::BindGroup {
402
-
&self.camera_bg
403
-
}
404
-
405
-
fn surface_fmt(&self) -> wgpu::TextureFormat {
406
-
self.surface_fmt
407
-
}
408
-
409
-
fn depth_texture(&self) -> &texture::Texture {
410
-
&self.depth_texture
411
-
}
412
-
}
413
-
414
-
impl Default for HeadlessRenderer {
415
-
fn default() -> HeadlessRenderer {
416
-
HeadlessRenderer::new()
417
-
}
418
-
}
419
-
impl HeadlessRenderer {
420
-
pub fn new() -> HeadlessRenderer {
421
-
pollster::block_on(HeadlessRenderer::async_new())
422
-
}
423
-
async fn async_new() -> HeadlessRenderer {
424
-
const SIZE: UVec2 = uvec2(512, 512);
425
-
let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
426
-
backends: wgpu::Backends::all(),
427
-
..Default::default()
428
-
});
429
-
let adapter = instance
430
-
.request_adapter(&wgpu::RequestAdapterOptions {
431
-
power_preference: wgpu::PowerPreference::default(),
432
-
compatible_surface: None,
433
-
force_fallback_adapter: false,
434
-
})
435
-
.await
436
-
.unwrap();
437
-
let (device, queue) = adapter
438
-
.request_device(&DeviceDescriptor::default())
439
-
.await
440
-
.unwrap();
441
-
442
-
// let surface = instance.create_surface(window.clone()).unwrap();
443
-
// let cap = surface.get_capabilities(&adapter);
444
-
// let surface_fmt = cap.formats[0];
445
-
let surface_fmt = wgpu::TextureFormat::Bgra8Unorm;
446
-
447
-
let depth_texture = texture::Texture::create_depth_texture(&device, &SIZE, "depth_texture");
448
-
449
-
let camera = Camera {
450
-
eye: (0.0, 25.0, 100.0).into(),
451
-
target: (0.0, 25.0, 0.0).into(),
452
-
up: Vec3::Y,
453
-
aspect: SIZE.x as f32 / SIZE.y as f32,
454
-
fov_y_radians: FRAC_PI_2,
455
-
znear: 0.1,
456
-
zfar: 10000.0,
457
-
};
458
-
459
-
let mut camera_uniform = CameraUniform::new();
460
-
camera_uniform.update_view_proj(&camera);
461
-
462
-
let camera_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
463
-
label: Some("Camera Buffer"),
464
-
contents: bytemuck::cast_slice(&[camera_uniform]),
465
-
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
466
-
});
467
-
468
-
let camera_bgl = device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
469
-
entries: &[wgpu::BindGroupLayoutEntry {
470
-
binding: 0,
471
-
visibility: wgpu::ShaderStages::VERTEX,
472
-
ty: wgpu::BindingType::Buffer {
473
-
ty: wgpu::BufferBindingType::Uniform,
474
-
has_dynamic_offset: false,
475
-
min_binding_size: None,
476
-
},
477
-
count: None,
478
-
}],
479
-
label: Some("camera_bind_group_layout"),
480
-
});
481
-
482
-
let camera_bg = device.create_bind_group(&wgpu::BindGroupDescriptor {
483
-
layout: &camera_bgl,
484
-
entries: &[wgpu::BindGroupEntry {
485
-
binding: 0,
486
-
resource: camera_buffer.as_entire_binding(),
487
-
}],
488
-
label: Some("camera_bind_group"),
489
-
});
490
-
491
-
HeadlessRenderer {
492
-
device,
493
-
queue,
494
-
camera_bgl,
495
-
camera_bg,
496
-
surface_fmt,
497
-
depth_texture,
498
-
}
499
-
}
500
-
501
-
pub fn output_texture(
502
-
&mut self,
503
-
texture: &texture::Texture,
504
-
mut encoder: CommandEncoder,
505
-
) -> DynamicImage {
506
-
pollster::block_on(async {
507
-
let u32_size = std::mem::size_of::<u32>() as u32;
508
-
let output_buffer_size = wgpu::BufferAddress::from(
509
-
u32_size * texture.texture.size().width * texture.texture.size().height,
510
-
);
511
-
let output_buffer_desc = wgpu::BufferDescriptor {
512
-
size: output_buffer_size,
513
-
usage: wgpu::BufferUsages::COPY_DST
514
-
// this tells wpgu that we want to read this buffer from the cpu
515
-
| wgpu::BufferUsages::MAP_READ,
516
-
label: None,
517
-
mapped_at_creation: false,
518
-
};
519
-
let output_buffer = self.device.create_buffer(&output_buffer_desc);
520
-
521
-
encoder.copy_texture_to_buffer(
522
-
wgpu::TexelCopyTextureInfo {
523
-
aspect: wgpu::TextureAspect::All,
524
-
texture: &texture.texture,
525
-
mip_level: 0,
526
-
origin: wgpu::Origin3d::ZERO,
527
-
},
528
-
wgpu::TexelCopyBufferInfo {
529
-
buffer: &output_buffer,
530
-
layout: wgpu::TexelCopyBufferLayout {
531
-
offset: 0,
532
-
bytes_per_row: Some(u32_size * texture.texture.size().width),
533
-
rows_per_image: Some(texture.texture.size().height),
534
-
},
535
-
},
536
-
texture.texture.size(),
537
-
);
538
-
539
-
self.queue.submit(Some(encoder.finish()));
540
-
541
-
let mut image = None;
542
-
// We need to scope the mapping variables so that we can
543
-
// unmap the buffer
544
-
{
545
-
let buffer_slice = output_buffer.slice(..);
546
-
547
-
// NOTE: We have to create the mapping THEN device.poll() before await
548
-
// the future. Otherwise the application will freeze.
549
-
let (tx, rx) = futures_intrusive::channel::shared::oneshot_channel();
550
-
buffer_slice.map_async(wgpu::MapMode::Read, move |result| {
551
-
tx.send(result).unwrap();
552
-
});
553
-
self.device.poll(wgpu::PollType::Wait).unwrap();
554
-
rx.receive().await.unwrap().unwrap();
555
-
556
-
let data = &buffer_slice.get_mapped_range()[..];
557
-
558
-
use image::{ImageBuffer, Rgba};
559
-
let buffer: RgbaImage = ImageBuffer::<Rgba<u8>, _>::from_raw(
560
-
texture.texture.size().width,
561
-
texture.texture.size().height,
562
-
data.to_owned(),
563
-
)
564
-
.unwrap();
565
-
image = Some(DynamicImage::ImageRgba8(buffer));
566
-
}
567
-
output_buffer.unmap();
568
-
569
-
image.unwrap()
570
-
})
571
-
}
572
-
}
573
-
574
-
#[deprecated]
575
-
#[allow(clippy::too_many_lines)]
576
-
pub async fn render_context_wgpu(render_context: RenderContext) -> DynamicImage {
577
-
let instance = wgpu::Instance::new(&wgpu::InstanceDescriptor {
578
-
backends: wgpu::Backends::all(),
579
-
..Default::default()
580
-
});
581
-
let adapter = instance
582
-
.request_adapter(&wgpu::RequestAdapterOptions {
583
-
power_preference: wgpu::PowerPreference::default(),
584
-
compatible_surface: None,
585
-
force_fallback_adapter: false,
586
-
})
587
-
.await
588
-
.unwrap();
589
-
let (device, queue) = adapter
590
-
.request_device(&DeviceDescriptor::default())
591
-
.await
592
-
.unwrap();
593
-
594
-
let texture_desc = wgpu::TextureDescriptor {
595
-
size: wgpu::Extent3d {
596
-
width: render_context.size.x,
597
-
height: render_context.size.y,
598
-
depth_or_array_layers: 1,
599
-
},
600
-
mip_level_count: 1,
601
-
sample_count: 1,
602
-
dimension: wgpu::TextureDimension::D2,
603
-
format: wgpu::TextureFormat::Rgba8UnormSrgb,
604
-
usage: wgpu::TextureUsages::COPY_SRC | wgpu::TextureUsages::RENDER_ATTACHMENT,
605
-
label: None,
606
-
view_formats: &[wgpu::TextureFormat::Rgba8UnormSrgb],
607
-
};
608
-
let texture = device.create_texture(&texture_desc);
609
-
let texture_view = texture.create_view(&Default::default());
610
-
let u32_size = std::mem::size_of::<u32>() as u32;
611
-
let output_buffer_size =
612
-
wgpu::BufferAddress::from(u32_size * render_context.size.x * render_context.size.y);
613
-
let output_buffer_desc = wgpu::BufferDescriptor {
614
-
size: output_buffer_size,
615
-
usage: wgpu::BufferUsages::COPY_DST
616
-
// this tells wpgu that we want to read this buffer from the cpu
617
-
| wgpu::BufferUsages::MAP_READ,
618
-
label: None,
619
-
mapped_at_creation: false,
620
-
};
621
-
let output_buffer = device.create_buffer(&output_buffer_desc);
622
-
623
-
let mut encoder =
624
-
device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None });
625
-
626
-
for shape in render_context.shape {
627
-
let vertex_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
628
-
label: Some("Vertex Buffer"),
629
-
contents: bytemuck::cast_slice(&shape.vertices),
630
-
usage: wgpu::BufferUsages::VERTEX,
631
-
});
632
-
633
-
let index_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
634
-
label: Some("Index Buffer"),
635
-
contents: bytemuck::cast_slice(&shape.indices),
636
-
usage: wgpu::BufferUsages::INDEX,
637
-
});
638
-
639
-
let shape_texture_rgba = shape.tex.to_rgba8();
640
-
let shape_texture_dimensions = shape_texture_rgba.dimensions();
641
-
let shape_texture_size = wgpu::Extent3d {
642
-
width: shape_texture_dimensions.0,
643
-
height: shape_texture_dimensions.1,
644
-
// All textures are stored as 3D, we represent our 2D texture
645
-
// by setting depth to 1.
646
-
depth_or_array_layers: 1,
647
-
};
648
-
let shape_diffuse_texture = device.create_texture(&wgpu::TextureDescriptor {
649
-
size: shape_texture_size,
650
-
mip_level_count: 1, // We'll talk about this a little later
651
-
sample_count: 1,
652
-
dimension: wgpu::TextureDimension::D2,
653
-
// Most images are stored using sRGB, so we need to reflect that here.
654
-
format: wgpu::TextureFormat::Rgba8UnormSrgb,
655
-
// TEXTURE_BINDING tells wgpu that we want to use this texture in shaders
656
-
// COPY_DST means that we want to copy data to this texture
657
-
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
658
-
label: Some("diffuse_texture"),
659
-
// This is the same as with the SurfaceConfig. It
660
-
// specifies what texture formats can be used to
661
-
// create TextureViews for this texture. The base
662
-
// texture format (Rgba8UnormSrgb in this case) is
663
-
// always supported. Note that using a different
664
-
// texture format is not supported on the WebGL2
665
-
// backend.
666
-
view_formats: &[],
667
-
});
668
-
669
-
queue.write_texture(
670
-
TexelCopyTextureInfo {
671
-
texture: &shape_diffuse_texture,
672
-
mip_level: 0,
673
-
origin: wgpu::Origin3d::ZERO,
674
-
aspect: wgpu::TextureAspect::All,
675
-
},
676
-
&shape_texture_rgba,
677
-
wgpu::TexelCopyBufferLayout {
678
-
offset: 0,
679
-
bytes_per_row: Some(4 * shape_texture_dimensions.0),
680
-
rows_per_image: Some(shape_texture_dimensions.1),
681
-
},
682
-
shape_texture_size,
683
-
);
684
-
685
-
let shape_diffuse_texture_view =
686
-
shape_diffuse_texture.create_view(&wgpu::TextureViewDescriptor::default());
687
-
let shape_diffuse_sampler = device.create_sampler(&wgpu::SamplerDescriptor {
688
-
address_mode_u: wgpu::AddressMode::ClampToEdge,
689
-
address_mode_v: wgpu::AddressMode::ClampToEdge,
690
-
address_mode_w: wgpu::AddressMode::ClampToEdge,
691
-
mag_filter: wgpu::FilterMode::Linear,
692
-
min_filter: wgpu::FilterMode::Nearest,
693
-
mipmap_filter: wgpu::FilterMode::Nearest,
694
-
..Default::default()
695
-
});
696
-
697
-
let texture_bind_group_layout =
698
-
device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
699
-
entries: &[
700
-
wgpu::BindGroupLayoutEntry {
701
-
binding: 0,
702
-
visibility: wgpu::ShaderStages::FRAGMENT,
703
-
ty: wgpu::BindingType::Texture {
704
-
multisampled: false,
705
-
view_dimension: wgpu::TextureViewDimension::D2,
706
-
sample_type: wgpu::TextureSampleType::Float { filterable: true },
707
-
},
708
-
count: None,
709
-
},
710
-
wgpu::BindGroupLayoutEntry {
711
-
binding: 1,
712
-
visibility: wgpu::ShaderStages::FRAGMENT,
713
-
// This should match the filterable field of the
714
-
// corresponding Texture entry above.
715
-
ty: wgpu::BindingType::Sampler(wgpu::SamplerBindingType::Filtering),
716
-
count: None,
717
-
},
718
-
],
719
-
label: Some("texture_bind_group_layout"),
720
-
});
721
-
722
-
let shape_diffuse_bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {
723
-
layout: &texture_bind_group_layout,
724
-
entries: &[
725
-
wgpu::BindGroupEntry {
726
-
binding: 0,
727
-
resource: wgpu::BindingResource::TextureView(&shape_diffuse_texture_view),
728
-
},
729
-
wgpu::BindGroupEntry {
730
-
binding: 1,
731
-
resource: wgpu::BindingResource::Sampler(&shape_diffuse_sampler),
732
-
},
733
-
],
734
-
label: Some("diffuse_bind_group"),
735
-
});
736
-
737
-
let mvp_matrix = shape.mvp_matrix.into();
738
-
let mvp_uniform = TextureTransformUniform {
739
-
mvp_matrix,
740
-
channel_replacements_r: shape.modulation.channels[0],
741
-
channel_replacements_g: shape.modulation.channels[1],
742
-
channel_replacements_b: shape.modulation.channels[2],
743
-
texture_type: (Into::<u8>::into(shape.modulation.mode)).into(),
744
-
pad: Default::default(),
745
-
};
746
-
747
-
let mvp_buffer = device.create_buffer_init(&wgpu::util::BufferInitDescriptor {
748
-
label: Some("MvpMatrix Buffer"),
749
-
contents: bytemuck::cast_slice(&[mvp_uniform]),
750
-
usage: wgpu::BufferUsages::UNIFORM | wgpu::BufferUsages::COPY_DST,
751
-
});
752
-
753
-
let mvp_bind_group_layout =
754
-
device.create_bind_group_layout(&wgpu::BindGroupLayoutDescriptor {
755
-
entries: &[wgpu::BindGroupLayoutEntry {
756
-
binding: 0,
757
-
visibility: wgpu::ShaderStages::VERTEX | wgpu::ShaderStages::FRAGMENT,
758
-
ty: wgpu::BindingType::Buffer {
759
-
ty: wgpu::BufferBindingType::Uniform,
760
-
has_dynamic_offset: false,
761
-
min_binding_size: None,
762
-
},
763
-
count: None,
764
-
}],
765
-
label: Some("mvp_bind_group_layout"),
766
-
});
767
-
768
-
let mvp_bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor {
769
-
layout: &mvp_bind_group_layout,
770
-
entries: &[wgpu::BindGroupEntry {
771
-
binding: 0,
772
-
resource: mvp_buffer.as_entire_binding(),
773
-
}],
774
-
label: Some("mvp_bind_group"),
775
-
});
776
-
777
-
let shader = wgpu::ShaderSource::Wgsl(SHADER.into());
778
-
let shader_module = device.create_shader_module(wgpu::ShaderModuleDescriptor {
779
-
label: Some("Shader"),
780
-
source: shader,
781
-
});
782
-
let render_pipeline_layout =
783
-
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
784
-
label: Some("Render Pipeline Layout"),
785
-
bind_group_layouts: &[&texture_bind_group_layout, &mvp_bind_group_layout],
786
-
push_constant_ranges: &[],
787
-
});
788
-
let render_pipeline = device.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
789
-
label: Some("Render Pipeline"),
790
-
layout: Some(&render_pipeline_layout),
791
-
vertex: wgpu::VertexState {
792
-
module: &shader_module,
793
-
entry_point: Some("vs_main"),
794
-
buffers: &[Vertex::desc()],
795
-
compilation_options: Default::default(),
796
-
},
797
-
fragment: Some(wgpu::FragmentState {
798
-
module: &shader_module,
799
-
entry_point: Some("fs_main"),
800
-
targets: &[Some(wgpu::ColorTargetState {
801
-
format: texture_desc.format,
802
-
blend: Some(wgpu::BlendState::ALPHA_BLENDING),
803
-
write_mask: wgpu::ColorWrites::ALL,
804
-
})],
805
-
compilation_options: Default::default(),
806
-
}),
807
-
primitive: wgpu::PrimitiveState {
808
-
topology: wgpu::PrimitiveTopology::TriangleList,
809
-
strip_index_format: None,
810
-
front_face: wgpu::FrontFace::Ccw,
811
-
cull_mode: Some(wgpu::Face::Back),
812
-
// Setting this to anything other than Fill requires Features::NON_FILL_POLYGON_MODE
813
-
polygon_mode: wgpu::PolygonMode::Fill,
814
-
// Requires Features::DEPTH_CLIP_CONTROL
815
-
unclipped_depth: false,
816
-
// Requires Features::CONSERVATIVE_RASTERIZATION
817
-
conservative: false,
818
-
},
819
-
depth_stencil: None,
820
-
multisample: wgpu::MultisampleState {
821
-
count: 1,
822
-
mask: !0,
823
-
alpha_to_coverage_enabled: false,
824
-
},
825
-
// If the pipeline will be used with a multiview render pass, this
826
-
// indicates how many array layers the attachments will have.
827
-
multiview: None,
828
-
cache: None,
829
-
});
830
-
831
-
{
832
-
let render_pass_desc = wgpu::RenderPassDescriptor {
833
-
label: Some("Render Pass"),
834
-
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
835
-
view: &texture_view,
836
-
resolve_target: None,
837
-
ops: wgpu::Operations {
838
-
load: wgpu::LoadOp::Load,
839
-
store: wgpu::StoreOp::Store,
840
-
},
841
-
})],
842
-
depth_stencil_attachment: None,
843
-
occlusion_query_set: None,
844
-
timestamp_writes: None,
845
-
};
846
-
let mut render_pass = encoder.begin_render_pass(&render_pass_desc);
847
-
848
-
render_pass.set_pipeline(&render_pipeline);
849
-
render_pass.set_bind_group(0, &shape_diffuse_bind_group, &[]);
850
-
render_pass.set_bind_group(1, &mvp_bind_group, &[]);
851
-
render_pass.set_vertex_buffer(0, vertex_buffer.slice(..));
852
-
render_pass.set_index_buffer(index_buffer.slice(..), wgpu::IndexFormat::Uint32);
853
-
854
-
render_pass.draw_indexed(0..shape.indices.len() as u32, 0, 0..1);
855
-
}
856
-
}
857
-
encoder.copy_texture_to_buffer(
858
-
wgpu::TexelCopyTextureInfo {
859
-
aspect: wgpu::TextureAspect::All,
860
-
texture: &texture,
861
-
mip_level: 0,
862
-
origin: wgpu::Origin3d::ZERO,
863
-
},
864
-
wgpu::TexelCopyBufferInfo {
865
-
buffer: &output_buffer,
866
-
layout: wgpu::TexelCopyBufferLayout {
867
-
offset: 0,
868
-
bytes_per_row: Some(u32_size * render_context.size.x),
869
-
rows_per_image: Some(render_context.size.x),
870
-
},
871
-
},
872
-
texture_desc.size,
873
-
);
874
-
875
-
queue.submit(Some(encoder.finish()));
876
-
877
-
let mut image = None;
878
-
// We need to scope the mapping variables so that we can
879
-
// unmap the buffer
880
-
{
881
-
let buffer_slice = output_buffer.slice(..);
882
-
883
-
// NOTE: We have to create the mapping THEN device.poll() before await
884
-
// the future. Otherwise the application will freeze.
885
-
let (tx, rx) = futures_intrusive::channel::shared::oneshot_channel();
886
-
buffer_slice.map_async(wgpu::MapMode::Read, move |result| {
887
-
tx.send(result).unwrap();
888
-
});
889
-
device.poll(wgpu::PollType::Wait).unwrap();
890
-
rx.receive().await.unwrap().unwrap();
891
-
892
-
let data = &buffer_slice.get_mapped_range()[..];
893
-
894
-
use image::{ImageBuffer, Rgba};
895
-
let buffer: RgbaImage = ImageBuffer::<Rgba<u8>, _>::from_raw(
896
-
render_context.size.x,
897
-
render_context.size.y,
898
-
data.to_owned(),
899
-
)
900
-
.unwrap();
901
-
// buffer.save("image.png").unwrap();
902
-
image = Some(DynamicImage::ImageRgba8(buffer));
903
-
}
904
-
output_buffer.unmap();
905
-
906
-
image.unwrap()
907
-
}
908
-
909
-
pub mod texture {
910
-
use std::error::Error;
911
-
use std::fmt::Debug;
912
-
913
-
use glam::UVec2;
914
-
use image::GenericImageView;
915
-
use wgpu::TextureFormat;
916
-
917
-
pub struct Texture {
918
-
#[allow(unused)]
919
-
pub texture: wgpu::Texture,
920
-
pub view: wgpu::TextureView,
921
-
pub sampler: wgpu::Sampler,
922
-
}
923
-
impl Debug for Texture {
924
-
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
925
-
f.debug_struct("Texture").finish()
926
-
}
927
-
}
928
-
929
-
#[allow(unused)]
930
-
impl Texture {
931
-
pub fn from_bytes(
932
-
device: &wgpu::Device,
933
-
queue: &wgpu::Queue,
934
-
bytes: &[u8],
935
-
label: &str,
936
-
) -> Result<Self, Box<dyn Error>> {
937
-
let img = image::load_from_memory(bytes)?;
938
-
Self::from_image(device, queue, &img, Some(label))
939
-
}
940
-
941
-
pub fn from_image(
942
-
device: &wgpu::Device,
943
-
queue: &wgpu::Queue,
944
-
img: &image::DynamicImage,
945
-
label: Option<&str>,
946
-
) -> Result<Self, Box<dyn Error>> {
947
-
let rgba = img.to_rgba8();
948
-
let dimensions = img.dimensions();
949
-
950
-
let size = wgpu::Extent3d {
951
-
width: dimensions.0,
952
-
height: dimensions.1,
953
-
depth_or_array_layers: 1,
954
-
};
955
-
let texture = device.create_texture(&wgpu::TextureDescriptor {
956
-
label,
957
-
size,
958
-
mip_level_count: 1,
959
-
sample_count: 1,
960
-
dimension: wgpu::TextureDimension::D2,
961
-
format: wgpu::TextureFormat::Rgba8UnormSrgb,
962
-
usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST,
963
-
view_formats: &[],
964
-
});
965
-
966
-
queue.write_texture(
967
-
wgpu::TexelCopyTextureInfo {
968
-
aspect: wgpu::TextureAspect::All,
969
-
texture: &texture,
970
-
mip_level: 0,
971
-
origin: wgpu::Origin3d::ZERO,
972
-
},
973
-
&rgba,
974
-
wgpu::TexelCopyBufferLayout {
975
-
offset: 0,
976
-
bytes_per_row: Some(4 * dimensions.0),
977
-
rows_per_image: Some(dimensions.1),
978
-
},
979
-
size,
980
-
);
981
-
982
-
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
983
-
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
984
-
address_mode_u: wgpu::AddressMode::ClampToEdge,
985
-
address_mode_v: wgpu::AddressMode::ClampToEdge,
986
-
address_mode_w: wgpu::AddressMode::ClampToEdge,
987
-
mag_filter: wgpu::FilterMode::Linear,
988
-
min_filter: wgpu::FilterMode::Nearest,
989
-
mipmap_filter: wgpu::FilterMode::Nearest,
990
-
..Default::default()
991
-
});
992
-
993
-
Ok(Self {
994
-
texture,
995
-
view,
996
-
sampler,
997
-
})
998
-
}
999
-
1000
-
pub const DEPTH_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Depth32Float; // 1.
1001
-
1002
-
pub fn create_depth_texture(device: &wgpu::Device, size: &UVec2, label: &str) -> Self {
1003
-
let size = wgpu::Extent3d {
1004
-
// 2.
1005
-
width: size.x.max(1),
1006
-
height: size.y.max(1),
1007
-
depth_or_array_layers: 1,
1008
-
};
1009
-
let desc = wgpu::TextureDescriptor {
1010
-
label: Some(label),
1011
-
size,
1012
-
mip_level_count: 1,
1013
-
sample_count: 1,
1014
-
dimension: wgpu::TextureDimension::D2,
1015
-
format: Self::DEPTH_FORMAT,
1016
-
usage: wgpu::TextureUsages::RENDER_ATTACHMENT // 3.
1017
-
| wgpu::TextureUsages::TEXTURE_BINDING,
1018
-
view_formats: &[],
1019
-
};
1020
-
let texture = device.create_texture(&desc);
1021
-
1022
-
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
1023
-
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
1024
-
// 4.
1025
-
address_mode_u: wgpu::AddressMode::ClampToEdge,
1026
-
address_mode_v: wgpu::AddressMode::ClampToEdge,
1027
-
address_mode_w: wgpu::AddressMode::ClampToEdge,
1028
-
mag_filter: wgpu::FilterMode::Linear,
1029
-
min_filter: wgpu::FilterMode::Linear,
1030
-
mipmap_filter: wgpu::FilterMode::Nearest,
1031
-
compare: Some(wgpu::CompareFunction::LessEqual), // 5.
1032
-
lod_min_clamp: 0.0,
1033
-
lod_max_clamp: 100.0,
1034
-
..Default::default()
1035
-
});
1036
-
1037
-
Self {
1038
-
texture,
1039
-
view,
1040
-
sampler,
1041
-
}
1042
-
}
1043
-
1044
-
pub fn create_texture(device: &wgpu::Device, size: &UVec2, label: &str) -> Self {
1045
-
let size = wgpu::Extent3d {
1046
-
// 2.
1047
-
width: size.x.max(1),
1048
-
height: size.y.max(1),
1049
-
depth_or_array_layers: 1,
1050
-
};
1051
-
let desc = wgpu::TextureDescriptor {
1052
-
label: Some(label),
1053
-
size,
1054
-
mip_level_count: 1,
1055
-
sample_count: 1,
1056
-
dimension: wgpu::TextureDimension::D2,
1057
-
format: TextureFormat::Bgra8UnormSrgb,
1058
-
usage: wgpu::TextureUsages::RENDER_ATTACHMENT // 3.
1059
-
| wgpu::TextureUsages::TEXTURE_BINDING
1060
-
| wgpu::TextureUsages::COPY_SRC,
1061
-
view_formats: &[],
1062
-
};
1063
-
let texture = device.create_texture(&desc);
1064
-
1065
-
let view = texture.create_view(&wgpu::TextureViewDescriptor::default());
1066
-
let sampler = device.create_sampler(&wgpu::SamplerDescriptor {
1067
-
// 4.
1068
-
address_mode_u: wgpu::AddressMode::MirrorRepeat,
1069
-
address_mode_v: wgpu::AddressMode::MirrorRepeat,
1070
-
address_mode_w: wgpu::AddressMode::MirrorRepeat,
1071
-
mag_filter: wgpu::FilterMode::Linear,
1072
-
min_filter: wgpu::FilterMode::Linear,
1073
-
mipmap_filter: wgpu::FilterMode::Nearest,
1074
-
lod_min_clamp: 0.0,
1075
-
lod_max_clamp: 100.0,
1076
-
..Default::default()
1077
-
});
1078
-
1079
-
Self {
1080
-
texture,
1081
-
view,
1082
-
sampler,
1083
-
}
1084
-
}
1085
-
}
1086
-
}
1087
-
1088
-
#[cfg(test)]
1089
-
mod tests {
1090
-
use crate::draw::mask::MaskFaceParts;
1091
-
use crate::res::shape::nx::{ResourceShape, SHAPE_MID_DAT};
1092
-
use crate::res::tex::nx::{ResourceTexture, TEXTURE_MID_SRGB_DAT};
1093
-
use binrw::BinRead;
1094
-
use glam::uvec2;
1095
-
use image_compare::Algorithm;
1096
-
1097
-
use super::*;
1098
-
use std::{error::Error, fs::File, io::BufReader};
1099
-
1100
-
type R = Result<(), Box<dyn Error>>;
1101
-
1102
-
// #[test]
1103
-
// #[allow(clippy::too_many_lines)]
1104
-
// fn test_render() -> R {
1105
-
// let mut tex_file = BufReader::new(File::open(TEXTURE_MID_SRGB_DAT)?);
1106
-
// let mut tex_shape = BufReader::new(File::open(SHAPE_MID_DAT)?);
1107
-
1108
-
// let mut char =
1109
-
// File::open(concat!(env!("CARGO_MANIFEST_DIR"), "/../Jasmine.charinfo")).unwrap();
1110
-
// let char = NxCharInfo::read(&mut char).unwrap();
1111
-
1112
-
// let image = pollster::block_on(render_context_wgpu(RenderContext::new(
1113
-
// // &FaceParts::init(&char, 256.0),
1114
-
// &char,
1115
-
// (&mut tex_shape, &mut tex_file),
1116
-
// )?));
1117
-
// let image = image.flipv();
1118
-
1119
-
// image.save(concat!(
1120
-
// env!("CARGO_MANIFEST_DIR"),
1121
-
// "/test_output/mask-rendered.png"
1122
-
// ))?;
1123
-
1124
-
// let reference_image = image::open(concat!(
1125
-
// env!("CARGO_MANIFEST_DIR"),
1126
-
// "/test_data/jasmine-mask.png"
1127
-
// ))
1128
-
// .unwrap();
1129
-
1130
-
// let similarity = image_compare::rgb_hybrid_compare(
1131
-
// &image.clone().into_rgb8(),
1132
-
// &reference_image.clone().into_rgb8(),
1133
-
// )
1134
-
// .expect("wrong size!");
1135
-
1136
-
// similarity
1137
-
// .image
1138
-
// .to_color_map()
1139
-
// .save(concat!(
1140
-
// env!("CARGO_MANIFEST_DIR"),
1141
-
// "/test_output/mask-similarity.png"
1142
-
// ))
1143
-
// .unwrap();
1144
-
1145
-
// let similarity = image_compare::gray_similarity_structure(
1146
-
// &Algorithm::MSSIMSimple,
1147
-
// &image.into_luma8(),
1148
-
// &reference_image.into_luma8(),
1149
-
// )
1150
-
// .expect("wrong size!");
1151
-
1152
-
// similarity
1153
-
// .image
1154
-
// .to_color_map()
1155
-
// .save(concat!(
1156
-
// env!("CARGO_MANIFEST_DIR"),
1157
-
// "/test_output/mask-similarity-grey.png"
1158
-
// ))
1159
-
// .unwrap();
1160
-
1161
-
// Ok(())
1162
-
// }
1163
-
}
1164
-
1165
-
mod camera {
1166
-
use glam::{Mat4, Vec3};
1167
-
1168
-
pub struct Camera {
1169
-
pub eye: Vec3,
1170
-
pub target: Vec3,
1171
-
pub up: Vec3,
1172
-
pub aspect: f32,
1173
-
pub fov_y_radians: f32,
1174
-
pub znear: f32,
1175
-
pub zfar: f32,
1176
-
}
1177
-
1178
-
impl Camera {
1179
-
pub fn build_view_projection_matrix(&self) -> Mat4 {
1180
-
let view = Mat4::look_at_rh(self.eye, self.target, self.up);
1181
-
let proj = Mat4::perspective_rh(self.fov_y_radians, self.aspect, self.znear, self.zfar);
1182
-
proj * view
1183
-
}
1184
-
}
1185
-
1186
-
#[repr(C)]
1187
-
#[derive(Debug, Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)]
1188
-
pub struct CameraUniform {
1189
-
view_proj: [[f32; 4]; 4],
1190
-
}
1191
-
1192
-
impl CameraUniform {
1193
-
pub fn new() -> Self {
1194
-
Self {
1195
-
view_proj: Mat4::IDENTITY.to_cols_array_2d(),
1196
-
}
1197
-
}
1198
-
1199
-
pub fn update_view_proj(&mut self, camera: &Camera) {
1200
-
self.view_proj = camera.build_view_projection_matrix().to_cols_array_2d();
1201
-
}
1202
-
}
1203
-
}
+2
-1
vfl/src/lib.rs
crates/vfl/src/lib.rs
+2
-1
vfl/src/lib.rs
crates/vfl/src/lib.rs
vfl/src/res/mod.rs
crates/vfl/src/res/mod.rs
vfl/src/res/mod.rs
crates/vfl/src/res/mod.rs
vfl/src/res/shape/mod.rs
crates/vfl/src/res/shape/mod.rs
vfl/src/res/shape/mod.rs
crates/vfl/src/res/shape/mod.rs
+3
-3
vfl/src/res/shape/nx.rs
crates/vfl/src/res/shape/nx.rs
+3
-3
vfl/src/res/shape/nx.rs
crates/vfl/src/res/shape/nx.rs
···
1
-
use crate::utils::{ReadSeek, Vec3PackedSnorm, inflate_bytes, read_byte_slice, u16_to_f32};
1
+
use crate::utils::{Vec3PackedSnorm, inflate_bytes, u16_to_f32};
2
2
use binrw::{BinRead, Endian};
3
-
use std::fs::File;
4
3
use std::{
5
4
error::Error,
6
5
io::{Cursor, Read, Seek, SeekFrom},
7
6
};
8
7
9
-
pub const SHAPE_MID_DAT: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/ShapeMid.dat");
8
+
pub const SHAPE_MID_DAT: &str =
9
+
concat!(env!("CARGO_WORKSPACE_DIR"), "/resources_here/ShapeMid.dat");
10
10
#[cfg(target_family = "wasm")]
11
11
pub const SHAPE_MID_DAT_LOADED: &[u8] = include_bytes!("../../../ShapeMid.dat");
12
12
vfl/src/res/tex/mod.rs
crates/vfl/src/res/tex/mod.rs
vfl/src/res/tex/mod.rs
crates/vfl/src/res/tex/mod.rs
+41
-41
vfl/src/res/tex/nx.rs
crates/vfl/src/res/tex/nx.rs
+41
-41
vfl/src/res/tex/nx.rs
crates/vfl/src/res/tex/nx.rs
···
1
-
use crate::{
2
-
res::shape::nx::ResourceCommonAttribute,
3
-
utils::{ReadSeek, inflate_bytes, read_byte_slice},
4
-
};
1
+
use crate::{res::shape::nx::ResourceCommonAttribute, utils::inflate_bytes};
5
2
use binrw::BinRead;
6
3
use image::{ImageBuffer, Rgba, RgbaImage};
7
4
use num_enum::{IntoPrimitive, TryFromPrimitive};
8
5
use std::error::Error;
9
6
use tegra_swizzle::{block_height_mip0, div_round_up, swizzle::deswizzle_block_linear};
10
7
11
-
pub const TEXTURE_MID_SRGB_DAT: &str = concat!(env!("CARGO_MANIFEST_DIR"), "/NXTextureMidSRGB.dat");
8
+
pub const TEXTURE_MID_SRGB_DAT: &str = concat!(
9
+
env!("CARGO_WORKSPACE_DIR"),
10
+
"/resources_here/NXTextureMidSRGB.dat"
11
+
);
12
12
13
13
#[derive(BinRead, Debug, Clone, Copy)]
14
14
pub struct ResourceTextureAttribute {
15
15
alignment: u32,
16
16
pub width: u16,
17
17
pub height: u16,
18
-
pub format: u8,
18
+
pub format: ResourceTextureFormat,
19
19
mip_count: u8,
20
20
tile_mode: u8,
21
21
pad: [u8; 1],
···
30
30
// Format rundown:
31
31
// https://www.reedbeta.com/blog/understanding-bcn-texture-compression-formats/#comparison-table
32
32
33
-
#[derive(IntoPrimitive, TryFromPrimitive, Debug)]
33
+
#[derive(IntoPrimitive, TryFromPrimitive, Debug, Clone, Copy, BinRead)]
34
+
#[br(repr = u8)]
34
35
#[repr(u8)]
35
36
pub enum ResourceTextureFormat {
36
37
R = 0, // R8Unorm (Ffl Name)
···
43
44
}
44
45
45
46
impl TextureElement {
46
-
pub fn get_texture_bytes(&self, file: &Vec<u8>) -> Result<Vec<u8>, Box<dyn Error>> {
47
+
/// Gets the raw bytes of a texture. Takes an argument of the resource file.
48
+
/// # Errors
49
+
/// - Encounters texture data that isn't Zlib deflated
50
+
/// - Deswizzling texture data fails
51
+
pub fn get_texture_bytes(&self, file: &[u8]) -> Result<Vec<u8>, Box<dyn Error>> {
52
+
use ResourceTextureFormat as Rtf;
53
+
47
54
let start: usize = self.common.offset as usize;
48
55
let end: usize = self.common.offset as usize + self.common.size_compressed as usize;
49
56
50
-
// println!("texload");
51
-
52
57
let range = start..end;
53
-
54
-
// let tex_data = read_byte_slice(
55
-
// file,
56
-
// self.common.offset.into(),
57
-
// self.common.size_compressed.try_into()?,
58
-
// )?;
59
58
60
59
let tex_data = inflate_bytes(&file[range])?;
61
60
62
61
let needs_swizzling = self.texture.tile_mode == 0;
63
62
64
63
let tex_data = if needs_swizzling {
65
-
let block_size = match ResourceTextureFormat::try_from(self.texture.format).unwrap() {
66
-
ResourceTextureFormat::R
67
-
| ResourceTextureFormat::Rb
68
-
| ResourceTextureFormat::Rgba => 1,
69
-
ResourceTextureFormat::Bc4
70
-
| ResourceTextureFormat::Bc5
71
-
| ResourceTextureFormat::Bc7
72
-
| ResourceTextureFormat::Astc4x4 => 4,
64
+
let block_size = match self.texture.format {
65
+
Rtf::R | Rtf::Rb | Rtf::Rgba => 1,
66
+
Rtf::Bc4 | Rtf::Bc5 | Rtf::Bc7 | Rtf::Astc4x4 => 4,
73
67
};
74
68
75
-
let bytes_per_pixel =
76
-
match ResourceTextureFormat::try_from(self.texture.format).unwrap() {
77
-
ResourceTextureFormat::R
78
-
| ResourceTextureFormat::Rb
79
-
| ResourceTextureFormat::Rgba => 1,
80
-
ResourceTextureFormat::Bc4 => 8,
81
-
ResourceTextureFormat::Bc5
82
-
| ResourceTextureFormat::Bc7
83
-
| ResourceTextureFormat::Astc4x4 => 16,
84
-
};
69
+
let bytes_per_pixel = match self.texture.format {
70
+
Rtf::R | Rtf::Rb | Rtf::Rgba => 1,
71
+
Rtf::Bc4 => 8,
72
+
Rtf::Bc5 | Rtf::Bc7 | Rtf::Astc4x4 => 16,
73
+
};
85
74
86
75
let height = self.texture.height.into();
87
76
let block_height = block_height_mip0(div_round_up(height, block_size));
88
77
89
-
// panic!("{}", tex_data.len());
90
78
deswizzle_block_linear(
91
79
div_round_up(self.texture.width.into(), block_size),
92
80
div_round_up(self.texture.height.into(), block_size),
···
102
90
Ok(tex_data)
103
91
}
104
92
93
+
/// Gets the raw bytes of a texture. Takes an argument of the resource file.
94
+
/// # Errors
95
+
/// - Encounters texture data that isn't Zlib deflated
96
+
/// - Deswizzling texture data fails
97
+
/// - Texture decompression fails
98
+
/// # Panics
99
+
/// - If texture data is empty
105
100
#[cfg(feature = "draw")]
106
-
pub fn get_uncompressed_bytes(
107
-
&self,
108
-
file: &Vec<u8>,
109
-
) -> Result<Option<Vec<u8>>, Box<dyn Error>> {
101
+
pub fn get_uncompressed_bytes(&self, file: &[u8]) -> Result<Option<Vec<u8>>, Box<dyn Error>> {
110
102
let normalize_textures = false;
111
103
112
104
if self.texture.width == 0 || self.texture.height == 0 {
···
118
110
119
111
let mut tex_data_decoded =
120
112
vec![0; (u32::from(self.texture.width) * u32::from(self.texture.height)) as usize];
121
-
match ResourceTextureFormat::try_from(self.texture.format).unwrap() {
113
+
match self.texture.format {
122
114
ResourceTextureFormat::Bc7 => {
123
115
texture2ddecoder::decode_bc7(
124
116
&tex_data,
···
195
187
Ok(Some(tex_data_decoded))
196
188
}
197
189
190
+
/// Gets the raw bytes of a texture. Takes an argument of the resource file.
191
+
/// # Errors
192
+
/// - Encounters texture data that isn't Zlib deflated
193
+
/// - Deswizzling texture data fails
194
+
/// - Texture decompression fails
195
+
/// # Panics
196
+
/// - If texture data is empty
197
+
/// - If calculated image container is too small
198
198
#[cfg(feature = "draw")]
199
-
pub fn get_image(&self, bytes: &Vec<u8>) -> Result<Option<RgbaImage>, Box<dyn Error>> {
199
+
pub fn get_image(&self, bytes: &[u8]) -> Result<Option<RgbaImage>, Box<dyn Error>> {
200
200
let bytes = match self.get_uncompressed_bytes(bytes) {
201
201
Ok(Some(bytes)) => bytes,
202
202
Ok(None) => return Ok(None),
vfl/src/utils.rs
crates/vfl/src/utils.rs
vfl/src/utils.rs
crates/vfl/src/utils.rs