diff --git a/Cargo.lock b/Cargo.lock index cd90c99d6..e59fd0658 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -608,12 +608,20 @@ dependencies = [ "bevy_internal 0.14.0", ] +[[package]] +name = "bevy" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_internal 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", +] + [[package]] name = "bevy" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_internal 0.15.0-dev", + "bevy_internal 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", ] [[package]] @@ -622,23 +630,23 @@ version = "0.25.2" source = "git+https://github.com/tychedelia/bevy-inspector-egui?branch=main#1a4e9a31cb5f4a242697a19a2f03765e463edb66" dependencies = [ "bevy-inspector-egui-derive", - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_core_pipeline", - "bevy_ecs 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bevy_egui 0.29.0 (git+https://github.com/tychedelia/bevy_egui)", - "bevy_hierarchy 0.15.0-dev", - "bevy_log 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_pbr", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_state", - "bevy_time 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_log 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_pbr 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_state 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_time 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_window 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bytemuck", "egui", "fuzzy-matcher", @@ -673,34 +681,46 @@ dependencies = [ [[package]] name = "bevy_a11y" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "accesskit 0.16.0", - "bevy_app 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", ] [[package]] -name = "bevy_animation" +name = "bevy_a11y" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_log 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_time 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "accesskit 0.16.0", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", +] + +[[package]] +name = "bevy_animation" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_log 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "blake3", "fixedbitset 0.5.7", "petgraph 0.6.5", @@ -729,16 +749,34 @@ dependencies = [ "web-sys", ] +[[package]] +name = "bevy_app" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "console_error_panic_hook", + "ctrlc", + "downcast-rs", + "thiserror", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "bevy_app" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "console_error_panic_hook", "ctrlc", "downcast-rs", @@ -782,19 +820,19 @@ dependencies = [ [[package]] name = "bevy_asset" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "async-broadcast", "async-fs", "async-lock", "atomicow", - "bevy_app 0.15.0-dev", - "bevy_asset_macros 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_winit 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_winit 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "blake3", "crossbeam-channel", "downcast-rs", @@ -813,6 +851,39 @@ dependencies = [ "web-sys", ] +[[package]] +name = "bevy_asset" +version = "0.15.0-dev" +source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +dependencies = [ + "async-broadcast", + "async-fs", + "async-lock", + "atomicow", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_winit 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "blake3", + "crossbeam-channel", + "downcast-rs", + "futures-io", + "futures-lite", + "js-sys", + "parking_lot 0.12.3", + "ron", + "serde", + "stackfuture", + "thiserror", + "uuid 1.9.1", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "bevy_asset_macros" version = "0.14.0" @@ -828,39 +899,64 @@ dependencies = [ [[package]] name = "bevy_asset_macros" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", ] [[package]] -name = "bevy_audio" +name = "bevy_asset_macros" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", +] + +[[package]] +name = "bevy_audio" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "cpal 0.15.3", "rodio", ] +[[package]] +name = "bevy_color" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bytemuck", + "encase", + "serde", + "thiserror", + "wgpu-types", +] + [[package]] name = "bevy_color" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bytemuck", "encase", "serde", @@ -896,35 +992,72 @@ dependencies = [ "uuid 1.9.1", ] +[[package]] +name = "bevy_core" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "uuid 1.9.1", +] + [[package]] name = "bevy_core" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "uuid 1.9.1", ] +[[package]] +name = "bevy_core_pipeline" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bitflags 2.6.0", + "nonmax", + "radsort", + "serde", + "smallvec 1.13.2", + "thiserror", +] + [[package]] name = "bevy_core_pipeline" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bitflags 2.6.0", "nonmax", "radsort", @@ -944,12 +1077,22 @@ dependencies = [ "syn 2.0.69", ] +[[package]] +name = "bevy_derive" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "quote 1.0.36", + "syn 2.0.69", +] + [[package]] name = "bevy_derive" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "quote 1.0.36", "syn 2.0.69", ] @@ -969,19 +1112,33 @@ dependencies = [ "const-fnv1a-hash", ] +[[package]] +name = "bevy_diagnostic" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "const-fnv1a-hash", + "sysinfo", +] + [[package]] name = "bevy_diagnostic" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_core 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_time 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_time 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "const-fnv1a-hash", - "sysinfo", ] [[package]] @@ -1006,14 +1163,33 @@ dependencies = [ [[package]] name = "bevy_ecs" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "arrayvec 0.7.4", - "bevy_ecs_macros 0.15.0-dev", - "bevy_ptr 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_ecs_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ptr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bitflags 2.6.0", + "concurrent-queue", + "fixedbitset 0.5.7", + "nonmax", + "petgraph 0.6.5", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_ecs" +version = "0.15.0-dev" +source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +dependencies = [ + "bevy_ecs_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ptr 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bitflags 2.6.0", "concurrent-queue", "fixedbitset 0.5.7", @@ -1035,12 +1211,23 @@ dependencies = [ "syn 2.0.69", ] +[[package]] +name = "bevy_ecs_macros" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", +] + [[package]] name = "bevy_ecs_macros" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", @@ -1052,7 +1239,7 @@ version = "0.29.0" source = "git+https://github.com/tychedelia/bevy_egui?branch=main#5c7095cab99df8009dd41b3126acadab9f6099c9" dependencies = [ "arboard", - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bytemuck", "console_log", "crossbeam-channel", @@ -1074,7 +1261,7 @@ version = "0.29.0" source = "git+https://github.com/tychedelia/bevy_egui#5c7095cab99df8009dd41b3126acadab9f6099c9" dependencies = [ "arboard", - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bytemuck", "console_log", "crossbeam-channel", @@ -1090,57 +1277,97 @@ dependencies = [ "winit", ] +[[package]] +name = "bevy_encase_derive" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "encase_derive_impl 0.8.0", +] + [[package]] name = "bevy_encase_derive" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "encase_derive_impl 0.8.0", ] [[package]] name = "bevy_gilrs" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_time 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "gilrs", "thiserror", ] +[[package]] +name = "bevy_gizmos" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_gizmos_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_pbr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_sprite", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bytemuck", +] + [[package]] name = "bevy_gizmos" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core_pipeline", - "bevy_ecs 0.15.0-dev", - "bevy_gizmos_macros", - "bevy_math 0.15.0-dev", - "bevy_pbr", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_sprite", - "bevy_time 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_gizmos_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_time 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bytemuck", ] +[[package]] +name = "bevy_gizmos_macros" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", +] + [[package]] name = "bevy_gizmos_macros" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", @@ -1149,25 +1376,25 @@ dependencies = [ [[package]] name = "bevy_gltf" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "base64 0.22.1", "bevy_animation", - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_core_pipeline", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_pbr", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_scene", - "bevy_tasks 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_pbr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_scene 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "gltf", "percent-encoding 2.3.1", "serde", @@ -1190,16 +1417,29 @@ dependencies = [ "smallvec 1.13.2", ] +[[package]] +name = "bevy_hierarchy" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "smallvec 1.13.2", +] + [[package]] name = "bevy_hierarchy" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_core 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "smallvec 1.13.2", ] @@ -1218,16 +1458,30 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_input" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "smol_str", + "thiserror", +] + [[package]] name = "bevy_input" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "smol_str", "thiserror", ] @@ -1261,42 +1515,72 @@ dependencies = [ [[package]] name = "bevy_internal" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ - "bevy_a11y 0.15.0-dev", + "bevy_a11y 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_animation", - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_audio", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_core_pipeline", - "bevy_derive 0.15.0-dev", - "bevy_diagnostic 0.15.0-dev", - "bevy_ecs 0.15.0-dev", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_diagnostic 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_gilrs", - "bevy_gizmos", + "bevy_gizmos 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_gltf", - "bevy_hierarchy 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_log 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_pbr", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_log 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_pbr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_picking", - "bevy_ptr 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_scene", + "bevy_ptr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_scene 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_sprite", - "bevy_state", - "bevy_tasks 0.15.0-dev", + "bevy_state 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_text", - "bevy_time 0.15.0-dev", - "bevy_transform 0.15.0-dev", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_ui", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", - "bevy_winit 0.15.0-dev", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_winit 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", +] + +[[package]] +name = "bevy_internal" +version = "0.15.0-dev" +source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +dependencies = [ + "bevy_a11y 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_diagnostic 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_gizmos 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_input 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_log 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ptr 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_scene 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_time 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_window 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_winit 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", ] [[package]] @@ -1314,15 +1598,29 @@ dependencies = [ "tracing-wasm", ] +[[package]] +name = "bevy_log" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "android_log-sys", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + [[package]] name = "bevy_log" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ "android_log-sys", - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "tracing-log", "tracing-subscriber", "tracing-wasm", @@ -1340,6 +1638,17 @@ dependencies = [ "toml_edit 0.22.14", ] +[[package]] +name = "bevy_macro_utils" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", + "toml_edit 0.22.14", +] + [[package]] name = "bevy_macro_utils" version = "0.15.0-dev" @@ -1364,12 +1673,27 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_math" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "glam 0.28.0", + "itertools 0.13.0", + "rand 0.8.5", + "rand_distr", + "serde", + "smallvec 1.13.2", + "thiserror", +] + [[package]] name = "bevy_math" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_reflect 0.15.0-dev", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "glam 0.28.0", "itertools 0.13.0", "rand 0.8.5", @@ -1379,6 +1703,14 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_mikktspace" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "glam 0.28.0", +] + [[package]] name = "bevy_mikktspace" version = "0.15.0-dev" @@ -1391,7 +1723,7 @@ dependencies = [ name = "bevy_nannou" version = "0.1.0" dependencies = [ - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_nannou_draw", "bevy_nannou_isf", "bevy_nannou_video", @@ -1401,7 +1733,7 @@ dependencies = [ name = "bevy_nannou_draw" version = "0.1.0" dependencies = [ - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bytemuck", "lyon", "nannou_core", @@ -1415,7 +1747,7 @@ dependencies = [ name = "bevy_nannou_isf" version = "0.1.0" dependencies = [ - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy-inspector-egui", "bevy_egui 0.29.0 (git+https://github.com/tychedelia/bevy_egui?branch=main)", "bytemuck", @@ -1428,30 +1760,56 @@ dependencies = [ name = "bevy_nannou_video" version = "0.1.0" dependencies = [ - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "rayon", "serde", "thiserror", "video-rs", ] +[[package]] +name = "bevy_pbr" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bitflags 2.6.0", + "bytemuck", + "fixedbitset 0.5.7", + "nonmax", + "radsort", + "smallvec 1.13.2", + "static_assertions", +] + [[package]] name = "bevy_pbr" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_window 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "bitflags 2.6.0", "bytemuck", "fixedbitset 0.5.7", @@ -1464,21 +1822,21 @@ dependencies = [ [[package]] name = "bevy_picking" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" -dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_time 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "uuid 1.9.1", ] @@ -1488,6 +1846,11 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c115c97a5c8a263bd0aa7001b999772c744ac5ba797d07c86f25734ce381ea69" +[[package]] +name = "bevy_ptr" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" + [[package]] name = "bevy_ptr" version = "0.15.0-dev" @@ -1515,11 +1878,11 @@ dependencies = [ [[package]] name = "bevy_reflect" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ - "bevy_ptr 0.15.0-dev", - "bevy_reflect_derive 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_ptr 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "downcast-rs", "erased-serde", "glam 0.28.0", @@ -1531,6 +1894,24 @@ dependencies = [ "uuid 1.9.1", ] +[[package]] +name = "bevy_reflect" +version = "0.15.0-dev" +source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +dependencies = [ + "bevy_ptr 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "downcast-rs", + "erased-serde", + "glam 0.28.0", + "serde", + "smallvec 1.13.2", + "smol_str", + "thiserror", + "uuid 1.9.1", +] + [[package]] name = "bevy_reflect_derive" version = "0.14.0" @@ -1544,12 +1925,24 @@ dependencies = [ "uuid 1.9.1", ] +[[package]] +name = "bevy_reflect_derive" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", + "uuid 1.9.1", +] + [[package]] name = "bevy_reflect_derive" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", @@ -1559,28 +1952,28 @@ dependencies = [ [[package]] name = "bevy_render" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "async-channel", - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_diagnostic 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_encase_derive", - "bevy_hierarchy 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_mikktspace", - "bevy_reflect 0.15.0-dev", - "bevy_render_macros", - "bevy_tasks 0.15.0-dev", - "bevy_time 0.15.0-dev", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", - "bevy_winit 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_diagnostic 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_encase_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_mikktspace 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_time 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_winit 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bitflags 2.6.0", "bytemuck", "codespan-reporting", @@ -1605,31 +1998,108 @@ dependencies = [ "wgpu", ] +[[package]] +name = "bevy_render" +version = "0.15.0-dev" +source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +dependencies = [ + "async-channel", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_color 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_core 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_diagnostic 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_encase_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_mikktspace 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_time 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_window 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_winit 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bitflags 2.6.0", + "bytemuck", + "codespan-reporting", + "downcast-rs", + "encase", + "futures-lite", + "hexasphere", + "image 0.25.2", + "js-sys", + "naga 22.1.0", + "naga_oil", + "nonmax", + "offset-allocator", + "send_wrapper", + "serde", + "smallvec 1.13.2", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu", +] + +[[package]] +name = "bevy_render_macros" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", +] + [[package]] name = "bevy_render_macros" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", ] +[[package]] +name = "bevy_scene" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "serde", + "thiserror", + "uuid 1.9.1", +] + [[package]] name = "bevy_scene" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_asset 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_render 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_transform 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "serde", "thiserror", "uuid 1.9.1", @@ -1638,21 +2108,21 @@ dependencies = [ [[package]] name = "bevy_sprite" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" -dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_math 0.15.0-dev", +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_picking", - "bevy_reflect 0.15.0-dev", - "bevy_render", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bitflags 2.6.0", "bytemuck", "fixedbitset 0.5.7", @@ -1663,17 +2133,41 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_state" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_state_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", +] + [[package]] name = "bevy_state" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_state_macros", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_state_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", +] + +[[package]] +name = "bevy_state_macros" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_macro_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", ] [[package]] @@ -1681,7 +2175,7 @@ name = "bevy_state_macros" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_macro_utils 0.15.0-dev", + "bevy_macro_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "proc-macro2 1.0.86", "quote 1.0.36", "syn 2.0.69", @@ -1701,7 +2195,7 @@ dependencies = [ [[package]] name = "bevy_tasks" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ "async-channel", "async-executor", @@ -1713,22 +2207,34 @@ dependencies = [ ] [[package]] -name = "bevy_text" +name = "bevy_tasks" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_render", + "async-executor", + "futures-channel", + "futures-lite", + "pin-project", + "wasm-bindgen-futures", +] + +[[package]] +name = "bevy_text" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_sprite", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "cosmic-text", "serde", "sys-locale", @@ -1750,15 +2256,28 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bevy_time" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "crossbeam-channel", + "thiserror", +] + [[package]] name = "bevy_time" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "crossbeam-channel", "thiserror", ] @@ -1780,39 +2299,52 @@ dependencies = [ [[package]] name = "bevy_transform" version = "0.15.0-dev" -source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" dependencies = [ - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "thiserror", ] [[package]] -name = "bevy_ui" +name = "bevy_transform" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_a11y 0.15.0-dev", - "bevy_app 0.15.0-dev", - "bevy_asset 0.15.0-dev", - "bevy_color", - "bevy_core_pipeline", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_math 0.15.0-dev", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "thiserror", +] + +[[package]] +name = "bevy_ui" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_a11y 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_asset 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_color 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_core_pipeline 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_picking", - "bevy_reflect 0.15.0-dev", - "bevy_render", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_render 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy_sprite", "bevy_text", - "bevy_transform 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_transform 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bytemuck", "nonmax", "smallvec 1.13.2", @@ -1835,13 +2367,27 @@ dependencies = [ "web-time", ] +[[package]] +name = "bevy_utils" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "ahash", + "bevy_utils_proc_macros 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "getrandom 0.2.15", + "hashbrown 0.14.5", + "thread_local", + "tracing", + "web-time", +] + [[package]] name = "bevy_utils" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ "ahash", - "bevy_utils_proc_macros 0.15.0-dev", + "bevy_utils_proc_macros 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "getrandom 0.2.15", "hashbrown 0.14.5", "thread_local", @@ -1860,6 +2406,16 @@ dependencies = [ "syn 2.0.69", ] +[[package]] +name = "bevy_utils_proc_macros" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "proc-macro2 1.0.86", + "quote 1.0.36", + "syn 2.0.69", +] + [[package]] name = "bevy_utils_proc_macros" version = "0.15.0-dev" @@ -1886,18 +2442,34 @@ dependencies = [ "smol_str", ] +[[package]] +name = "bevy_window" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "bevy_a11y 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "raw-window-handle", + "smol_str", +] + [[package]] name = "bevy_window" version = "0.15.0-dev" source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad21986805ca4faa1e5a512" dependencies = [ - "bevy_a11y 0.15.0-dev", - "bevy_app 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_utils 0.15.0-dev", + "bevy_a11y 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_input 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "raw-window-handle", "smol_str", ] @@ -1930,6 +2502,33 @@ dependencies = [ "winit", ] +[[package]] +name = "bevy_winit" +version = "0.15.0-dev" +source = "git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler#6c0bd3b5ee07ccd87e63811886368a5edd2d57a9" +dependencies = [ + "accesskit_winit 0.22.0", + "approx 0.5.1", + "bevy_a11y 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_app 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_derive 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_ecs 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_input 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_log 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_math 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_reflect 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_tasks 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_utils 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "bevy_window 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", + "cfg-if 1.0.0", + "crossbeam-channel", + "raw-window-handle", + "wasm-bindgen", + "web-sys", + "winit", +] + [[package]] name = "bevy_winit" version = "0.15.0-dev" @@ -1937,18 +2536,18 @@ source = "git+https://github.com/bevyengine/bevy?branch=main#54aa45e62ff10cf03ad dependencies = [ "accesskit_winit 0.22.0", "approx 0.5.1", - "bevy_a11y 0.15.0-dev", - "bevy_app 0.15.0-dev", - "bevy_derive 0.15.0-dev", - "bevy_ecs 0.15.0-dev", - "bevy_hierarchy 0.15.0-dev", - "bevy_input 0.15.0-dev", - "bevy_log 0.15.0-dev", - "bevy_math 0.15.0-dev", - "bevy_reflect 0.15.0-dev", - "bevy_tasks 0.15.0-dev", - "bevy_utils 0.15.0-dev", - "bevy_window 0.15.0-dev", + "bevy_a11y 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_app 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_derive 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_ecs 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_hierarchy 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_input 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_log 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_math 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_reflect 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_tasks 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_utils 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", + "bevy_window 0.15.0-dev (git+https://github.com/bevyengine/bevy?branch=main)", "cfg-if 1.0.0", "crossbeam-channel", "raw-window-handle", @@ -5355,7 +5954,7 @@ dependencies = [ name = "nannou" version = "0.19.0" dependencies = [ - "bevy 0.15.0-dev", + "bevy 0.15.0-dev (git+https://github.com/tychedelia/bevy?branch=as-bind-group-sampler)", "bevy-inspector-egui", "bevy_common_assets", "bevy_egui 0.29.0 (git+https://github.com/tychedelia/bevy_egui?branch=main)", diff --git a/Cargo.toml b/Cargo.toml index 0f526d9ff..953775f03 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ members = [ resolver = "2" [workspace.dependencies] -bevy = { git = "https://github.com/bevyengine/bevy", branch = "main" } +bevy = { git = "https://github.com/tychedelia/bevy", branch = "as-bind-group-sampler" } bevy_egui = { git = "https://github.com/tychedelia/bevy_egui", branch = "main" } bevy-inspector-egui = { git = "https://github.com/tychedelia/bevy-inspector-egui", branch = "main" } image = "0.25" diff --git a/bevy_nannou_draw/src/draw/drawing.rs b/bevy_nannou_draw/src/draw/drawing.rs index 1dc77e877..d5f3812bf 100644 --- a/bevy_nannou_draw/src/draw/drawing.rs +++ b/bevy_nannou_draw/src/draw/drawing.rs @@ -36,7 +36,7 @@ where // The draw command index of the material being used. pub(crate) material_index: usize, // Whether the **Drawing** should attempt to finish the drawing on drop. - finish_on_drop: bool, + pub(crate) finish_on_drop: bool, // The node type currently being drawn. _ty: PhantomData, } diff --git a/bevy_nannou_draw/src/draw/instanced.rs b/bevy_nannou_draw/src/draw/instanced.rs index 9e47434a9..ddea09b29 100644 --- a/bevy_nannou_draw/src/draw/instanced.rs +++ b/bevy_nannou_draw/src/draw/instanced.rs @@ -1,25 +1,28 @@ //! A shader that renders a mesh multiple times in one draw call. +use crate::draw::drawing::Drawing; +use crate::draw::primitive::Primitive; +use crate::draw::{Draw, DrawCommand}; +use bevy::core_pipeline::core_3d::Opaque3dBinKey; +use bevy::pbr::{MaterialPipeline, MaterialPipelineKey, PreparedMaterial, SetMaterialBindGroup}; use bevy::render::mesh::allocator::MeshAllocator; use bevy::render::mesh::RenderMeshBufferInfo; -use bevy::render::render_phase::ViewSortedRenderPhases; +use bevy::render::render_asset::prepare_assets; +use bevy::render::render_phase::{BinnedRenderPhaseType, ViewBinnedRenderPhases}; use bevy::{ - core_pipeline::core_3d::Transparent3d, - ecs::{ - query::QueryItem, - system::{lifetimeless::*, SystemParamItem}, - }, + core_pipeline::core_3d::Opaque3d, + ecs::system::{lifetimeless::*, SystemParamItem}, pbr::{ MeshPipeline, MeshPipelineKey, RenderMeshInstances, SetMeshBindGroup, SetMeshViewBindGroup, }, prelude::*, render::{ - extract_component::{ExtractComponent, ExtractComponentPlugin}, + extract_component::ExtractComponent, mesh::{MeshVertexBufferLayoutRef, RenderMesh}, render_asset::RenderAssets, render_phase::{ AddRenderCommand, DrawFunctions, PhaseItem, PhaseItemExtraIndex, RenderCommand, - RenderCommandResult, SetItemPipeline, SortedRenderPhase, TrackedRenderPass, + RenderCommandResult, SetItemPipeline, TrackedRenderPass, }, render_resource::*, renderer::RenderDevice, @@ -27,23 +30,17 @@ use bevy::{ Render, RenderApp, RenderSet, }, }; -use bytemuck::{Pod, Zeroable}; use rayon::prelude::*; - -use crate::draw::drawing::Drawing; -use crate::draw::primitive::Primitive; -use crate::draw::{Draw, DrawCommand}; - -static INSTANCING_RENDER: &str = include_str!("render/instancing.wgsl"); - -const SHADER_HANDLE: Handle = Handle::weak_from_u128(24560125337912185962); +use std::hash::Hash; +use std::marker::PhantomData; +use std::ops::Range; pub struct Instanced<'a, M> where M: Material + Default, { draw: &'a Draw, - data: Option<(usize, InstanceMaterialData)>, + data: Option<(usize, Range)>, } impl<'a, M> Drop for Instanced<'a, M> @@ -68,214 +65,200 @@ impl<'a, M> Instanced<'a, M> where M: Material + Default, { - pub fn with( - mut self, - drawing: Drawing, - input: Vec, - func: F, - ) -> Instanced<'a, M> + pub fn with(mut self, drawing: Drawing, instance_range: Range) -> Instanced<'a, M> where - I: Send + Sync, T: Into, - F: Fn(&I) -> InstanceData + Sync, { - let data = input - .par_iter() - .map(|i| func(i)) - .collect::>(); - let data = InstanceMaterialData(data); self.draw .state .write() .unwrap() .instanced .insert(drawing.index); - self.data = Some((drawing.index, data)); + self.data = Some((drawing.index, instance_range)); self } - fn insert_instanced_draw_command(&self, index: usize, data: InstanceMaterialData) { + fn insert_instanced_draw_command(&self, index: usize, range: Range) { let mut state = self.draw.state.write().unwrap(); let primitive = state.drawing.remove(&index).unwrap(); state .draw_commands - .push(Some(DrawCommand::Instanced(primitive, data))); + .push(Some(DrawCommand::Instanced(primitive, range))); } } -#[derive(Component, Deref, Clone, Debug)] -pub struct InstanceMaterialData(pub Vec); +#[derive(Component)] +pub struct InstancedEntity; -impl ExtractComponent for InstanceMaterialData { - type QueryData = &'static InstanceMaterialData; - type QueryFilter = (); - type Out = Self; +pub struct InstancedMaterialPlugin(PhantomData); - fn extract_component(item: QueryItem<'_, Self::QueryData>) -> Option { - Some(InstanceMaterialData(item.0.clone())) +impl Default for InstancedMaterialPlugin +where + M: Default, +{ + fn default() -> Self { + InstancedMaterialPlugin(PhantomData) } } -pub struct InstancingPlugin; - -impl Plugin for InstancingPlugin { +impl Plugin for InstancedMaterialPlugin +where + M: Material + Default, + M::Data: PartialEq + Eq + Hash + Clone, +{ fn build(&self, app: &mut App) { - app.add_plugins(ExtractComponentPlugin::::default()); app.sub_app_mut(RenderApp) - .add_render_command::() - .init_resource::>() + .add_render_command::>() + .init_resource::>>() .add_systems( Render, - ( - queue_instanced.in_set(RenderSet::QueueMeshes), - prepare_instance_buffers.in_set(RenderSet::PrepareResources), - ), + (queue_instanced:: + .after(prepare_assets::>) + .in_set(RenderSet::QueueMeshes)), ); } fn finish(&self, app: &mut App) { - app.world_mut() - .resource_mut::>() - .get_or_insert_with(&SHADER_HANDLE, || { - Shader::from_wgsl(INSTANCING_RENDER, file!()) - }); - app.sub_app_mut(RenderApp) - .init_resource::(); + .init_resource::>(); } } -#[derive(Debug, Clone, Copy, Pod, Zeroable)] -#[repr(C)] -pub struct InstanceData { - pub position: Vec3, - pub scale: f32, - pub color: [f32; 4], -} - #[allow(clippy::too_many_arguments)] -fn queue_instanced( - transparent_3d_draw_functions: Res>, - custom_pipeline: Res, - mut pipelines: ResMut>, +fn queue_instanced( + draw_functions: Res>, + custom_pipeline: Res>, + mut pipelines: ResMut>>, pipeline_cache: Res, meshes: Res>, - render_mesh_instances: Res, - material_meshes: Query>, - mut transparent_render_phases: ResMut>, - mut views: Query<(Entity, &ExtractedView, &Msaa)>, -) { - let draw_custom = transparent_3d_draw_functions.read().id::(); + (render_mesh_instances, material_meshes, mut phases, mut views, materials): ( + Res, + Query<(Entity, &Handle), With>, + ResMut>, + Query<(Entity, &ExtractedView, &Msaa)>, + Res>>, + ), +) where + M: Material, + M::Data: PartialEq + Eq + Hash + Clone, +{ + let drawn_function = draw_functions.read().id::>(); for (view_entity, view, msaa) in &mut views { let msaa_key = MeshPipelineKey::from_msaa_samples(msaa.samples()); - let Some(transparent_phase) = transparent_render_phases.get_mut(&view_entity) else { + let Some(phase) = phases.get_mut(&view_entity) else { continue; }; let view_key = msaa_key | MeshPipelineKey::from_hdr(view.hdr); - let rangefinder = view.rangefinder3d(); - for entity in &material_meshes { + for (entity, material) in &material_meshes { + let material = materials.get(material).unwrap(); let Some(mesh_instance) = render_mesh_instances.render_mesh_queue_data(entity) else { continue; }; let Some(mesh) = meshes.get(mesh_instance.mesh_asset_id) else { continue; }; - let key = + let mesh_key = view_key | MeshPipelineKey::from_primitive_topology(mesh.primitive_topology()); + let key = MaterialPipelineKey { + mesh_key, + bind_group_data: material.key.clone(), + }; let pipeline = pipelines .specialize(&pipeline_cache, &custom_pipeline, key, &mesh.layout) .unwrap(); - transparent_phase.add(Transparent3d { + info!("Queueing instanced mesh {:?}", entity); + phase.add( + Opaque3dBinKey { + draw_function: drawn_function, + pipeline, + asset_id: AssetId::::invalid().untyped(), + material_bind_group_id: None, + lightmap_image: None, + }, entity, - pipeline, - draw_function: draw_custom, - distance: rangefinder.distance_translation(&mesh_instance.translation), - batch_range: 0..1, - extra_index: PhaseItemExtraIndex::NONE, - }); + BinnedRenderPhaseType::NonMesh, + ); } } } #[derive(Component)] -struct InstanceBuffer { - buffer: Buffer, - length: usize, -} - -fn prepare_instance_buffers( - mut commands: Commands, - query: Query<(Entity, &InstanceMaterialData)>, - render_device: Res, -) { - for (entity, instance_data) in &query { - let buffer = render_device.create_buffer_with_data(&BufferInitDescriptor { - label: Some("instance data buffer"), - contents: bytemuck::cast_slice(instance_data.as_slice()), - usage: BufferUsages::VERTEX | BufferUsages::COPY_DST, - }); - commands.entity(entity).insert(InstanceBuffer { - buffer, - length: instance_data.len(), - }); - } -} +pub(crate) struct InstanceRange(pub Range); #[derive(Resource)] -struct InstancedDataPipeline { - shader: Handle, +struct InstancedDataPipeline { mesh_pipeline: MeshPipeline, + material_layout: BindGroupLayout, + vertex_shader: Option>, + fragment_shader: Option>, + marker: PhantomData, } -impl FromWorld for InstancedDataPipeline { +impl FromWorld for InstancedDataPipeline { fn from_world(world: &mut World) -> Self { - let mesh_pipeline = world.resource::(); + let asset_server = world.resource::(); + let render_device = world.resource::(); InstancedDataPipeline { - shader: SHADER_HANDLE, - mesh_pipeline: mesh_pipeline.clone(), + mesh_pipeline: world.resource::().clone(), + material_layout: M::bind_group_layout(render_device), + vertex_shader: match M::vertex_shader() { + ShaderRef::Default => None, + ShaderRef::Handle(handle) => Some(handle), + ShaderRef::Path(path) => Some(asset_server.load(path)), + }, + fragment_shader: match M::fragment_shader() { + ShaderRef::Default => None, + ShaderRef::Handle(handle) => Some(handle), + ShaderRef::Path(path) => Some(asset_server.load(path)), + }, + marker: PhantomData, } } } -impl SpecializedMeshPipeline for InstancedDataPipeline { - type Key = MeshPipelineKey; +impl SpecializedMeshPipeline for InstancedDataPipeline +where + M::Data: PartialEq + Eq + Hash + Clone, +{ + type Key = MaterialPipelineKey; fn specialize( &self, key: Self::Key, layout: &MeshVertexBufferLayoutRef, ) -> Result { - let mut descriptor = self.mesh_pipeline.specialize(key, layout)?; + let mut descriptor = self.mesh_pipeline.specialize(key.mesh_key, layout)?; + if let Some(vertex_shader) = &self.vertex_shader { + descriptor.vertex.shader = vertex_shader.clone(); + } - descriptor.vertex.shader = self.shader.clone(); - descriptor.vertex.buffers.push(VertexBufferLayout { - array_stride: std::mem::size_of::() as u64, - step_mode: VertexStepMode::Instance, - attributes: vec![ - VertexAttribute { - format: VertexFormat::Float32x4, - offset: 0, - shader_location: 3, // shader locations 0-2 are taken up by Position, Normal and UV attributes - }, - VertexAttribute { - format: VertexFormat::Float32x4, - offset: VertexFormat::Float32x4.size(), - shader_location: 4, - }, - ], - }); - descriptor.fragment.as_mut().unwrap().shader = self.shader.clone(); + if let Some(fragment_shader) = &self.fragment_shader { + descriptor.fragment.as_mut().unwrap().shader = fragment_shader.clone(); + } + + descriptor.layout.insert(2, self.material_layout.clone()); + + let pipeline = MaterialPipeline { + mesh_pipeline: self.mesh_pipeline.clone(), + material_layout: self.material_layout.clone(), + vertex_shader: self.vertex_shader.clone(), + fragment_shader: self.fragment_shader.clone(), + marker: Default::default(), + }; + M::specialize(&pipeline, &mut descriptor, layout, key)?; Ok(descriptor) } } -type DrawInstanced = ( +type DrawInstancedMaterial = ( SetItemPipeline, SetMeshViewBindGroup<0>, SetMeshBindGroup<1>, + SetMaterialBindGroup, DrawMeshInstanced, ); @@ -288,17 +271,16 @@ impl RenderCommand

for DrawMeshInstanced { SRes, ); type ViewQuery = (); - type ItemQuery = Read; + type ItemQuery = Read; #[inline] fn render<'w>( item: &P, _view: (), - instance_buffer: Option<&'w InstanceBuffer>, + instance_range: Option<&'w InstanceRange>, (meshes, render_mesh_instances, mesh_allocator): SystemParamItem<'w, '_, Self::Param>, pass: &mut TrackedRenderPass<'w>, ) -> RenderCommandResult { - // A borrow check workaround. let mesh_allocator = mesh_allocator.into_inner(); let Some(mesh_instance) = render_mesh_instances.render_mesh_queue_data(item.entity()) @@ -308,7 +290,7 @@ impl RenderCommand

for DrawMeshInstanced { let Some(gpu_mesh) = meshes.into_inner().get(mesh_instance.mesh_asset_id) else { return RenderCommandResult::Skip; }; - let Some(instance_buffer) = instance_buffer else { + let Some(instance_range) = instance_range else { return RenderCommandResult::Skip; }; let Some(vertex_buffer_slice) = @@ -318,7 +300,6 @@ impl RenderCommand

for DrawMeshInstanced { }; pass.set_vertex_buffer(0, vertex_buffer_slice.buffer.slice(..)); - pass.set_vertex_buffer(1, instance_buffer.buffer.slice(..)); match &gpu_mesh.buffer_info { RenderMeshBufferInfo::Indexed { @@ -335,11 +316,11 @@ impl RenderCommand

for DrawMeshInstanced { pass.draw_indexed( index_buffer_slice.range.start..(index_buffer_slice.range.start + count), vertex_buffer_slice.range.start as i32, - 0..instance_buffer.length as u32, + instance_range.0.clone(), ); } RenderMeshBufferInfo::NonIndexed => { - pass.draw(0..gpu_mesh.vertex_count, 0..instance_buffer.length as u32); + pass.draw(0..gpu_mesh.vertex_count, instance_range.0.clone()); } } RenderCommandResult::Success diff --git a/bevy_nannou_draw/src/draw/mod.rs b/bevy_nannou_draw/src/draw/mod.rs index 97a2a1a10..e4ca3846e 100644 --- a/bevy_nannou_draw/src/draw/mod.rs +++ b/bevy_nannou_draw/src/draw/mod.rs @@ -4,7 +4,7 @@ use std::any::{Any, TypeId}; use std::marker::PhantomData; -use std::ops::{Deref, DerefMut}; +use std::ops::{Deref, DerefMut, Range}; use std::sync::{Arc, RwLock}; use bevy::asset::UntypedAssetId; @@ -16,7 +16,7 @@ use bevy::utils::{HashMap, HashSet}; use lyon::path::PathEvent; use uuid::Uuid; -use crate::draw::instanced::{InstanceMaterialData, Instanced}; +use crate::draw::instanced::{Instanced}; use crate::draw::mesh::MeshExt; use crate::draw::render::RenderPrimitive; use crate::render::DefaultNannouMaterial; @@ -120,7 +120,7 @@ pub enum DrawCommand { /// Draw a primitive. Primitive(Primitive), /// Draw an instanced primitive - Instanced(Primitive, InstanceMaterialData), + Instanced(Primitive, Range), /// A change in the rendering context occurred. Context(DrawContext), /// A change in the material occurred. diff --git a/bevy_nannou_draw/src/draw/render/instancing.wgsl b/bevy_nannou_draw/src/draw/render/instancing.wgsl deleted file mode 100644 index 4957824a0..000000000 --- a/bevy_nannou_draw/src/draw/render/instancing.wgsl +++ /dev/null @@ -1,36 +0,0 @@ -#import bevy_pbr::mesh_functions::{get_world_from_local, mesh_position_local_to_clip} - -struct Vertex { - @location(0) position: vec3, - @location(1) normal: vec3, - @location(2) uv: vec2, - - @location(3) i_pos_scale: vec4, - @location(4) i_color: vec4, -}; - -struct VertexOutput { - @builtin(position) clip_position: vec4, - @location(0) color: vec4, -}; - -@vertex -fn vertex(vertex: Vertex) -> VertexOutput { - let position = vertex.position * vertex.i_pos_scale.w + vertex.i_pos_scale.xyz; - var out: VertexOutput; - // NOTE: Passing 0 as the instance_index to get_model_matrix() is a hack - // for this example as the instance_index builtin would map to the wrong - // index in the Mesh array. This index could be passed in via another - // uniform instead but it's unnecessary for the example. - out.clip_position = mesh_position_local_to_clip( - get_world_from_local(0u), - vec4(position, 1.0) - ); - out.color = vec4(1.0, 0.0, 0.0, 1.0); - return out; -} - -@fragment -fn fragment(in: VertexOutput) -> @location(0) vec4 { - return in.color; -} diff --git a/bevy_nannou_draw/src/render.rs b/bevy_nannou_draw/src/render.rs index ebc5c40bf..43372767d 100644 --- a/bevy_nannou_draw/src/render.rs +++ b/bevy_nannou_draw/src/render.rs @@ -3,13 +3,15 @@ use std::hash::Hash; use std::ops::{Deref, DerefMut}; use bevy::asset::UntypedAssetId; -use bevy::pbr::MaterialExtension; +use bevy::pbr::{MaterialExtension, MaterialPipeline, PreparedMaterial}; use bevy::prelude::*; use bevy::render::camera::RenderTarget; use bevy::render::extract_component::{ExtractComponent, ExtractComponentPlugin}; +use bevy::render::extract_instances::ExtractInstancesPlugin; use bevy::render::extract_resource::{ExtractResource, ExtractResourcePlugin}; -use bevy::render::render_resource as wgpu; -use bevy::render::render_resource::{AsBindGroup, BlendState, PolygonMode}; +use bevy::render::render_asset::RenderAssetPlugin; +use bevy::render::{render_resource as wgpu, RenderApp}; +use bevy::render::render_resource::{AsBindGroup, BlendState, PolygonMode, SpecializedMeshPipelines}; use bevy::render::view::{NoFrustumCulling, RenderLayers}; use bevy::window::WindowRef; use lyon::lyon_tessellation::{FillTessellator, StrokeTessellator}; @@ -19,7 +21,6 @@ pub use nightly::*; #[cfg(not(feature = "nightly"))] pub use stable::*; -use crate::draw::instanced::InstancingPlugin; use crate::draw::mesh::MeshExt; use crate::draw::render::{RenderContext, RenderPrimitive}; use crate::draw::{DrawCommand, DrawContext}; @@ -33,7 +34,6 @@ impl Plugin for NannouRenderPlugin { .add_plugins(( ExtractComponentPlugin::::default(), NannouMaterialPlugin::::default(), - InstancingPlugin, )) .add_plugins(ExtractResourcePlugin::::default()) .add_systems(Update, texture_event_handler) @@ -44,12 +44,13 @@ impl Plugin for NannouRenderPlugin { #[derive(Default)] pub struct NannouMaterialPlugin(std::marker::PhantomData); -impl Plugin for NannouMaterialPlugin +impl Plugin for NannouMaterialPlugin where + M: Material + Default, M::Data: PartialEq + Eq + Hash + Clone, { fn build(&self, app: &mut App) { - app.add_plugins(MaterialPlugin::::default()) + app.add_plugins((MaterialPlugin::::default(),)) .add_systems(PostUpdate, update_material::.after(update_draw_mesh)); } } @@ -311,6 +312,7 @@ fn update_draw_mesh( let mut fill_tessellator = FillTessellator::new(); let mut stroke_tessellator = StrokeTessellator::new(); + let mut last_mat = None; let mut mesh = meshes.add(Mesh::init()); let mut curr_ctx: DrawContext = Default::default(); @@ -339,7 +341,7 @@ fn update_draw_mesh( let mut mesh = meshes.get_mut(&mesh).unwrap(); prim.render_primitive(ctxt, &mut mesh); } - DrawCommand::Instanced(prim, instance_data) => { + DrawCommand::Instanced(prim, range) => { let ctxt = RenderContext { intermediary_mesh: &intermediary_state.intermediary_mesh, path_event_buffer: &intermediary_state.path_event_buffer, @@ -356,22 +358,30 @@ fn update_draw_mesh( // Render the primitive. let mut mesh = Mesh::init(); prim.render_primitive(ctxt, &mut mesh); - mesh = mesh.with_removed_attribute(Mesh::ATTRIBUTE_COLOR); let mesh = meshes.add(mesh); - commands.spawn(( - NannouMesh, - mesh, - SpatialBundle::INHERITED_IDENTITY, - instance_data, - NoFrustumCulling, - window_layers.clone(), - )); + let mat_id = last_mat.expect("No material set for instanced draw command"); + // TODO: off by one??? + for _ in range.start..range.end-1 { + commands.spawn(( + UntypedMaterialId(mat_id), + mesh.clone(), + Transform::default(), + GlobalTransform::default(), + Visibility::default(), + InheritedVisibility::default(), + ViewVisibility::default(), + NannouMesh, + NoFrustumCulling, + window_layers.clone(), + )); + } } DrawCommand::Context(ctx) => { curr_ctx = ctx; } DrawCommand::Material(mat_id) => { // We switched materials, so start rendering into a new mesh + last_mat = Some(mat_id.clone()); mesh = meshes.add(Mesh::init()); commands.spawn(( UntypedMaterialId(mat_id), diff --git a/examples/assets/shaders/particle_mouse_compute.wgsl b/examples/assets/shaders/particle_mouse_compute.wgsl index b53eff11f..bf6ab364c 100644 --- a/examples/assets/shaders/particle_mouse_compute.wgsl +++ b/examples/assets/shaders/particle_mouse_compute.wgsl @@ -6,7 +6,8 @@ struct Particle { @group(0) @binding(0) var particles: array; @group(0) @binding(1) var mouse: vec2; -@group(0) @binding(2) var resolution: vec2; +@group(0) @binding(2) var attract_strength: f32; +@group(0) @binding(3) var particle_count: u32; fn random(seed: vec2) -> f32 { return fract(sin(dot(seed, vec2(12.9898, 78.233))) * 43758.5453); @@ -15,27 +16,25 @@ fn random(seed: vec2) -> f32 { @compute @workgroup_size(64) fn init(@builtin(global_invocation_id) global_id: vec3) { let index = global_id.x; + if (index >= particle_count) { + return; + } + var particle: Particle; - // Initialize position randomly within the window + // Initialize position randomly within clip space (-1 to 1) particle.position = vec2( - (random(vec2(f32(index), 0.0)) - 0.5) * resolution.x, - (random(vec2(0.0, f32(index))) - 0.5) * resolution.y + random(vec2(f32(index), 0.0)) * 2.0 - 1.0, + random(vec2(0.0, f32(index))) * 2.0 - 1.0 ); - // Initialize velocity randomly + // Initialize velocity (in clip space, so use smaller values) particle.velocity = vec2( - (random(vec2(f32(index), 1.0)) - 0.5) * 0.1, - (random(vec2(1.0, f32(index))) - 0.5) * 0.1 + (random(vec2(f32(index), 1.0)) - 0.5) * 0.002, + (random(vec2(1.0, f32(index))) - 0.5) * 0.002 ); - // Initialize color randomly - particle.color = vec4( - random(vec2(f32(index), 2.0)), - random(vec2(2.0, f32(index))), - random(vec2(f32(index), 3.0)), - 1.0 - ); + particle.color = vec4(0.0, 0.0, 0.0, 0.0); particles[index] = particle; } @@ -43,6 +42,10 @@ fn init(@builtin(global_invocation_id) global_id: vec3) { @compute @workgroup_size(64) fn update(@builtin(global_invocation_id) global_id: vec3) { let index = global_id.x; + if (index >= particle_count) { + return; + } + var particle = particles[index]; // Update particle position @@ -50,7 +53,7 @@ fn update(@builtin(global_invocation_id) global_id: vec3) { // Attract particles to mouse let to_mouse = mouse - particle.position; - particle.velocity = particle.velocity + normalize(to_mouse) * 0.0001; + particle.velocity = particle.velocity + (normalize(to_mouse) * 0.00001 * attract_strength); // Bounce off screen edges if (particle.position.x < -1.0 || particle.position.x > 1.0) { @@ -60,8 +63,16 @@ fn update(@builtin(global_invocation_id) global_id: vec3) { particle.velocity.y = -particle.velocity.y; } + // Keep particles within bounds + particle.position = clamp(particle.position, vec2(-1.0), vec2(1.0)); + // Limit velocity to prevent particles from becoming too energetic + particle.velocity = clamp(particle.velocity, vec2(-0.01), vec2(0.01)); + // Update color based on velocity - particle.color = vec4(abs(particle.velocity), 1.0, 1.0); + particle.color = vec4(abs(particle.velocity) * 100.0, 1.0, 1.0); + if (index == 0) { + particle.color = vec4(1.0, 0.0, 0.0, 1.0); // Red for first particle + } particles[index] = particle; -} +} \ No newline at end of file diff --git a/examples/assets/shaders/particle_mouse_material.wgsl b/examples/assets/shaders/particle_mouse_material.wgsl index d1e073388..04ae8304c 100644 --- a/examples/assets/shaders/particle_mouse_material.wgsl +++ b/examples/assets/shaders/particle_mouse_material.wgsl @@ -1,5 +1,8 @@ -#import bevy_pbr::mesh_functions::{get_world_from_local, mesh_position_local_to_clip} -#import bevy_pbr::forward_io::{Vertex} +#import bevy_pbr::{ + forward_io::{Vertex} + mesh_functions::{get_world_from_local, mesh_position_local_to_clip, mesh_position_local_to_world} + view_transformations::{position_world_to_clip} +} struct Particle { position: vec2, @@ -18,16 +21,23 @@ struct VertexOutput { fn vertex(vertex: Vertex) -> VertexOutput { let particle = particles[vertex.instance_index]; var out: VertexOutput; - let position = vec4(particle.position, 0.0, 1.0);; - out.clip_position = mesh_position_local_to_clip( - get_world_from_local(0u), - position - ); - out.color = particle.color; + if (vertex.instance_index == 100) { + out.clip_position = vec4(particle.position, 0.0, 1.0); + out.color = vec4(1.0, 0.0, 0.0, 1.0); // Red color for visibility + } else { + out.clip_position = mesh_position_local_to_clip( + get_world_from_local(vertex.instance_index), + vec4(vertex.position, 1.0) + ) + vec4(particle.position, 0.0, 0.0); + out.color = particle.color; + } + return out; } + + @fragment fn fragment(in: VertexOutput) -> @location(0) vec4 { return in.color; diff --git a/examples/compute/game_of_life.rs b/examples/compute/game_of_life.rs index 3dfbff27e..d4853d41a 100644 --- a/examples/compute/game_of_life.rs +++ b/examples/compute/game_of_life.rs @@ -1,6 +1,7 @@ mod particle_mouse; use nannou::prelude::*; +use nannou::prelude::bevy_render::texture::{ImageSampler, ImageSamplerDescriptor}; const DISPLAY_FACTOR: u32 = 4; const SIZE: (u32, u32) = (1280 / DISPLAY_FACTOR, 720 / DISPLAY_FACTOR); @@ -49,7 +50,7 @@ impl Compute for ComputeModel { } } - fn workgroup_size(state: &Self::State) -> (u32, u32, u32) { + fn dispatch_size(state: &Self::State) -> (u32, u32, u32) { (SIZE.0 / WORKGROUP_SIZE, SIZE.1 / WORKGROUP_SIZE, 1) } } @@ -74,7 +75,7 @@ fn model(app: &App) -> Model { ); image.texture_descriptor.usage = TextureUsages::COPY_DST | TextureUsages::STORAGE_BINDING | TextureUsages::TEXTURE_BINDING; - + image.sampler = ImageSampler::Descriptor(ImageSamplerDescriptor::nearest()); let image0 = app.assets_mut().add(image.clone()); let image1 = app.assets_mut().add(image); Model { diff --git a/examples/compute/particle_mouse.rs b/examples/compute/particle_mouse.rs index ffc992b5f..451f70a0c 100644 --- a/examples/compute/particle_mouse.rs +++ b/examples/compute/particle_mouse.rs @@ -7,11 +7,31 @@ const NUM_PARTICLES: u32 = 1000; const WORKGROUP_SIZE: u32 = 64; fn main() { - nannou::app(model).compute(compute).update(update).run(); + nannou::app(model) + .compute(compute) + .update(update) + .init_custom_material::() + .run(); +} + +pub enum Shape { + Circle, + Square, + Triangle, } struct Model { particles: Handle, + shape: Shape, + attract_strength: f32, +} + +impl Model { + fn material(&self) -> ParticleMaterial { + ParticleMaterial { + particles: self.particles.clone(), + } + } } #[repr(C)] @@ -36,14 +56,16 @@ struct ComputeModel { #[uniform(1)] mouse: Vec2, #[uniform(2)] - resolution: Vec2, + attract_strength: f32, + #[uniform(3)] + particle_count: u32, } impl Compute for ComputeModel { type State = State; fn shader() -> ShaderRef { - "shaders/particle_mouse.wgsl".into() + "shaders/particle_mouse_compute.wgsl".into() } fn entry(state: &Self::State) -> &'static str { @@ -53,24 +75,24 @@ impl Compute for ComputeModel { } } - fn workgroup_size(_state: &Self::State) -> (u32, u32, u32) { - (WORKGROUP_SIZE, 1, 1) + fn dispatch_size(_state: &Self::State) -> (u32, u32, u32) { + ((NUM_PARTICLES + WORKGROUP_SIZE - 1) / WORKGROUP_SIZE, 1, 1) } } #[derive(AsBindGroup, Asset, TypePath, Clone, Default)] -struct DrawMaterial { - #[storage(0, visibility(vertex))] +struct ParticleMaterial { + #[storage(0, read_only, visibility(vertex))] particles: Handle, } -impl Material for DrawMaterial { +impl Material for ParticleMaterial { fn vertex_shader() -> ShaderRef { - "shaders/particle_mouse.wgsl".into() + "shaders/particle_mouse_material.wgsl".into() } fn fragment_shader() -> ShaderRef { - "shaders/particle_mouse.wgsl".into() + "shaders/particle_mouse_material.wgsl".into() } } @@ -85,18 +107,42 @@ fn model(app: &App) -> Model { // Create a buffer to store the particles. let particle_size = Particle::min_size().get() as usize; let mut particles = ShaderStorageBuffer::with_size( - NUM_PARTICLES as usize * particle_size, + NUM_PARTICLES as usize * particle_size * 2, RenderAssetUsages::RENDER_WORLD, ); + particles.buffer_description.label = Some("particles"); particles.buffer_description.usage |= BufferUsages::STORAGE | BufferUsages::VERTEX; - let particles = app.assets_mut().add(particles.clone()); + let particles = app.assets_mut().add(particles); - Model { particles } + Model { + particles, + shape: Shape::Circle, + attract_strength: 1.0, + } } fn update(app: &App, model: &mut Model) { - + if app.keys().just_pressed(KeyCode::ArrowLeft) { + match model.shape { + Shape::Circle => model.shape = Shape::Square, + Shape::Square => model.shape = Shape::Triangle, + Shape::Triangle => model.shape = Shape::Circle, + } + } + if app.keys().just_pressed(KeyCode::ArrowRight) { + match model.shape { + Shape::Circle => model.shape = Shape::Triangle, + Shape::Square => model.shape = Shape::Circle, + Shape::Triangle => model.shape = Shape::Square, + } + } + if app.keys().just_pressed(KeyCode::ArrowUp) { + model.attract_strength += 1.0; + } + if app.keys().just_pressed(KeyCode::ArrowDown) { + model.attract_strength -= 1.0; + } } fn compute(app: &App, model: &Model, state: State, view: Entity) -> (State, ComputeModel) { @@ -104,10 +150,16 @@ fn compute(app: &App, model: &Model, state: State, view: Entity) -> (State, Comp let window_rect = window.rect(); let mouse_pos = app.mouse(); + let mouse_norm = Vec2::new( + mouse_pos.x / window_rect.w() * 2.0, + mouse_pos.y / window_rect.h() * 2.0, + ); + let compute_model = ComputeModel { particles: model.particles.clone(), - mouse: mouse_pos, - resolution: Vec2::new(window_rect.w(), window_rect.h()), + mouse: mouse_norm, + attract_strength: model.attract_strength, + particle_count: NUM_PARTICLES, }; match state { @@ -117,13 +169,34 @@ fn compute(app: &App, model: &Model, state: State, view: Entity) -> (State, Comp } fn view(app: &App, model: &Model) { - let draw = app.draw().material(DrawMaterial { - particles: model.particles.clone(), - }); - draw.background().color(BLACK); + let draw = app.draw(); + draw.background().color(GRAY); - for _ in 0..NUM_PARTICLES { - draw.rect() - .w_h(1.0, 1.0); + let draw = draw.material(model.material()); + match model.shape { + Shape::Circle => { + draw_particles_circle(&draw); + } + Shape::Square => { + draw_particles_square(&draw); + } + Shape::Triangle => { + draw_particles_triangle(&draw); + } } } + +fn draw_particles_circle(draw: &Draw) { + draw.instanced() + .with(draw.ellipse().w_h(5.0, 5.0), 0..NUM_PARTICLES); +} + +fn draw_particles_square(draw: &Draw) { + draw.instanced() + .with(draw.rect().w_h(5.0, 5.0), 0..NUM_PARTICLES); +} + +fn draw_particles_triangle(draw: &Draw) { + draw.instanced() + .with(draw.tri().w_h(5.0, 5.0), 0..NUM_PARTICLES); +} diff --git a/nannou/src/render/compute.rs b/nannou/src/render/compute.rs index 603bbdf8a..bf13a22e7 100644 --- a/nannou/src/render/compute.rs +++ b/nannou/src/render/compute.rs @@ -87,9 +87,9 @@ where .add_render_graph_edges( Core3d, ( - Node3d::StartMainPass, + Node3d::EndPrepasses, NannouComputeNodeLabel, - Node3d::MainOpaquePass, + Node3d::StartMainPass, ), ); } @@ -123,16 +123,15 @@ fn sync_pipeline_cache( } fn queue_pipeline( - mut commands: Commands, pipeline: Res>, mut pipelines: ResMut>>, pipeline_cache: Res, mut pipeline_ids: ResMut>, - views_q: Query<(Entity, &ComputeState)>, + views_q: Query<&ComputeState>, ) where CM: Compute, { - for (entity, state) in views_q.iter() { + for state in views_q.iter() { if !pipeline_ids.contains_key(&state.current) { let pipeline_id = pipelines.specialize( &pipeline_cache, @@ -162,21 +161,16 @@ fn queue_pipeline( fn prepare_bind_group( mut commands: Commands, pipeline: Res>, - gpu_images: Res>, render_device: Res, views_q: Query<(Entity, &ComputeModel)>, - mut params: StaticSystemParam, + mut bind_group_param: StaticSystemParam, ) where CM: Compute, { for (view, compute_model) in views_q.iter() { let bind_group = compute_model .0 - .as_bind_group( - &pipeline.layout, - &render_device, - &mut params, - ) + .as_bind_group(&pipeline.layout, &render_device, &mut bind_group_param) .expect("Failed to create bind group"); commands .entity(view) @@ -265,7 +259,7 @@ impl FromWorld for NannouComputeNode where CM: Compute, { - fn from_world(world: &mut World) -> Self { + fn from_world(_world: &mut World) -> Self { Self(std::marker::PhantomData) } } @@ -274,24 +268,20 @@ impl ViewNode for NannouComputeNode where CM: Compute, { - type ViewQuery = ( - Entity, - &'static ComputeBindGroup, - &'static ComputeState, - ); + type ViewQuery = (&'static ComputeBindGroup, &'static ComputeState); fn run<'w>( &self, _graph: &mut RenderGraphContext, render_context: &mut RenderContext<'w>, - (view_entity, bind_group, state): QueryItem<'w, Self::ViewQuery>, + (bind_group, state): QueryItem<'w, Self::ViewQuery>, world: &'w World, ) -> Result<(), NodeRunError> { let pipeline_cache = world.resource::(); let pipeline_ids = world.resource::>(); - let pipeline_id = pipeline_ids - .get(&state.current) - .expect("Pipeline not found"); + let Some(pipeline_id) = pipeline_ids.get(&state.current) else { + return Ok(()); + }; let Some(pipeline) = pipeline_cache.get_compute_pipeline(*pipeline_id) else { return Ok(()); }; @@ -300,7 +290,7 @@ where .begin_compute_pass(&ComputePassDescriptor::default()); pass.set_bind_group(0, &bind_group.0, &[]); pass.set_pipeline(pipeline); - let (x, y, z) = CM::workgroup_size(&state.current); + let (x, y, z) = CM::dispatch_size(&state.current); pass.dispatch_workgroups(x, y, z); Ok(()) } @@ -319,8 +309,8 @@ pub trait Compute: AsBindGroup + Clone + Send + Sync + 'static { "main" } - /// The workgroup size used to dispatch the compute pass. - fn workgroup_size(_state: &Self::State) -> (u32, u32, u32) { + /// The size used to dispatch the compute pass. + fn dispatch_size(_state: &Self::State) -> (u32, u32, u32) { (1, 1, 1) } }