From 7b1c9f192e0bde85d8b563d5f03e50616f498e2f Mon Sep 17 00:00:00 2001 From: Joona Aalto Date: Tue, 6 May 2025 18:18:03 +0300 Subject: [PATCH] Adopt consistent `FooSystems` naming convention for system sets (#18900) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Objective Fixes a part of #14274. Bevy has an incredibly inconsistent naming convention for its system sets, both internally and across the ecosystem. System sets in Bevy *Names of public system set types in Bevy* Most Bevy types use a naming of `FooSystem` or just `Foo`, but there are also a few `FooSystems` and `FooSet` types. In ecosystem crates on the other hand, `FooSet` is perhaps the most commonly used name in general. Conventions being so wildly inconsistent can make it harder for users to pick names for their own types, to search for system sets on docs.rs, or to even discern which types *are* system sets. To reign in the inconsistency a bit and help unify the ecosystem, it would be good to establish a common recommended naming convention for system sets in Bevy itself, similar to how plugins are commonly suffixed with `Plugin` (ex: `TimePlugin`). By adopting a consistent naming convention in first-party Bevy, we can softly nudge ecosystem crates to follow suit (for types where it makes sense to do so). Choosing a naming convention is also relevant now, as the [`bevy_cli` recently adopted lints](https://github.com/TheBevyFlock/bevy_cli/pull/345) to enforce naming for plugins and system sets, and the recommended naming used for system sets is still a bit open. ## Which Name To Use? Now the contentious part: what naming convention should we actually adopt? This was discussed on the Bevy Discord at the end of last year, starting [here](). `FooSet` and `FooSystems` were the clear favorites, with `FooSet` very narrowly winning an unofficial poll. However, it seems to me like the consensus was broadly moving towards `FooSystems` at the end and after the poll, with Cart ([source](https://discord.com/channels/691052431525675048/692572690833473578/1311140204974706708)) and later Alice ([source](https://discord.com/channels/691052431525675048/692572690833473578/1311092530732859533)) and also me being in favor of it. Let's do a quick pros and cons list! Of course these are just what I thought of, so take it with a grain of salt. `FooSet`: - Pro: Nice and short! - Pro: Used by many ecosystem crates. - Pro: The `Set` suffix comes directly from the trait name `SystemSet`. - Pro: Pairs nicely with existing APIs like `in_set` and `configure_sets`. - Con: `Set` by itself doesn't actually indicate that it's related to systems *at all*, apart from the implemented trait. A set of what? - Con: Is `FooSet` a set of `Foo`s or a system set related to `Foo`? Ex: `ContactSet`, `MeshSet`, `EnemySet`... `FooSystems`: - Pro: Very clearly indicates that the type represents a collection of systems. The actual core concept, system(s), is in the name. - Pro: Parallels nicely with `FooPlugins` for plugin groups. - Pro: Low risk of conflicts with other names or misunderstandings about what the type is. - Pro: In most cases, reads *very* nicely and clearly. Ex: `PhysicsSystems` and `AnimationSystems` as opposed to `PhysicsSet` and `AnimationSet`. - Pro: Easy to search for on docs.rs. - Con: Usually results in longer names. - Con: Not yet as widely used. Really the big problem with `FooSet` is that it doesn't actually describe what it is. It describes what *kind of thing* it is (a set of something), but not *what it is a set of*, unless you know the type or check its docs or implemented traits. `FooSystems` on the other hand is much more self-descriptive in this regard, at the cost of being a bit longer to type. Ultimately, in some ways it comes down to preference and how you think of system sets. Personally, I was originally in favor of `FooSet`, but have been increasingly on the side of `FooSystems`, especially after seeing what the new names would actually look like in Avian and now Bevy. I prefer it because it usually reads better, is much more clearly related to groups of systems than `FooSet`, and overall *feels* more correct and natural to me in the long term. For these reasons, and because Alice and Cart also seemed to share a preference for it when it was previously being discussed, I propose that we adopt a `FooSystems` naming convention where applicable. ## Solution Rename Bevy's system set types to use a consistent `FooSet` naming where applicable. - `AccessibilitySystem` → `AccessibilitySystems` - `GizmoRenderSystem` → `GizmoRenderSystems` - `PickSet` → `PickingSystems` - `RunFixedMainLoopSystem` → `RunFixedMainLoopSystems` - `TransformSystem` → `TransformSystems` - `RemoteSet` → `RemoteSystems` - `RenderSet` → `RenderSystems` - `SpriteSystem` → `SpriteSystems` - `StateTransitionSteps` → `StateTransitionSystems` - `RenderUiSystem` → `RenderUiSystems` - `UiSystem` → `UiSystems` - `Animation` → `AnimationSystems` - `AssetEvents` → `AssetEventSystems` - `TrackAssets` → `AssetTrackingSystems` - `UpdateGizmoMeshes` → `GizmoMeshSystems` - `InputSystem` → `InputSystems` - `InputFocusSet` → `InputFocusSystems` - `ExtractMaterialsSet` → `MaterialExtractionSystems` - `ExtractMeshesSet` → `MeshExtractionSystems` - `RumbleSystem` → `RumbleSystems` - `CameraUpdateSystem` → `CameraUpdateSystems` - `ExtractAssetsSet` → `AssetExtractionSystems` - `Update2dText` → `Text2dUpdateSystems` - `TimeSystem` → `TimeSystems` - `AudioPlaySet` → `AudioPlaybackSystems` - `SendEvents` → `EventSenderSystems` - `EventUpdates` → `EventUpdateSystems` A lot of the names got slightly longer, but they are also a lot more consistent, and in my opinion the majority of them read much better. For a few of the names I took the liberty of rewording things a bit; definitely open to any further naming improvements. There are still also cases where the `FooSystems` naming doesn't really make sense, and those I left alone. This primarily includes system sets like `Interned`, `EnterSchedules`, `ExitSchedules`, or `TransitionSchedules`, where the type has some special purpose and semantics. ## Todo - [x] Should I keep all the old names as deprecated type aliases? I can do this, but to avoid wasting work I'd prefer to first reach consensus on whether these renames are even desired. - [x] Migration guide - [x] Release notes --- crates/bevy_a11y/src/lib.rs | 6 +- crates/bevy_animation/src/lib.rs | 12 +-- .../src/contrast_adaptive_sharpening/mod.rs | 4 +- crates/bevy_anti_aliasing/src/fxaa/mod.rs | 7 +- crates/bevy_anti_aliasing/src/smaa/mod.rs | 10 +-- crates/bevy_anti_aliasing/src/taa/mod.rs | 8 +- crates/bevy_app/src/app.rs | 2 +- crates/bevy_app/src/lib.rs | 2 +- crates/bevy_app/src/main_schedule.rs | 34 +++++--- crates/bevy_asset/src/asset_changed.rs | 29 ++++--- crates/bevy_asset/src/lib.rs | 24 ++++-- crates/bevy_audio/src/lib.rs | 13 +-- .../src/auto_exposure/mod.rs | 6 +- crates/bevy_core_pipeline/src/bloom/mod.rs | 10 +-- crates/bevy_core_pipeline/src/core_2d/mod.rs | 6 +- crates/bevy_core_pipeline/src/core_3d/mod.rs | 14 ++-- .../src/deferred/copy_lighting_id.rs | 4 +- crates/bevy_core_pipeline/src/dof/mod.rs | 8 +- .../src/experimental/mip_generation/mod.rs | 6 +- .../bevy_core_pipeline/src/motion_blur/mod.rs | 4 +- .../bevy_core_pipeline/src/msaa_writeback.rs | 4 +- crates/bevy_core_pipeline/src/oit/mod.rs | 4 +- .../bevy_core_pipeline/src/oit/resolve/mod.rs | 6 +- .../src/post_process/mod.rs | 4 +- crates/bevy_core_pipeline/src/skybox/mod.rs | 10 +-- .../bevy_core_pipeline/src/tonemapping/mod.rs | 4 +- .../bevy_core_pipeline/src/upscaling/mod.rs | 4 +- crates/bevy_dev_tools/src/ci_testing/mod.rs | 6 +- crates/bevy_dev_tools/src/picking_debug.rs | 8 +- crates/bevy_ecs/examples/change_detection.rs | 12 +-- crates/bevy_ecs/examples/events.rs | 6 +- crates/bevy_ecs/src/event/mod.rs | 7 +- crates/bevy_ecs/src/event/update.rs | 6 +- crates/bevy_ecs/src/schedule/mod.rs | 83 ++++++++++--------- crates/bevy_gilrs/src/lib.rs | 12 ++- crates/bevy_gizmos/src/aabb.rs | 4 +- crates/bevy_gizmos/src/gizmos.rs | 2 +- crates/bevy_gizmos/src/lib.rs | 28 ++++--- crates/bevy_gizmos/src/light.rs | 4 +- crates/bevy_gizmos/src/pipeline_2d.rs | 10 +-- crates/bevy_gizmos/src/pipeline_3d.rs | 10 +-- crates/bevy_input/src/lib.rs | 14 ++-- crates/bevy_input_focus/src/lib.rs | 10 ++- crates/bevy_pbr/src/atmosphere/mod.rs | 12 +-- crates/bevy_pbr/src/decal/clustered.rs | 9 +- crates/bevy_pbr/src/deferred/mod.rs | 4 +- crates/bevy_pbr/src/lib.rs | 28 +++---- crates/bevy_pbr/src/light_probe/mod.rs | 4 +- crates/bevy_pbr/src/lightmap/mod.rs | 9 +- crates/bevy_pbr/src/material.rs | 31 ++++--- crates/bevy_pbr/src/meshlet/mod.rs | 10 +-- crates/bevy_pbr/src/prepass/mod.rs | 12 +-- crates/bevy_pbr/src/render/fog.rs | 4 +- crates/bevy_pbr/src/render/gpu_preprocess.rs | 8 +- crates/bevy_pbr/src/render/mesh.rs | 38 +++++---- crates/bevy_pbr/src/ssao/mod.rs | 8 +- crates/bevy_pbr/src/ssr/mod.rs | 6 +- crates/bevy_pbr/src/volumetric_fog/mod.rs | 8 +- crates/bevy_pbr/src/wireframe.rs | 10 +-- crates/bevy_picking/src/backend.rs | 4 +- crates/bevy_picking/src/events.rs | 2 +- crates/bevy_picking/src/input.rs | 4 +- crates/bevy_picking/src/lib.rs | 30 ++++--- crates/bevy_picking/src/mesh_picking/mod.rs | 4 +- crates/bevy_remote/src/lib.rs | 12 ++- .../src/batching/gpu_preprocessing.rs | 6 +- crates/bevy_render/src/camera/mod.rs | 4 +- crates/bevy_render/src/camera/projection.rs | 18 ++-- crates/bevy_render/src/extract_component.rs | 6 +- crates/bevy_render/src/globals.rs | 4 +- .../src/gpu_component_array_buffer.rs | 4 +- crates/bevy_render/src/gpu_readback.rs | 8 +- crates/bevy_render/src/lib.rs | 32 +++---- crates/bevy_render/src/mesh/allocator.rs | 4 +- crates/bevy_render/src/mesh/mod.rs | 4 +- crates/bevy_render/src/pipelined_rendering.rs | 2 +- crates/bevy_render/src/render_asset.rs | 16 ++-- crates/bevy_render/src/render_phase/mod.rs | 24 +++--- .../src/render_resource/pipeline_cache.rs | 8 +- crates/bevy_render/src/texture/mod.rs | 4 +- crates/bevy_render/src/view/mod.rs | 10 +-- crates/bevy_render/src/view/visibility/mod.rs | 4 +- .../bevy_render/src/view/visibility/range.rs | 4 +- crates/bevy_render/src/view/window/mod.rs | 4 +- .../bevy_render/src/view/window/screenshot.rs | 4 +- crates/bevy_sprite/src/lib.rs | 26 +++--- crates/bevy_sprite/src/mesh2d/material.rs | 10 +-- crates/bevy_sprite/src/mesh2d/mesh.rs | 22 ++--- crates/bevy_sprite/src/mesh2d/wireframe2d.rs | 10 +-- crates/bevy_sprite/src/picking_backend.rs | 2 +- crates/bevy_state/src/app.rs | 10 +-- .../src/state/freely_mutable_state.rs | 8 +- crates/bevy_state/src/state/state_set.rs | 34 ++++---- crates/bevy_state/src/state/transitions.rs | 14 ++-- crates/bevy_state/src/state_scoped_events.rs | 2 +- crates/bevy_text/src/lib.rs | 24 +++--- crates/bevy_time/src/fixed.rs | 2 +- crates/bevy_time/src/lib.rs | 12 ++- .../src/components/global_transform.rs | 6 +- .../src/components/transform.rs | 6 +- crates/bevy_transform/src/lib.rs | 4 +- crates/bevy_transform/src/plugins.rs | 12 ++- crates/bevy_ui/src/accessibility.rs | 6 +- crates/bevy_ui/src/lib.rs | 73 ++++++++-------- crates/bevy_ui/src/picking_backend.rs | 2 +- crates/bevy_ui/src/render/box_shadow.rs | 10 +-- crates/bevy_ui/src/render/mod.rs | 52 ++++++------ .../src/render/ui_material_pipeline.rs | 8 +- .../src/render/ui_texture_slice_pipeline.rs | 8 +- crates/bevy_ui/src/ui_node.rs | 2 +- crates/bevy_winit/src/accessibility.rs | 4 +- examples/2d/2d_viewport_to_world.rs | 5 +- examples/2d/mesh2d_manual.rs | 7 +- examples/3d/occlusion_culling.rs | 5 +- examples/app/headless_renderer.rs | 9 +- examples/ecs/ecs_guide.rs | 15 ++-- .../movement/physics_in_fixed_timestep.rs | 8 +- .../shader/compute_shader_game_of_life.rs | 4 +- examples/shader/custom_phase_item.rs | 6 +- examples/shader/custom_render_phase.rs | 8 +- examples/shader/custom_shader_instancing.rs | 6 +- examples/shader/gpu_readback.rs | 4 +- examples/shader/specialized_mesh_pipeline.rs | 7 +- examples/stress_tests/many_lights.rs | 7 +- .../system_set_naming_convention.md | 36 ++++++++ .../system_set_naming_convention.md | 50 +++++++++++ 126 files changed, 835 insertions(+), 605 deletions(-) create mode 100644 release-content/migration-guides/system_set_naming_convention.md create mode 100644 release-content/release-notes/system_set_naming_convention.md diff --git a/crates/bevy_a11y/src/lib.rs b/crates/bevy_a11y/src/lib.rs index 910ec3ca35..94468c148c 100644 --- a/crates/bevy_a11y/src/lib.rs +++ b/crates/bevy_a11y/src/lib.rs @@ -137,11 +137,15 @@ impl From for AccessibilityNode { all(feature = "bevy_reflect", feature = "serialize"), reflect(Serialize, Deserialize, Clone) )] -pub enum AccessibilitySystem { +pub enum AccessibilitySystems { /// Update the accessibility tree Update, } +/// Deprecated alias for [`AccessibilitySystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `AccessibilitySystems`.")] +pub type AccessibilitySystem = AccessibilitySystems; + /// Plugin managing non-GUI aspects of integrating with accessibility APIs. #[derive(Default)] pub struct AccessibilityPlugin; diff --git a/crates/bevy_animation/src/lib.rs b/crates/bevy_animation/src/lib.rs index 43ea343aa3..21ea15f96f 100644 --- a/crates/bevy_animation/src/lib.rs +++ b/crates/bevy_animation/src/lib.rs @@ -31,14 +31,14 @@ use crate::{ prelude::EvaluatorId, }; -use bevy_app::{Animation, App, Plugin, PostUpdate}; -use bevy_asset::{Asset, AssetApp, AssetEvents, Assets}; +use bevy_app::{AnimationSystems, App, Plugin, PostUpdate}; +use bevy_asset::{Asset, AssetApp, AssetEventSystems, Assets}; use bevy_ecs::{prelude::*, world::EntityMutExcept}; use bevy_math::FloatOrd; use bevy_platform::{collections::HashMap, hash::NoOpHash}; use bevy_reflect::{prelude::ReflectDefault, Reflect, TypePath}; use bevy_time::Time; -use bevy_transform::TransformSystem; +use bevy_transform::TransformSystems; use bevy_utils::{PreHashMap, PreHashMapExt, TypeIdMap}; use petgraph::graph::NodeIndex; use serde::{Deserialize, Serialize}; @@ -1244,7 +1244,7 @@ impl Plugin for AnimationPlugin { .add_systems( PostUpdate, ( - graph::thread_animation_graphs.before(AssetEvents), + graph::thread_animation_graphs.before(AssetEventSystems), advance_transitions, advance_animations, // TODO: `animate_targets` can animate anything, so @@ -1260,8 +1260,8 @@ impl Plugin for AnimationPlugin { expire_completed_transitions, ) .chain() - .in_set(Animation) - .before(TransformSystem::TransformPropagate), + .in_set(AnimationSystems) + .before(TransformSystems::Propagate), ); } } diff --git a/crates/bevy_anti_aliasing/src/contrast_adaptive_sharpening/mod.rs b/crates/bevy_anti_aliasing/src/contrast_adaptive_sharpening/mod.rs index a07b5e2239..707d75819d 100644 --- a/crates/bevy_anti_aliasing/src/contrast_adaptive_sharpening/mod.rs +++ b/crates/bevy_anti_aliasing/src/contrast_adaptive_sharpening/mod.rs @@ -18,7 +18,7 @@ use bevy_render::{ }, renderer::RenderDevice, view::{ExtractedView, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; mod node; @@ -121,7 +121,7 @@ impl Plugin for CasPlugin { }; render_app .init_resource::>() - .add_systems(Render, prepare_cas_pipelines.in_set(RenderSet::Prepare)); + .add_systems(Render, prepare_cas_pipelines.in_set(RenderSystems::Prepare)); { render_app diff --git a/crates/bevy_anti_aliasing/src/fxaa/mod.rs b/crates/bevy_anti_aliasing/src/fxaa/mod.rs index 6d7824cf21..4848d3d268 100644 --- a/crates/bevy_anti_aliasing/src/fxaa/mod.rs +++ b/crates/bevy_anti_aliasing/src/fxaa/mod.rs @@ -18,7 +18,7 @@ use bevy_render::{ }, renderer::RenderDevice, view::{ExtractedView, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_utils::default; @@ -96,7 +96,10 @@ impl Plugin for FxaaPlugin { }; render_app .init_resource::>() - .add_systems(Render, prepare_fxaa_pipelines.in_set(RenderSet::Prepare)) + .add_systems( + Render, + prepare_fxaa_pipelines.in_set(RenderSystems::Prepare), + ) .add_render_graph_node::>(Core3d, Node3d::Fxaa) .add_render_graph_edges( Core3d, diff --git a/crates/bevy_anti_aliasing/src/smaa/mod.rs b/crates/bevy_anti_aliasing/src/smaa/mod.rs index f1e4d28678..4259b5e33d 100644 --- a/crates/bevy_anti_aliasing/src/smaa/mod.rs +++ b/crates/bevy_anti_aliasing/src/smaa/mod.rs @@ -76,7 +76,7 @@ use bevy_render::{ renderer::{RenderContext, RenderDevice, RenderQueue}, texture::{CachedTexture, GpuImage, TextureCache}, view::{ExtractedView, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_utils::prelude::default; @@ -346,10 +346,10 @@ impl Plugin for SmaaPlugin { .add_systems( Render, ( - prepare_smaa_pipelines.in_set(RenderSet::Prepare), - prepare_smaa_uniforms.in_set(RenderSet::PrepareResources), - prepare_smaa_textures.in_set(RenderSet::PrepareResources), - prepare_smaa_bind_groups.in_set(RenderSet::PrepareBindGroups), + prepare_smaa_pipelines.in_set(RenderSystems::Prepare), + prepare_smaa_uniforms.in_set(RenderSystems::PrepareResources), + prepare_smaa_textures.in_set(RenderSystems::PrepareResources), + prepare_smaa_bind_groups.in_set(RenderSystems::PrepareBindGroups), ), ) .add_render_graph_node::>(Core3d, Node3d::Smaa) diff --git a/crates/bevy_anti_aliasing/src/taa/mod.rs b/crates/bevy_anti_aliasing/src/taa/mod.rs index cf5ac269e2..dc12d34423 100644 --- a/crates/bevy_anti_aliasing/src/taa/mod.rs +++ b/crates/bevy_anti_aliasing/src/taa/mod.rs @@ -36,7 +36,7 @@ use bevy_render::{ sync_world::RenderEntity, texture::{CachedTexture, TextureCache}, view::{ExtractedView, Msaa, ViewTarget}, - ExtractSchedule, MainWorld, Render, RenderApp, RenderSet, + ExtractSchedule, MainWorld, Render, RenderApp, RenderSystems, }; use tracing::warn; @@ -64,9 +64,9 @@ impl Plugin for TemporalAntiAliasPlugin { .add_systems( Render, ( - prepare_taa_jitter_and_mip_bias.in_set(RenderSet::ManageViews), - prepare_taa_pipelines.in_set(RenderSet::Prepare), - prepare_taa_history_textures.in_set(RenderSet::PrepareResources), + prepare_taa_jitter_and_mip_bias.in_set(RenderSystems::ManageViews), + prepare_taa_pipelines.in_set(RenderSystems::Prepare), + prepare_taa_history_textures.in_set(RenderSystems::PrepareResources), ), ) .add_render_graph_node::>(Core3d, Node3d::Taa) diff --git a/crates/bevy_app/src/app.rs b/crates/bevy_app/src/app.rs index 654a7098b9..60431ca479 100644 --- a/crates/bevy_app/src/app.rs +++ b/crates/bevy_app/src/app.rs @@ -117,7 +117,7 @@ impl Default for App { app.add_systems( First, event_update_system - .in_set(bevy_ecs::event::EventUpdates) + .in_set(bevy_ecs::event::EventUpdateSystems) .run_if(bevy_ecs::event::event_update_condition), ); app.add_event::(); diff --git a/crates/bevy_app/src/lib.rs b/crates/bevy_app/src/lib.rs index 6772136414..743806df71 100644 --- a/crates/bevy_app/src/lib.rs +++ b/crates/bevy_app/src/lib.rs @@ -55,7 +55,7 @@ pub mod prelude { main_schedule::{ First, FixedFirst, FixedLast, FixedPostUpdate, FixedPreUpdate, FixedUpdate, Last, Main, PostStartup, PostUpdate, PreStartup, PreUpdate, RunFixedMainLoop, - RunFixedMainLoopSystem, SpawnScene, Startup, Update, + RunFixedMainLoopSystems, SpawnScene, Startup, Update, }, sub_app::SubApp, Plugin, PluginGroup, TaskPoolOptions, TaskPoolPlugin, diff --git a/crates/bevy_app/src/main_schedule.rs b/crates/bevy_app/src/main_schedule.rs index 23e8ca0c33..7e0c759d47 100644 --- a/crates/bevy_app/src/main_schedule.rs +++ b/crates/bevy_app/src/main_schedule.rs @@ -92,8 +92,8 @@ pub struct PreUpdate; /// Runs the [`FixedMain`] schedule in a loop according until all relevant elapsed time has been "consumed". /// -/// If you need to order your variable timestep systems -/// before or after the fixed update logic, use the [`RunFixedMainLoopSystem`] system set. +/// If you need to order your variable timestep systems before or after +/// the fixed update logic, use the [`RunFixedMainLoopSystems`] system set. /// /// Note that in contrast to most other Bevy schedules, systems added directly to /// [`RunFixedMainLoop`] will *not* be parallelized between each other. @@ -149,7 +149,7 @@ pub struct FixedLast; /// The schedule that contains systems which only run after a fixed period of time has elapsed. /// /// This is run by the [`RunFixedMainLoop`] schedule. If you need to order your variable timestep systems -/// before or after the fixed update logic, use the [`RunFixedMainLoopSystem`] system set. +/// before or after the fixed update logic, use the [`RunFixedMainLoopSystems`] system set. /// /// Frequency of execution is configured by inserting `Time` resource, 64 Hz by default. /// See [this example](https://github.com/bevyengine/bevy/blob/latest/examples/time/time.rs). @@ -196,7 +196,11 @@ pub struct Last; /// Animation system set. This exists in [`PostUpdate`]. #[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone)] -pub struct Animation; +pub struct AnimationSystems; + +/// Deprecated alias for [`AnimationSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `AnimationSystems`.")] +pub type Animation = AnimationSystems; /// Defines the schedules to be run for the [`Main`] schedule, including /// their order. @@ -318,9 +322,9 @@ impl Plugin for MainSchedulePlugin { .configure_sets( RunFixedMainLoop, ( - RunFixedMainLoopSystem::BeforeFixedMainLoop, - RunFixedMainLoopSystem::FixedMainLoop, - RunFixedMainLoopSystem::AfterFixedMainLoop, + RunFixedMainLoopSystems::BeforeFixedMainLoop, + RunFixedMainLoopSystems::FixedMainLoop, + RunFixedMainLoopSystems::AfterFixedMainLoop, ) .chain(), ); @@ -400,7 +404,7 @@ impl FixedMain { /// Note that in contrast to most other Bevy schedules, systems added directly to /// [`RunFixedMainLoop`] will *not* be parallelized between each other. #[derive(Debug, Hash, PartialEq, Eq, Copy, Clone, SystemSet)] -pub enum RunFixedMainLoopSystem { +pub enum RunFixedMainLoopSystems { /// Runs before the fixed update logic. /// /// A good example of a system that fits here @@ -419,7 +423,7 @@ pub enum RunFixedMainLoopSystem { /// App::new() /// .add_systems( /// RunFixedMainLoop, - /// update_camera_rotation.in_set(RunFixedMainLoopSystem::BeforeFixedMainLoop)) + /// update_camera_rotation.in_set(RunFixedMainLoopSystems::BeforeFixedMainLoop)) /// .add_systems(FixedUpdate, update_physics); /// /// # fn update_camera_rotation() {} @@ -432,7 +436,7 @@ pub enum RunFixedMainLoopSystem { /// /// Don't place systems here, use [`FixedUpdate`] and friends instead. /// Use this system instead to order your systems to run specifically inbetween the fixed update logic and all - /// other systems that run in [`RunFixedMainLoopSystem::BeforeFixedMainLoop`] or [`RunFixedMainLoopSystem::AfterFixedMainLoop`]. + /// other systems that run in [`RunFixedMainLoopSystems::BeforeFixedMainLoop`] or [`RunFixedMainLoopSystems::AfterFixedMainLoop`]. /// /// [`Time`]: https://docs.rs/bevy/latest/bevy/prelude/struct.Virtual.html /// [`Time::overstep`]: https://docs.rs/bevy/latest/bevy/time/struct.Time.html#method.overstep @@ -448,8 +452,8 @@ pub enum RunFixedMainLoopSystem { /// // This system will be called before all interpolation systems /// // that third-party plugins might add. /// prepare_for_interpolation - /// .after(RunFixedMainLoopSystem::FixedMainLoop) - /// .before(RunFixedMainLoopSystem::AfterFixedMainLoop), + /// .after(RunFixedMainLoopSystems::FixedMainLoop) + /// .before(RunFixedMainLoopSystems::AfterFixedMainLoop), /// ) /// ); /// @@ -473,10 +477,14 @@ pub enum RunFixedMainLoopSystem { /// .add_systems(FixedUpdate, update_physics) /// .add_systems( /// RunFixedMainLoop, - /// interpolate_transforms.in_set(RunFixedMainLoopSystem::AfterFixedMainLoop)); + /// interpolate_transforms.in_set(RunFixedMainLoopSystems::AfterFixedMainLoop)); /// /// # fn interpolate_transforms() {} /// # fn update_physics() {} /// ``` AfterFixedMainLoop, } + +/// Deprecated alias for [`RunFixedMainLoopSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `RunFixedMainLoopSystems`.")] +pub type RunFixedMainLoopSystem = RunFixedMainLoopSystems; diff --git a/crates/bevy_asset/src/asset_changed.rs b/crates/bevy_asset/src/asset_changed.rs index 40723d7b08..10f298c968 100644 --- a/crates/bevy_asset/src/asset_changed.rs +++ b/crates/bevy_asset/src/asset_changed.rs @@ -22,10 +22,10 @@ use tracing::error; /// the [`AssetChanged`] filter to determine if an asset has changed since the last time /// a query ran. /// -/// This resource is automatically managed by the [`AssetEvents`](crate::AssetEvents) schedule and -/// should not be exposed to the user in order to maintain safety guarantees. Any additional uses of -/// this resource should be carefully audited to ensure that they do not introduce any safety -/// issues. +/// This resource is automatically managed by the [`AssetEventSystems`](crate::AssetEventSystems) +/// system set and should not be exposed to the user in order to maintain safety guarantees. +/// Any additional uses of this resource should be carefully audited to ensure that they do not +/// introduce any safety issues. #[derive(Resource)] pub(crate) struct AssetChanges { change_ticks: HashMap, Tick>, @@ -102,14 +102,13 @@ impl<'w, A: AsAssetId> AssetChangeCheck<'w, A> { /// /// # Quirks /// -/// - Asset changes are registered in the [`AssetEvents`] schedule. +/// - Asset changes are registered in the [`AssetEventSystems`] system set. /// - Removed assets are not detected. /// -/// The list of changed assets only gets updated in the -/// [`AssetEvents`] schedule which runs in `Last`. Therefore, `AssetChanged` -/// will only pick up asset changes in schedules following `AssetEvents` or the -/// next frame. Consider adding the system in the `Last` schedule after [`AssetEvents`] if you need -/// to react without frame delay to asset changes. +/// The list of changed assets only gets updated in the [`AssetEventSystems`] system set, +/// which runs in `Last`. Therefore, `AssetChanged` will only pick up asset changes in schedules +/// following [`AssetEventSystems`] or the next frame. Consider adding the system in the `Last` schedule +/// after [`AssetEventSystems`] if you need to react without frame delay to asset changes. /// /// # Performance /// @@ -120,7 +119,7 @@ impl<'w, A: AsAssetId> AssetChangeCheck<'w, A> { /// /// If no `A` asset updated since the last time the system ran, then no lookups occur. /// -/// [`AssetEvents`]: crate::AssetEvents +/// [`AssetEventSystems`]: crate::AssetEventSystems /// [`Assets::get_mut`]: crate::Assets::get_mut pub struct AssetChanged(PhantomData); @@ -166,7 +165,7 @@ unsafe impl WorldQuery for AssetChanged { this_run: Tick, ) -> Self::Fetch<'w> { // SAFETY: - // - `AssetChanges` is private and only accessed mutably in the `AssetEvents` schedule + // - `AssetChanges` is private and only accessed mutably in the `AssetEventSystems` system set. // - `resource_id` was obtained from the type ID of `AssetChanges`. let Some(changes) = (unsafe { world @@ -283,7 +282,7 @@ unsafe impl QueryFilter for AssetChanged { #[cfg(test)] #[expect(clippy::print_stdout, reason = "Allowed in tests.")] mod tests { - use crate::{AssetEvents, AssetPlugin, Handle}; + use crate::{AssetEventSystems, AssetPlugin, Handle}; use alloc::{vec, vec::Vec}; use core::num::NonZero; use std::println; @@ -406,7 +405,7 @@ mod tests { .init_asset::() .insert_resource(Counter(vec![0, 0, 0, 0])) .add_systems(Update, add_some) - .add_systems(PostUpdate, count_update.after(AssetEvents)); + .add_systems(PostUpdate, count_update.after(AssetEventSystems)); // First run of the app, `add_systems(Startup…)` runs. app.update(); // run_count == 0 @@ -441,7 +440,7 @@ mod tests { }, ) .add_systems(Update, update_some) - .add_systems(PostUpdate, count_update.after(AssetEvents)); + .add_systems(PostUpdate, count_update.after(AssetEventSystems)); // First run of the app, `add_systems(Startup…)` runs. app.update(); // run_count == 0 diff --git a/crates/bevy_asset/src/lib.rs b/crates/bevy_asset/src/lib.rs index 98cfd527c2..5b680eb191 100644 --- a/crates/bevy_asset/src/lib.rs +++ b/crates/bevy_asset/src/lib.rs @@ -414,7 +414,10 @@ impl Plugin for AssetPlugin { .init_asset::() .init_asset::<()>() .add_event::() - .configure_sets(PreUpdate, TrackAssets.after(handle_internal_asset_events)) + .configure_sets( + PreUpdate, + AssetTrackingSystems.after(handle_internal_asset_events), + ) // `handle_internal_asset_events` requires the use of `&mut World`, // and as a result has ambiguous system ordering with all other systems in `PreUpdate`. // This is virtually never a real problem: asset loading is async and so anything that interacts directly with it @@ -611,9 +614,12 @@ impl AssetApp for App { PostUpdate, Assets::::asset_events .run_if(Assets::::asset_events_condition) - .in_set(AssetEvents), + .in_set(AssetEventSystems), + ) + .add_systems( + PreUpdate, + Assets::::track_assets.in_set(AssetTrackingSystems), ) - .add_systems(PreUpdate, Assets::::track_assets.in_set(TrackAssets)) } fn register_asset_reflect(&mut self) -> &mut Self @@ -643,13 +649,21 @@ impl AssetApp for App { /// A system set that holds all "track asset" operations. #[derive(SystemSet, Hash, Debug, PartialEq, Eq, Clone)] -pub struct TrackAssets; +pub struct AssetTrackingSystems; + +/// Deprecated alias for [`AssetTrackingSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `AssetTrackingSystems`.")] +pub type TrackAssets = AssetTrackingSystems; /// A system set where events accumulated in [`Assets`] are applied to the [`AssetEvent`] [`Events`] resource. /// /// [`Events`]: bevy_ecs::event::Events #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub struct AssetEvents; +pub struct AssetEventSystems; + +/// Deprecated alias for [`AssetEventSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `AssetEventSystems`.")] +pub type AssetEvents = AssetEventSystems; #[cfg(test)] mod tests { diff --git a/crates/bevy_audio/src/lib.rs b/crates/bevy_audio/src/lib.rs index babae2f8a9..becbf5d1da 100644 --- a/crates/bevy_audio/src/lib.rs +++ b/crates/bevy_audio/src/lib.rs @@ -58,13 +58,13 @@ pub use sinks::*; use bevy_app::prelude::*; use bevy_asset::{Asset, AssetApp}; use bevy_ecs::prelude::*; -use bevy_transform::TransformSystem; +use bevy_transform::TransformSystems; use audio_output::*; /// Set for the audio playback systems, so they can share a run condition #[derive(SystemSet, Debug, Default, Clone, Copy, PartialEq, Eq, Hash)] -struct AudioPlaySet; +struct AudioPlaybackSystems; /// Adds support for audio playback to a Bevy Application /// @@ -90,13 +90,13 @@ impl Plugin for AudioPlugin { .insert_resource(DefaultSpatialScale(self.default_spatial_scale)) .configure_sets( PostUpdate, - AudioPlaySet + AudioPlaybackSystems .run_if(audio_output_available) - .after(TransformSystem::TransformPropagate), // For spatial audio transforms + .after(TransformSystems::Propagate), // For spatial audio transforms ) .add_systems( PostUpdate, - (update_emitter_positions, update_listener_positions).in_set(AudioPlaySet), + (update_emitter_positions, update_listener_positions).in_set(AudioPlaybackSystems), ) .init_resource::(); @@ -118,7 +118,8 @@ impl AddAudioSource for App { { self.init_asset::().add_systems( PostUpdate, - (play_queued_audio_system::, cleanup_finished_audio::).in_set(AudioPlaySet), + (play_queued_audio_system::, cleanup_finished_audio::) + .in_set(AudioPlaybackSystems), ); self } diff --git a/crates/bevy_core_pipeline/src/auto_exposure/mod.rs b/crates/bevy_core_pipeline/src/auto_exposure/mod.rs index f94a61d09b..7e7e6c1af7 100644 --- a/crates/bevy_core_pipeline/src/auto_exposure/mod.rs +++ b/crates/bevy_core_pipeline/src/auto_exposure/mod.rs @@ -9,7 +9,7 @@ use bevy_render::{ Buffer, BufferDescriptor, BufferUsages, PipelineCache, Shader, SpecializedComputePipelines, }, renderer::RenderDevice, - ExtractSchedule, Render, RenderApp, RenderSet, + ExtractSchedule, Render, RenderApp, RenderSystems, }; mod buffers; @@ -72,8 +72,8 @@ impl Plugin for AutoExposurePlugin { .add_systems( Render, ( - prepare_buffers.in_set(RenderSet::Prepare), - queue_view_auto_exposure_pipelines.in_set(RenderSet::Queue), + prepare_buffers.in_set(RenderSystems::Prepare), + queue_view_auto_exposure_pipelines.in_set(RenderSystems::Queue), ), ) .add_render_graph_node::(Core3d, node::AutoExposure) diff --git a/crates/bevy_core_pipeline/src/bloom/mod.rs b/crates/bevy_core_pipeline/src/bloom/mod.rs index 8717b9096e..cbd87d11bd 100644 --- a/crates/bevy_core_pipeline/src/bloom/mod.rs +++ b/crates/bevy_core_pipeline/src/bloom/mod.rs @@ -24,7 +24,7 @@ use bevy_render::{ renderer::{RenderContext, RenderDevice}, texture::{CachedTexture, TextureCache}, view::ViewTarget, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use downsampling_pipeline::{ prepare_downsampling_pipeline, BloomDownsamplingPipeline, BloomDownsamplingPipelineIds, @@ -63,10 +63,10 @@ impl Plugin for BloomPlugin { .add_systems( Render, ( - prepare_downsampling_pipeline.in_set(RenderSet::Prepare), - prepare_upsampling_pipeline.in_set(RenderSet::Prepare), - prepare_bloom_textures.in_set(RenderSet::PrepareResources), - prepare_bloom_bind_groups.in_set(RenderSet::PrepareBindGroups), + prepare_downsampling_pipeline.in_set(RenderSystems::Prepare), + prepare_upsampling_pipeline.in_set(RenderSystems::Prepare), + prepare_bloom_textures.in_set(RenderSystems::PrepareResources), + prepare_bloom_bind_groups.in_set(RenderSystems::PrepareBindGroups), ), ) // Add bloom to the 3d render graph diff --git a/crates/bevy_core_pipeline/src/core_2d/mod.rs b/crates/bevy_core_pipeline/src/core_2d/mod.rs index 0a8ed17f8e..725ac38ed9 100644 --- a/crates/bevy_core_pipeline/src/core_2d/mod.rs +++ b/crates/bevy_core_pipeline/src/core_2d/mod.rs @@ -65,7 +65,7 @@ use bevy_render::{ sync_world::MainEntity, texture::TextureCache, view::{Msaa, ViewDepthTexture}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use self::graph::{Core2d, Node2d}; @@ -93,8 +93,8 @@ impl Plugin for Core2dPlugin { .add_systems( Render, ( - sort_phase_system::.in_set(RenderSet::PhaseSort), - prepare_core_2d_depth_textures.in_set(RenderSet::PrepareResources), + sort_phase_system::.in_set(RenderSystems::PhaseSort), + prepare_core_2d_depth_textures.in_set(RenderSystems::PrepareResources), ), ); diff --git a/crates/bevy_core_pipeline/src/core_3d/mod.rs b/crates/bevy_core_pipeline/src/core_3d/mod.rs index b9f6955499..0ff61db842 100644 --- a/crates/bevy_core_pipeline/src/core_3d/mod.rs +++ b/crates/bevy_core_pipeline/src/core_3d/mod.rs @@ -106,7 +106,7 @@ use bevy_render::{ sync_world::{MainEntity, RenderEntity}, texture::{ColorAttachment, TextureCache}, view::{ExtractedView, ViewDepthTexture, ViewTarget}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use nonmax::NonMaxU32; use tracing::warn; @@ -167,14 +167,14 @@ impl Plugin for Core3dPlugin { .add_systems( Render, ( - sort_phase_system::.in_set(RenderSet::PhaseSort), - sort_phase_system::.in_set(RenderSet::PhaseSort), + sort_phase_system::.in_set(RenderSystems::PhaseSort), + sort_phase_system::.in_set(RenderSystems::PhaseSort), configure_occlusion_culling_view_targets .after(prepare_view_targets) - .in_set(RenderSet::ManageViews), - prepare_core_3d_depth_textures.in_set(RenderSet::PrepareResources), - prepare_core_3d_transmission_textures.in_set(RenderSet::PrepareResources), - prepare_prepass_textures.in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::ManageViews), + prepare_core_3d_depth_textures.in_set(RenderSystems::PrepareResources), + prepare_core_3d_transmission_textures.in_set(RenderSystems::PrepareResources), + prepare_prepass_textures.in_set(RenderSystems::PrepareResources), ), ); diff --git a/crates/bevy_core_pipeline/src/deferred/copy_lighting_id.rs b/crates/bevy_core_pipeline/src/deferred/copy_lighting_id.rs index 966be880c2..77430e0291 100644 --- a/crates/bevy_core_pipeline/src/deferred/copy_lighting_id.rs +++ b/crates/bevy_core_pipeline/src/deferred/copy_lighting_id.rs @@ -12,7 +12,7 @@ use bevy_render::{ renderer::RenderDevice, texture::{CachedTexture, TextureCache}, view::ViewTarget, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_ecs::query::QueryItem; @@ -40,7 +40,7 @@ impl Plugin for CopyDeferredLightingIdPlugin { }; render_app.add_systems( Render, - (prepare_deferred_lighting_id_textures.in_set(RenderSet::PrepareResources),), + (prepare_deferred_lighting_id_textures.in_set(RenderSystems::PrepareResources),), ); } diff --git a/crates/bevy_core_pipeline/src/dof/mod.rs b/crates/bevy_core_pipeline/src/dof/mod.rs index 87a10313f1..5eee57b8bb 100644 --- a/crates/bevy_core_pipeline/src/dof/mod.rs +++ b/crates/bevy_core_pipeline/src/dof/mod.rs @@ -55,7 +55,7 @@ use bevy_render::{ prepare_view_targets, ExtractedView, Msaa, ViewDepthTexture, ViewTarget, ViewUniform, ViewUniformOffset, ViewUniforms, }, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_utils::{default, once}; use smallvec::SmallVec; @@ -229,7 +229,7 @@ impl Plugin for DepthOfFieldPlugin { prepare_auxiliary_depth_of_field_textures, ) .after(prepare_view_targets) - .in_set(RenderSet::ManageViews), + .in_set(RenderSystems::ManageViews), ) .add_systems( Render, @@ -238,11 +238,11 @@ impl Plugin for DepthOfFieldPlugin { prepare_depth_of_field_pipelines, ) .chain() - .in_set(RenderSet::Prepare), + .in_set(RenderSystems::Prepare), ) .add_systems( Render, - prepare_depth_of_field_global_bind_group.in_set(RenderSet::PrepareBindGroups), + prepare_depth_of_field_global_bind_group.in_set(RenderSystems::PrepareBindGroups), ) .add_render_graph_node::>(Core3d, Node3d::DepthOfField) .add_render_graph_edges( diff --git a/crates/bevy_core_pipeline/src/experimental/mip_generation/mod.rs b/crates/bevy_core_pipeline/src/experimental/mip_generation/mod.rs index cd2099e49e..1223ed35ec 100644 --- a/crates/bevy_core_pipeline/src/experimental/mip_generation/mod.rs +++ b/crates/bevy_core_pipeline/src/experimental/mip_generation/mod.rs @@ -44,7 +44,7 @@ use bevy_render::{ renderer::{RenderContext, RenderDevice}, texture::TextureCache, view::{ExtractedView, NoIndirectDrawing, ViewDepthTexture}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bitflags::bitflags; use tracing::debug; @@ -103,7 +103,7 @@ impl Plugin for MipGenerationPlugin { ) .add_systems( Render, - create_downsample_depth_pipelines.in_set(RenderSet::Prepare), + create_downsample_depth_pipelines.in_set(RenderSystems::Prepare), ) .add_systems( Render, @@ -112,7 +112,7 @@ impl Plugin for MipGenerationPlugin { prepare_downsample_depth_view_bind_groups, ) .chain() - .in_set(RenderSet::PrepareResources) + .in_set(RenderSystems::PrepareResources) .run_if(resource_exists::) .after(prepare_core_3d_depth_textures), ); diff --git a/crates/bevy_core_pipeline/src/motion_blur/mod.rs b/crates/bevy_core_pipeline/src/motion_blur/mod.rs index 5898f1a8c5..331dd2408d 100644 --- a/crates/bevy_core_pipeline/src/motion_blur/mod.rs +++ b/crates/bevy_core_pipeline/src/motion_blur/mod.rs @@ -20,7 +20,7 @@ use bevy_render::{ extract_component::{ExtractComponent, ExtractComponentPlugin, UniformComponentPlugin}, render_graph::{RenderGraphApp, ViewNodeRunner}, render_resource::{Shader, ShaderType, SpecializedRenderPipelines}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; pub mod node; @@ -152,7 +152,7 @@ impl Plugin for MotionBlurPlugin { .init_resource::>() .add_systems( Render, - pipeline::prepare_motion_blur_pipelines.in_set(RenderSet::Prepare), + pipeline::prepare_motion_blur_pipelines.in_set(RenderSystems::Prepare), ); render_app diff --git a/crates/bevy_core_pipeline/src/msaa_writeback.rs b/crates/bevy_core_pipeline/src/msaa_writeback.rs index f9c543aeff..8dc51e4ed5 100644 --- a/crates/bevy_core_pipeline/src/msaa_writeback.rs +++ b/crates/bevy_core_pipeline/src/msaa_writeback.rs @@ -12,7 +12,7 @@ use bevy_render::{ render_resource::*, renderer::RenderContext, view::{Msaa, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; /// This enables "msaa writeback" support for the `core_2d` and `core_3d` pipelines, which can be enabled on cameras @@ -26,7 +26,7 @@ impl Plugin for MsaaWritebackPlugin { }; render_app.add_systems( Render, - prepare_msaa_writeback_pipelines.in_set(RenderSet::Prepare), + prepare_msaa_writeback_pipelines.in_set(RenderSystems::Prepare), ); { render_app diff --git a/crates/bevy_core_pipeline/src/oit/mod.rs b/crates/bevy_core_pipeline/src/oit/mod.rs index 6a15fd126c..673bbc5a8b 100644 --- a/crates/bevy_core_pipeline/src/oit/mod.rs +++ b/crates/bevy_core_pipeline/src/oit/mod.rs @@ -16,7 +16,7 @@ use bevy_render::{ }, renderer::{RenderDevice, RenderQueue}, view::Msaa, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_window::PrimaryWindow; use resolve::{ @@ -126,7 +126,7 @@ impl Plugin for OrderIndependentTransparencyPlugin { render_app.add_systems( Render, - prepare_oit_buffers.in_set(RenderSet::PrepareResources), + prepare_oit_buffers.in_set(RenderSystems::PrepareResources), ); render_app diff --git a/crates/bevy_core_pipeline/src/oit/resolve/mod.rs b/crates/bevy_core_pipeline/src/oit/resolve/mod.rs index 7db98650fd..0e5102c954 100644 --- a/crates/bevy_core_pipeline/src/oit/resolve/mod.rs +++ b/crates/bevy_core_pipeline/src/oit/resolve/mod.rs @@ -20,7 +20,7 @@ use bevy_render::{ }, renderer::{RenderAdapter, RenderDevice}, view::{ExtractedView, ViewTarget, ViewUniform, ViewUniforms}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use tracing::warn; @@ -65,8 +65,8 @@ impl Plugin for OitResolvePlugin { .add_systems( Render, ( - queue_oit_resolve_pipeline.in_set(RenderSet::Queue), - prepare_oit_resolve_bind_group.in_set(RenderSet::PrepareBindGroups), + queue_oit_resolve_pipeline.in_set(RenderSystems::Queue), + prepare_oit_resolve_bind_group.in_set(RenderSystems::PrepareBindGroups), ), ) .init_resource::(); diff --git a/crates/bevy_core_pipeline/src/post_process/mod.rs b/crates/bevy_core_pipeline/src/post_process/mod.rs index 2ac03c08c8..fddac95066 100644 --- a/crates/bevy_core_pipeline/src/post_process/mod.rs +++ b/crates/bevy_core_pipeline/src/post_process/mod.rs @@ -36,7 +36,7 @@ use bevy_render::{ renderer::{RenderContext, RenderDevice, RenderQueue}, texture::GpuImage, view::{ExtractedView, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_utils::prelude::default; @@ -234,7 +234,7 @@ impl Plugin for PostProcessingPlugin { prepare_post_processing_pipelines, prepare_post_processing_uniforms, ) - .in_set(RenderSet::Prepare), + .in_set(RenderSystems::Prepare), ) .add_render_graph_node::>( Core3d, diff --git a/crates/bevy_core_pipeline/src/skybox/mod.rs b/crates/bevy_core_pipeline/src/skybox/mod.rs index 7e2dba466c..ede50d6d8f 100644 --- a/crates/bevy_core_pipeline/src/skybox/mod.rs +++ b/crates/bevy_core_pipeline/src/skybox/mod.rs @@ -25,7 +25,7 @@ use bevy_render::{ renderer::RenderDevice, texture::GpuImage, view::{ExtractedView, Msaa, ViewTarget, ViewUniform, ViewUniforms}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_transform::components::Transform; use prepass::{SkyboxPrepassPipeline, SKYBOX_PREPASS_SHADER_HANDLE}; @@ -63,11 +63,11 @@ impl Plugin for SkyboxPlugin { .add_systems( Render, ( - prepare_skybox_pipelines.in_set(RenderSet::Prepare), - prepass::prepare_skybox_prepass_pipelines.in_set(RenderSet::Prepare), - prepare_skybox_bind_groups.in_set(RenderSet::PrepareBindGroups), + prepare_skybox_pipelines.in_set(RenderSystems::Prepare), + prepass::prepare_skybox_prepass_pipelines.in_set(RenderSystems::Prepare), + prepare_skybox_bind_groups.in_set(RenderSystems::PrepareBindGroups), prepass::prepare_skybox_prepass_bind_groups - .in_set(RenderSet::PrepareBindGroups), + .in_set(RenderSystems::PrepareBindGroups), ), ); } diff --git a/crates/bevy_core_pipeline/src/tonemapping/mod.rs b/crates/bevy_core_pipeline/src/tonemapping/mod.rs index 9f3964ad17..f546ef54d3 100644 --- a/crates/bevy_core_pipeline/src/tonemapping/mod.rs +++ b/crates/bevy_core_pipeline/src/tonemapping/mod.rs @@ -16,7 +16,7 @@ use bevy_render::{ renderer::RenderDevice, texture::{FallbackImage, GpuImage}, view::{ExtractedView, ViewTarget, ViewUniform}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bitflags::bitflags; #[cfg(not(feature = "tonemapping_luts"))] @@ -118,7 +118,7 @@ impl Plugin for TonemappingPlugin { .init_resource::>() .add_systems( Render, - prepare_view_tonemapping_pipelines.in_set(RenderSet::Prepare), + prepare_view_tonemapping_pipelines.in_set(RenderSystems::Prepare), ); } diff --git a/crates/bevy_core_pipeline/src/upscaling/mod.rs b/crates/bevy_core_pipeline/src/upscaling/mod.rs index 20dd19f4ce..4ce91de393 100644 --- a/crates/bevy_core_pipeline/src/upscaling/mod.rs +++ b/crates/bevy_core_pipeline/src/upscaling/mod.rs @@ -6,7 +6,7 @@ use bevy_render::{ camera::{CameraOutputMode, ExtractedCamera}, render_resource::*, view::ViewTarget, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; mod node; @@ -26,7 +26,7 @@ impl Plugin for UpscalingPlugin { // and aversion to extensive and intrusive system ordering. // See https://github.com/bevyengine/bevy/issues/14770 for more context. prepare_view_upscaling_pipelines - .in_set(RenderSet::Prepare) + .in_set(RenderSystems::Prepare) .ambiguous_with_all(), ); } diff --git a/crates/bevy_dev_tools/src/ci_testing/mod.rs b/crates/bevy_dev_tools/src/ci_testing/mod.rs index 09f16d71a7..faf99b1a71 100644 --- a/crates/bevy_dev_tools/src/ci_testing/mod.rs +++ b/crates/bevy_dev_tools/src/ci_testing/mod.rs @@ -57,7 +57,7 @@ impl Plugin for CiTestingPlugin { systems::send_events .before(trigger_screenshots) .before(bevy_window::close_when_requested) - .in_set(SendEvents) + .in_set(EventSenderSystems) .ambiguous_with_all(), ); @@ -66,10 +66,10 @@ impl Plugin for CiTestingPlugin { #[cfg(any(unix, windows))] app.configure_sets( Update, - SendEvents.before(bevy_app::TerminalCtrlCHandlerPlugin::exit_on_flag), + EventSenderSystems.before(bevy_app::TerminalCtrlCHandlerPlugin::exit_on_flag), ); } } #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)] -struct SendEvents; +struct EventSenderSystems; diff --git a/crates/bevy_dev_tools/src/picking_debug.rs b/crates/bevy_dev_tools/src/picking_debug.rs index f72b70fc88..8e4ee7ae86 100644 --- a/crates/bevy_dev_tools/src/picking_debug.rs +++ b/crates/bevy_dev_tools/src/picking_debug.rs @@ -8,7 +8,7 @@ use bevy_picking::backend::HitData; use bevy_picking::hover::HoverMap; use bevy_picking::pointer::{Location, PointerId, PointerPress}; use bevy_picking::prelude::*; -use bevy_picking::{pointer, PickSet}; +use bevy_picking::{pointer, PickingSystems}; use bevy_reflect::prelude::*; use bevy_render::prelude::*; use bevy_text::prelude::*; @@ -85,7 +85,7 @@ impl Plugin for DebugPickingPlugin { app.init_resource::() .add_systems( PreUpdate, - pointer_debug_visibility.in_set(PickSet::PostHover), + pointer_debug_visibility.in_set(PickingSystems::PostHover), ) .add_systems( PreUpdate, @@ -108,7 +108,7 @@ impl Plugin for DebugPickingPlugin { log_pointer_event_debug::, ) .distributive_run_if(DebugPickingMode::is_enabled) - .in_set(PickSet::Last), + .in_set(PickingSystems::Last), ); app.add_systems( @@ -116,7 +116,7 @@ impl Plugin for DebugPickingPlugin { (add_pointer_debug, update_debug_data, debug_draw) .chain() .distributive_run_if(DebugPickingMode::is_enabled) - .in_set(PickSet::Last), + .in_set(PickingSystems::Last), ); } } diff --git a/crates/bevy_ecs/examples/change_detection.rs b/crates/bevy_ecs/examples/change_detection.rs index 1b101b4033..820860070c 100644 --- a/crates/bevy_ecs/examples/change_detection.rs +++ b/crates/bevy_ecs/examples/change_detection.rs @@ -29,11 +29,11 @@ fn main() { // Add systems to the Schedule to execute our app logic // We can label our systems to force a specific run-order between some of them schedule.add_systems(( - spawn_entities.in_set(SimulationSet::Spawn), - print_counter_when_changed.after(SimulationSet::Spawn), - age_all_entities.in_set(SimulationSet::Age), - remove_old_entities.after(SimulationSet::Age), - print_changed_entities.after(SimulationSet::Age), + spawn_entities.in_set(SimulationSystems::Spawn), + print_counter_when_changed.after(SimulationSystems::Spawn), + age_all_entities.in_set(SimulationSystems::Age), + remove_old_entities.after(SimulationSystems::Age), + print_changed_entities.after(SimulationSystems::Age), )); // Simulate 10 frames in our world @@ -57,7 +57,7 @@ struct Age { // System sets can be used to group systems and configured to control relative ordering #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)] -enum SimulationSet { +enum SimulationSystems { Spawn, Age, } diff --git a/crates/bevy_ecs/examples/events.rs b/crates/bevy_ecs/examples/events.rs index 4c0059ed2d..fb01184048 100644 --- a/crates/bevy_ecs/examples/events.rs +++ b/crates/bevy_ecs/examples/events.rs @@ -19,13 +19,13 @@ fn main() { // This update should happen before we use the events. // Here, we use system sets to control the ordering. #[derive(SystemSet, Debug, Clone, PartialEq, Eq, Hash)] - pub struct FlushEvents; + pub struct EventFlusherSystems; - schedule.add_systems(bevy_ecs::event::event_update_system.in_set(FlushEvents)); + schedule.add_systems(bevy_ecs::event::event_update_system.in_set(EventFlusherSystems)); // Add systems sending and receiving events after the events are flushed. schedule.add_systems(( - sending_system.after(FlushEvents), + sending_system.after(EventFlusherSystems), receiving_system.after(sending_system), )); diff --git a/crates/bevy_ecs/src/event/mod.rs b/crates/bevy_ecs/src/event/mod.rs index 9c19dc1689..3bb422b7bb 100644 --- a/crates/bevy_ecs/src/event/mod.rs +++ b/crates/bevy_ecs/src/event/mod.rs @@ -24,8 +24,13 @@ pub use mut_iterators::{EventMutIterator, EventMutIteratorWithId}; pub use mutator::EventMutator; pub use reader::EventReader; pub use registry::{EventRegistry, ShouldUpdateEvents}; +#[expect( + deprecated, + reason = "`EventUpdates` was renamed to `EventUpdateSystems`." +)] pub use update::{ - event_update_condition, event_update_system, signal_event_update_system, EventUpdates, + event_update_condition, event_update_system, signal_event_update_system, EventUpdateSystems, + EventUpdates, }; pub use writer::EventWriter; diff --git a/crates/bevy_ecs/src/event/update.rs b/crates/bevy_ecs/src/event/update.rs index c7b43aef00..bdde1af0db 100644 --- a/crates/bevy_ecs/src/event/update.rs +++ b/crates/bevy_ecs/src/event/update.rs @@ -13,7 +13,11 @@ use super::registry::ShouldUpdateEvents; #[doc(hidden)] #[derive(SystemSet, Clone, Debug, PartialEq, Eq, Hash)] -pub struct EventUpdates; +pub struct EventUpdateSystems; + +/// Deprecated alias for [`EventUpdateSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `EventUpdateSystems`.")] +pub type EventUpdates = EventUpdateSystems; /// Signals the [`event_update_system`] to run after `FixedUpdate` systems. /// diff --git a/crates/bevy_ecs/src/schedule/mod.rs b/crates/bevy_ecs/src/schedule/mod.rs index d021eb5ca3..81912d2f72 100644 --- a/crates/bevy_ecs/src/schedule/mod.rs +++ b/crates/bevy_ecs/src/schedule/mod.rs @@ -37,7 +37,7 @@ mod tests { }; #[derive(SystemSet, Clone, Debug, PartialEq, Eq, Hash)] - enum TestSet { + enum TestSystems { A, B, C, @@ -142,7 +142,7 @@ mod tests { make_function_system(1).before(named_system), make_function_system(0) .after(named_system) - .in_set(TestSet::A), + .in_set(TestSystems::A), )); schedule.run(&mut world); @@ -153,12 +153,12 @@ mod tests { assert_eq!(world.resource::().0, vec![]); // modify the schedule after it's been initialized and test ordering with sets - schedule.configure_sets(TestSet::A.after(named_system)); + schedule.configure_sets(TestSystems::A.after(named_system)); schedule.add_systems(( make_function_system(3) - .before(TestSet::A) + .before(TestSystems::A) .after(named_system), - make_function_system(4).after(TestSet::A), + make_function_system(4).after(TestSystems::A), )); schedule.run(&mut world); @@ -347,14 +347,14 @@ mod tests { world.init_resource::(); - schedule.configure_sets(TestSet::A.run_if(|| false).run_if(|| false)); - schedule.add_systems(counting_system.in_set(TestSet::A)); - schedule.configure_sets(TestSet::B.run_if(|| true).run_if(|| false)); - schedule.add_systems(counting_system.in_set(TestSet::B)); - schedule.configure_sets(TestSet::C.run_if(|| false).run_if(|| true)); - schedule.add_systems(counting_system.in_set(TestSet::C)); - schedule.configure_sets(TestSet::D.run_if(|| true).run_if(|| true)); - schedule.add_systems(counting_system.in_set(TestSet::D)); + schedule.configure_sets(TestSystems::A.run_if(|| false).run_if(|| false)); + schedule.add_systems(counting_system.in_set(TestSystems::A)); + schedule.configure_sets(TestSystems::B.run_if(|| true).run_if(|| false)); + schedule.add_systems(counting_system.in_set(TestSystems::B)); + schedule.configure_sets(TestSystems::C.run_if(|| false).run_if(|| true)); + schedule.add_systems(counting_system.in_set(TestSystems::C)); + schedule.configure_sets(TestSystems::D.run_if(|| true).run_if(|| true)); + schedule.add_systems(counting_system.in_set(TestSystems::D)); schedule.run(&mut world); assert_eq!(world.resource::().0.load(Ordering::Relaxed), 1); @@ -367,14 +367,14 @@ mod tests { world.init_resource::(); - schedule.configure_sets(TestSet::A.run_if(|| false)); - schedule.add_systems(counting_system.in_set(TestSet::A).run_if(|| false)); - schedule.configure_sets(TestSet::B.run_if(|| true)); - schedule.add_systems(counting_system.in_set(TestSet::B).run_if(|| false)); - schedule.configure_sets(TestSet::C.run_if(|| false)); - schedule.add_systems(counting_system.in_set(TestSet::C).run_if(|| true)); - schedule.configure_sets(TestSet::D.run_if(|| true)); - schedule.add_systems(counting_system.in_set(TestSet::D).run_if(|| true)); + schedule.configure_sets(TestSystems::A.run_if(|| false)); + schedule.add_systems(counting_system.in_set(TestSystems::A).run_if(|| false)); + schedule.configure_sets(TestSystems::B.run_if(|| true)); + schedule.add_systems(counting_system.in_set(TestSystems::B).run_if(|| false)); + schedule.configure_sets(TestSystems::C.run_if(|| false)); + schedule.add_systems(counting_system.in_set(TestSystems::C).run_if(|| true)); + schedule.configure_sets(TestSystems::D.run_if(|| true)); + schedule.add_systems(counting_system.in_set(TestSystems::D).run_if(|| true)); schedule.run(&mut world); assert_eq!(world.resource::().0.load(Ordering::Relaxed), 1); @@ -440,12 +440,12 @@ mod tests { let mut schedule = Schedule::default(); schedule.configure_sets( - TestSet::A + TestSystems::A .run_if(|res1: Res| res1.is_changed()) .run_if(|res2: Res| res2.is_changed()), ); - schedule.add_systems(counting_system.in_set(TestSet::A)); + schedule.add_systems(counting_system.in_set(TestSystems::A)); // both resource were just added. schedule.run(&mut world); @@ -489,13 +489,14 @@ mod tests { world.init_resource::(); let mut schedule = Schedule::default(); - schedule - .configure_sets(TestSet::A.run_if(|res1: Res| res1.is_changed())); + schedule.configure_sets( + TestSystems::A.run_if(|res1: Res| res1.is_changed()), + ); schedule.add_systems( counting_system .run_if(|res2: Res| res2.is_changed()) - .in_set(TestSet::A), + .in_set(TestSystems::A), ); // both resource were just added. @@ -537,7 +538,7 @@ mod tests { #[should_panic] fn dependency_loop() { let mut schedule = Schedule::default(); - schedule.configure_sets(TestSet::X.after(TestSet::X)); + schedule.configure_sets(TestSystems::X.after(TestSystems::X)); } #[test] @@ -545,8 +546,8 @@ mod tests { let mut world = World::new(); let mut schedule = Schedule::default(); - schedule.configure_sets(TestSet::A.after(TestSet::B)); - schedule.configure_sets(TestSet::B.after(TestSet::A)); + schedule.configure_sets(TestSystems::A.after(TestSystems::B)); + schedule.configure_sets(TestSystems::B.after(TestSystems::A)); let result = schedule.initialize(&mut world); assert!(matches!( @@ -572,7 +573,7 @@ mod tests { #[should_panic] fn hierarchy_loop() { let mut schedule = Schedule::default(); - schedule.configure_sets(TestSet::X.in_set(TestSet::X)); + schedule.configure_sets(TestSystems::X.in_set(TestSystems::X)); } #[test] @@ -580,8 +581,8 @@ mod tests { let mut world = World::new(); let mut schedule = Schedule::default(); - schedule.configure_sets(TestSet::A.in_set(TestSet::B)); - schedule.configure_sets(TestSet::B.in_set(TestSet::A)); + schedule.configure_sets(TestSystems::A.in_set(TestSystems::B)); + schedule.configure_sets(TestSystems::B.in_set(TestSystems::A)); let result = schedule.initialize(&mut world); assert!(matches!(result, Err(ScheduleBuildError::HierarchyCycle(_)))); @@ -647,13 +648,13 @@ mod tests { }); // Add `A`. - schedule.configure_sets(TestSet::A); + schedule.configure_sets(TestSystems::A); // Add `B` as child of `A`. - schedule.configure_sets(TestSet::B.in_set(TestSet::A)); + schedule.configure_sets(TestSystems::B.in_set(TestSystems::A)); // Add `X` as child of both `A` and `B`. - schedule.configure_sets(TestSet::X.in_set(TestSet::A).in_set(TestSet::B)); + schedule.configure_sets(TestSystems::X.in_set(TestSystems::A).in_set(TestSystems::B)); // `X` cannot be the `A`'s child and grandchild at the same time. let result = schedule.initialize(&mut world); @@ -669,8 +670,8 @@ mod tests { let mut schedule = Schedule::default(); // Add `B` and give it both kinds of relationships with `A`. - schedule.configure_sets(TestSet::B.in_set(TestSet::A)); - schedule.configure_sets(TestSet::B.after(TestSet::A)); + schedule.configure_sets(TestSystems::B.in_set(TestSystems::A)); + schedule.configure_sets(TestSystems::B.after(TestSystems::A)); let result = schedule.initialize(&mut world); assert!(matches!( result, @@ -686,13 +687,13 @@ mod tests { fn foo() {} // Add `foo` to both `A` and `C`. - schedule.add_systems(foo.in_set(TestSet::A).in_set(TestSet::C)); + schedule.add_systems(foo.in_set(TestSystems::A).in_set(TestSystems::C)); // Order `A -> B -> C`. schedule.configure_sets(( - TestSet::A, - TestSet::B.after(TestSet::A), - TestSet::C.after(TestSet::B), + TestSystems::A, + TestSystems::B.after(TestSystems::A), + TestSystems::C.after(TestSystems::B), )); let result = schedule.initialize(&mut world); diff --git a/crates/bevy_gilrs/src/lib.rs b/crates/bevy_gilrs/src/lib.rs index ce0d5f27f0..5e5a2ba2bd 100644 --- a/crates/bevy_gilrs/src/lib.rs +++ b/crates/bevy_gilrs/src/lib.rs @@ -23,7 +23,7 @@ use core::cell::RefCell; use bevy_app::{App, Plugin, PostUpdate, PreStartup, PreUpdate}; use bevy_ecs::entity::EntityHashMap; use bevy_ecs::prelude::*; -use bevy_input::InputSystem; +use bevy_input::InputSystems; use bevy_platform::collections::HashMap; use gilrs::GilrsBuilder; use gilrs_system::{gilrs_event_startup_system, gilrs_event_system}; @@ -84,7 +84,11 @@ pub struct GilrsPlugin; /// Updates the running gamepad rumble effects. #[derive(Debug, PartialEq, Eq, Clone, Hash, SystemSet)] -pub struct RumbleSystem; +pub struct RumbleSystems; + +/// Deprecated alias for [`RumbleSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `RumbleSystems`.")] +pub type RumbleSystem = RumbleSystems; impl Plugin for GilrsPlugin { fn build(&self, app: &mut App) { @@ -106,8 +110,8 @@ impl Plugin for GilrsPlugin { app.init_resource::(); app.init_resource::() .add_systems(PreStartup, gilrs_event_startup_system) - .add_systems(PreUpdate, gilrs_event_system.before(InputSystem)) - .add_systems(PostUpdate, play_gilrs_rumble.in_set(RumbleSystem)); + .add_systems(PreUpdate, gilrs_event_system.before(InputSystems)) + .add_systems(PostUpdate, play_gilrs_rumble.in_set(RumbleSystems)); } Err(err) => error!("Failed to start Gilrs. {}", err), } diff --git a/crates/bevy_gizmos/src/aabb.rs b/crates/bevy_gizmos/src/aabb.rs index 16dc7ed773..4ac9e5f2ac 100644 --- a/crates/bevy_gizmos/src/aabb.rs +++ b/crates/bevy_gizmos/src/aabb.rs @@ -14,7 +14,7 @@ use bevy_reflect::{std_traits::ReflectDefault, Reflect}; use bevy_render::primitives::Aabb; use bevy_transform::{ components::{GlobalTransform, Transform}, - TransformSystem, + TransformSystems, }; use crate::{ @@ -39,7 +39,7 @@ impl Plugin for AabbGizmoPlugin { }), ) .after(bevy_render::view::VisibilitySystems::CalculateBounds) - .after(TransformSystem::TransformPropagate), + .after(TransformSystems::Propagate), ); } } diff --git a/crates/bevy_gizmos/src/gizmos.rs b/crates/bevy_gizmos/src/gizmos.rs index b51dd672fe..06a6a71f1f 100644 --- a/crates/bevy_gizmos/src/gizmos.rs +++ b/crates/bevy_gizmos/src/gizmos.rs @@ -134,7 +134,7 @@ pub struct Swap(PhantomData); /// .add_systems(EndOfMyContext, end_gizmo_context::) /// .add_systems( /// Last, -/// propagate_gizmos::.before(UpdateGizmoMeshes), +/// propagate_gizmos::.before(GizmoMeshSystems), /// ); /// } /// } diff --git a/crates/bevy_gizmos/src/lib.rs b/crates/bevy_gizmos/src/lib.rs index 3cd2c7c404..581a30091d 100755 --- a/crates/bevy_gizmos/src/lib.rs +++ b/crates/bevy_gizmos/src/lib.rs @@ -24,7 +24,7 @@ extern crate self as bevy_gizmos; /// System set label for the systems handling the rendering of gizmos. #[derive(SystemSet, Clone, Debug, Hash, PartialEq, Eq)] -pub enum GizmoRenderSystem { +pub enum GizmoRenderSystems { /// Adds gizmos to the [`Transparent2d`](bevy_core_pipeline::core_2d::Transparent2d) render phase #[cfg(feature = "bevy_sprite")] QueueLineGizmos2d, @@ -33,6 +33,10 @@ pub enum GizmoRenderSystem { QueueLineGizmos3d, } +/// Deprecated alias for [`GizmoRenderSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `GizmoRenderSystems`.")] +pub type GizmoRenderSystem = GizmoRenderSystems; + #[cfg(feature = "bevy_render")] pub mod aabb; pub mod arcs; @@ -120,7 +124,7 @@ use { }, renderer::RenderDevice, sync_world::{MainEntity, TemporaryRenderEntity}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }, bytemuck::cast_slice, }; @@ -185,7 +189,7 @@ impl Plugin for GizmoPlugin { if let Some(render_app) = app.get_sub_app_mut(RenderApp) { render_app.add_systems( Render, - prepare_line_gizmo_bind_group.in_set(RenderSet::PrepareBindGroups), + prepare_line_gizmo_bind_group.in_set(RenderSystems::PrepareBindGroups), ); render_app.add_systems(ExtractSchedule, (extract_gizmo_data, extract_linegizmos)); @@ -268,20 +272,20 @@ impl AppGizmoBuilder for App { .add_systems( RunFixedMainLoop, start_gizmo_context:: - .in_set(bevy_app::RunFixedMainLoopSystem::BeforeFixedMainLoop), + .in_set(bevy_app::RunFixedMainLoopSystems::BeforeFixedMainLoop), ) .add_systems(FixedFirst, clear_gizmo_context::) .add_systems(FixedLast, collect_requested_gizmos::) .add_systems( RunFixedMainLoop, end_gizmo_context:: - .in_set(bevy_app::RunFixedMainLoopSystem::AfterFixedMainLoop), + .in_set(bevy_app::RunFixedMainLoopSystems::AfterFixedMainLoop), ) .add_systems( Last, ( - propagate_gizmos::.before(UpdateGizmoMeshes), - update_gizmo_meshes::.in_set(UpdateGizmoMeshes), + propagate_gizmos::.before(GizmoMeshSystems), + update_gizmo_meshes::.in_set(GizmoMeshSystems), ), ); @@ -332,7 +336,7 @@ pub fn start_gizmo_context( /// /// Pop the default gizmos context out of the [`Swap`] gizmo storage. /// -/// This must be called before [`UpdateGizmoMeshes`] in the [`Last`] schedule. +/// This must be called before [`GizmoMeshSystems`] in the [`Last`] schedule. pub fn end_gizmo_context( mut swap: ResMut>>, mut default: ResMut>, @@ -367,7 +371,7 @@ where /// Propagate the contextual gizmo into the `Update` storage for rendering. /// -/// This should be before [`UpdateGizmoMeshes`]. +/// This should be before [`GizmoMeshSystems`]. pub fn propagate_gizmos( mut update_storage: ResMut>, contextual_storage: Res>, @@ -380,7 +384,11 @@ pub fn propagate_gizmos( /// System set for updating the rendering meshes for drawing gizmos. #[derive(SystemSet, Clone, Debug, PartialEq, Eq, Hash)] -pub struct UpdateGizmoMeshes; +pub struct GizmoMeshSystems; + +/// Deprecated alias for [`GizmoMeshSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `GizmoMeshSystems`.")] +pub type UpdateGizmoMeshes = GizmoMeshSystems; /// Prepare gizmos for rendering. /// diff --git a/crates/bevy_gizmos/src/light.rs b/crates/bevy_gizmos/src/light.rs index 7f7dadacc2..1bd6ee3cac 100644 --- a/crates/bevy_gizmos/src/light.rs +++ b/crates/bevy_gizmos/src/light.rs @@ -24,7 +24,7 @@ use bevy_math::{ }; use bevy_pbr::{DirectionalLight, PointLight, SpotLight}; use bevy_reflect::{std_traits::ReflectDefault, Reflect}; -use bevy_transform::{components::GlobalTransform, TransformSystem}; +use bevy_transform::{components::GlobalTransform, TransformSystems}; use crate::{ config::{GizmoConfigGroup, GizmoConfigStore}, @@ -126,7 +126,7 @@ impl Plugin for LightGizmoPlugin { config.config::().1.draw_all }), ) - .after(TransformSystem::TransformPropagate), + .after(TransformSystems::Propagate), ); } } diff --git a/crates/bevy_gizmos/src/pipeline_2d.rs b/crates/bevy_gizmos/src/pipeline_2d.rs index 3a43055491..15ed1c3ab0 100644 --- a/crates/bevy_gizmos/src/pipeline_2d.rs +++ b/crates/bevy_gizmos/src/pipeline_2d.rs @@ -1,7 +1,7 @@ use crate::{ config::{GizmoLineJoint, GizmoLineStyle, GizmoMeshConfig}, line_gizmo_vertex_buffer_layouts, line_joint_gizmo_vertex_buffer_layouts, DrawLineGizmo, - DrawLineJointGizmo, GizmoRenderSystem, GpuLineGizmo, LineGizmoUniformBindgroupLayout, + DrawLineJointGizmo, GizmoRenderSystems, GpuLineGizmo, LineGizmoUniformBindgroupLayout, SetLineGizmoBindGroup, LINE_JOINT_SHADER_HANDLE, LINE_SHADER_HANDLE, }; use bevy_app::{App, Plugin}; @@ -25,7 +25,7 @@ use bevy_render::{ }, render_resource::*, view::{ExtractedView, Msaa, RenderLayers, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_sprite::{Mesh2dPipeline, Mesh2dPipelineKey, SetMesh2dViewBindGroup}; use tracing::error; @@ -46,8 +46,8 @@ impl Plugin for LineGizmo2dPlugin { .init_resource::>() .configure_sets( Render, - GizmoRenderSystem::QueueLineGizmos2d - .in_set(RenderSet::Queue) + GizmoRenderSystems::QueueLineGizmos2d + .in_set(RenderSystems::Queue) .ambiguous_with(bevy_sprite::queue_sprites) .ambiguous_with( bevy_sprite::queue_material2d_meshes::, @@ -56,7 +56,7 @@ impl Plugin for LineGizmo2dPlugin { .add_systems( Render, (queue_line_gizmos_2d, queue_line_joint_gizmos_2d) - .in_set(GizmoRenderSystem::QueueLineGizmos2d) + .in_set(GizmoRenderSystems::QueueLineGizmos2d) .after(prepare_assets::), ); } diff --git a/crates/bevy_gizmos/src/pipeline_3d.rs b/crates/bevy_gizmos/src/pipeline_3d.rs index 799793e6cb..87d865f8ca 100644 --- a/crates/bevy_gizmos/src/pipeline_3d.rs +++ b/crates/bevy_gizmos/src/pipeline_3d.rs @@ -1,7 +1,7 @@ use crate::{ config::{GizmoLineJoint, GizmoLineStyle, GizmoMeshConfig}, line_gizmo_vertex_buffer_layouts, line_joint_gizmo_vertex_buffer_layouts, DrawLineGizmo, - DrawLineJointGizmo, GizmoRenderSystem, GpuLineGizmo, LineGizmoUniformBindgroupLayout, + DrawLineJointGizmo, GizmoRenderSystems, GpuLineGizmo, LineGizmoUniformBindgroupLayout, SetLineGizmoBindGroup, LINE_JOINT_SHADER_HANDLE, LINE_SHADER_HANDLE, }; use bevy_app::{App, Plugin}; @@ -30,7 +30,7 @@ use bevy_render::{ }, render_resource::*, view::{ExtractedView, Msaa, RenderLayers, ViewTarget}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use tracing::error; @@ -49,14 +49,14 @@ impl Plugin for LineGizmo3dPlugin { .init_resource::>() .configure_sets( Render, - GizmoRenderSystem::QueueLineGizmos3d - .in_set(RenderSet::Queue) + GizmoRenderSystems::QueueLineGizmos3d + .in_set(RenderSystems::Queue) .ambiguous_with(bevy_pbr::queue_material_meshes::), ) .add_systems( Render, (queue_line_gizmos_3d, queue_line_joint_gizmos_3d) - .in_set(GizmoRenderSystem::QueueLineGizmos3d) + .in_set(GizmoRenderSystems::QueueLineGizmos3d) .after(prepare_assets::), ); } diff --git a/crates/bevy_input/src/lib.rs b/crates/bevy_input/src/lib.rs index e1119c3d35..67c8995179 100644 --- a/crates/bevy_input/src/lib.rs +++ b/crates/bevy_input/src/lib.rs @@ -76,7 +76,11 @@ pub struct InputPlugin; /// Label for systems that update the input data. #[derive(Debug, PartialEq, Eq, Clone, Hash, SystemSet)] -pub struct InputSystem; +pub struct InputSystems; + +/// Deprecated alias for [`InputSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `InputSystems`.")] +pub type InputSystem = InputSystems; impl Plugin for InputPlugin { fn build(&self, app: &mut App) { @@ -85,7 +89,7 @@ impl Plugin for InputPlugin { .add_event::() .add_event::() .init_resource::>() - .add_systems(PreUpdate, keyboard_input_system.in_set(InputSystem)) + .add_systems(PreUpdate, keyboard_input_system.in_set(InputSystems)) // mouse .add_event::() .add_event::() @@ -98,7 +102,7 @@ impl Plugin for InputPlugin { accumulate_mouse_motion_system, accumulate_mouse_scroll_system, ) - .in_set(InputSystem), + .in_set(InputSystems), ) .add_event::() .add_event::() @@ -122,12 +126,12 @@ impl Plugin for InputPlugin { gamepad_connection_system, gamepad_event_processing_system.after(gamepad_connection_system), ) - .in_set(InputSystem), + .in_set(InputSystems), ) // touch .add_event::() .init_resource::() - .add_systems(PreUpdate, touch_screen_input_system.in_set(InputSystem)); + .add_systems(PreUpdate, touch_screen_input_system.in_set(InputSystems)); #[cfg(feature = "bevy_reflect")] { diff --git a/crates/bevy_input_focus/src/lib.rs b/crates/bevy_input_focus/src/lib.rs index 3f7ecf9e7c..44ff0ef645 100644 --- a/crates/bevy_input_focus/src/lib.rs +++ b/crates/bevy_input_focus/src/lib.rs @@ -136,7 +136,7 @@ pub struct InputFocusVisible(pub bool); /// If no entity has input focus, then the event is dispatched to the main window. /// /// To set up your own bubbling input event, add the [`dispatch_focused_input::`](dispatch_focused_input) system to your app, -/// in the [`InputFocusSet::Dispatch`] system set during [`PreUpdate`]. +/// in the [`InputFocusSystems::Dispatch`] system set during [`PreUpdate`]. #[derive(Clone, Debug, Component)] #[cfg_attr(feature = "bevy_reflect", derive(Reflect), reflect(Component, Clone))] pub struct FocusedInput { @@ -195,7 +195,7 @@ impl Plugin for InputDispatchPlugin { dispatch_focused_input::, dispatch_focused_input::, ) - .in_set(InputFocusSet::Dispatch), + .in_set(InputFocusSystems::Dispatch), ); #[cfg(feature = "bevy_reflect")] @@ -209,11 +209,15 @@ impl Plugin for InputDispatchPlugin { /// /// These systems run in the [`PreUpdate`] schedule. #[derive(SystemSet, Debug, PartialEq, Eq, Hash, Clone)] -pub enum InputFocusSet { +pub enum InputFocusSystems { /// System which dispatches bubbled input events to the focused entity, or to the primary window. Dispatch, } +/// Deprecated alias for [`InputFocusSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `InputFocusSystems`.")] +pub type InputFocusSet = InputFocusSystems; + /// Sets the initial focus to the primary window, if any. pub fn set_initial_focus( mut input_focus: ResMut, diff --git a/crates/bevy_pbr/src/atmosphere/mod.rs b/crates/bevy_pbr/src/atmosphere/mod.rs index e7f17f0e1e..773852499e 100644 --- a/crates/bevy_pbr/src/atmosphere/mod.rs +++ b/crates/bevy_pbr/src/atmosphere/mod.rs @@ -56,7 +56,7 @@ use bevy_render::{ render_graph::{RenderGraphApp, ViewNodeRunner}, render_resource::{Shader, TextureFormat, TextureUsages}, renderer::RenderAdapter, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_core_pipeline::core_3d::{graph::Core3d, Camera3d}; @@ -190,11 +190,11 @@ impl Plugin for AtmospherePlugin { .add_systems( Render, ( - configure_camera_depth_usages.in_set(RenderSet::ManageViews), - queue_render_sky_pipelines.in_set(RenderSet::Queue), - prepare_atmosphere_textures.in_set(RenderSet::PrepareResources), - prepare_atmosphere_transforms.in_set(RenderSet::PrepareResources), - prepare_atmosphere_bind_groups.in_set(RenderSet::PrepareBindGroups), + configure_camera_depth_usages.in_set(RenderSystems::ManageViews), + queue_render_sky_pipelines.in_set(RenderSystems::Queue), + prepare_atmosphere_textures.in_set(RenderSystems::PrepareResources), + prepare_atmosphere_transforms.in_set(RenderSystems::PrepareResources), + prepare_atmosphere_bind_groups.in_set(RenderSystems::PrepareBindGroups), ), ) .add_render_graph_node::>( diff --git a/crates/bevy_pbr/src/decal/clustered.rs b/crates/bevy_pbr/src/decal/clustered.rs index 5272bce80c..cadcd1b871 100644 --- a/crates/bevy_pbr/src/decal/clustered.rs +++ b/crates/bevy_pbr/src/decal/clustered.rs @@ -43,7 +43,7 @@ use bevy_render::{ sync_world::RenderEntity, texture::{FallbackImage, GpuImage}, view::{self, ViewVisibility, Visibility, VisibilityClass}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_transform::{components::GlobalTransform, prelude::Transform}; use bytemuck::{Pod, Zeroable}; @@ -173,10 +173,13 @@ impl Plugin for ClusteredDecalPlugin { .add_systems( Render, prepare_decals - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .after(prepare_lights), ) - .add_systems(Render, upload_decals.in_set(RenderSet::PrepareResources)); + .add_systems( + Render, + upload_decals.in_set(RenderSystems::PrepareResources), + ); } } diff --git a/crates/bevy_pbr/src/deferred/mod.rs b/crates/bevy_pbr/src/deferred/mod.rs index e40b3a940a..eccf6404ad 100644 --- a/crates/bevy_pbr/src/deferred/mod.rs +++ b/crates/bevy_pbr/src/deferred/mod.rs @@ -29,7 +29,7 @@ use bevy_render::{ render_resource::{binding_types::uniform_buffer, *}, renderer::{RenderContext, RenderDevice}, view::{ExtractedView, ViewTarget, ViewUniformOffset}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; pub struct DeferredPbrLightingPlugin; @@ -115,7 +115,7 @@ impl Plugin for DeferredPbrLightingPlugin { .init_resource::>() .add_systems( Render, - (prepare_deferred_lighting_pipelines.in_set(RenderSet::Prepare),), + (prepare_deferred_lighting_pipelines.in_set(RenderSystems::Prepare),), ) .add_render_graph_node::>( Core3d, diff --git a/crates/bevy_pbr/src/lib.rs b/crates/bevy_pbr/src/lib.rs index 1810bc67eb..f9226782c9 100644 --- a/crates/bevy_pbr/src/lib.rs +++ b/crates/bevy_pbr/src/lib.rs @@ -130,17 +130,17 @@ use bevy_ecs::prelude::*; use bevy_image::Image; use bevy_render::{ alpha::AlphaMode, - camera::{sort_cameras, CameraUpdateSystem, Projection}, + camera::{sort_cameras, CameraUpdateSystems, Projection}, extract_component::ExtractComponentPlugin, extract_resource::ExtractResourcePlugin, render_graph::RenderGraph, render_resource::Shader, sync_component::SyncComponentPlugin, view::VisibilitySystems, - ExtractSchedule, Render, RenderApp, RenderDebugFlags, RenderSet, + ExtractSchedule, Render, RenderApp, RenderDebugFlags, RenderSystems, }; -use bevy_transform::TransformSystem; +use bevy_transform::TransformSystems; pub const PBR_TYPES_SHADER_HANDLE: Handle = weak_handle!("b0330585-2335-4268-9032-a6c4c2d932f6"); @@ -401,21 +401,21 @@ impl Plugin for PbrPlugin { ( add_clusters .in_set(SimulationLightSystems::AddClusters) - .after(CameraUpdateSystem), + .after(CameraUpdateSystems), assign_objects_to_clusters .in_set(SimulationLightSystems::AssignLightsToClusters) - .after(TransformSystem::TransformPropagate) + .after(TransformSystems::Propagate) .after(VisibilitySystems::CheckVisibility) - .after(CameraUpdateSystem), + .after(CameraUpdateSystems), clear_directional_light_cascades .in_set(SimulationLightSystems::UpdateDirectionalLightCascades) - .after(TransformSystem::TransformPropagate) - .after(CameraUpdateSystem), + .after(TransformSystems::Propagate) + .after(CameraUpdateSystems), update_directional_light_frusta .in_set(SimulationLightSystems::UpdateLightFrusta) // This must run after CheckVisibility because it relies on `ViewVisibility` .after(VisibilitySystems::CheckVisibility) - .after(TransformSystem::TransformPropagate) + .after(TransformSystems::Propagate) .after(SimulationLightSystems::UpdateDirectionalLightCascades) // We assume that no entity will be both a directional light and a spot light, // so these systems will run independently of one another. @@ -423,11 +423,11 @@ impl Plugin for PbrPlugin { .ambiguous_with(update_spot_light_frusta), update_point_light_frusta .in_set(SimulationLightSystems::UpdateLightFrusta) - .after(TransformSystem::TransformPropagate) + .after(TransformSystems::Propagate) .after(SimulationLightSystems::AssignLightsToClusters), update_spot_light_frusta .in_set(SimulationLightSystems::UpdateLightFrusta) - .after(TransformSystem::TransformPropagate) + .after(TransformSystems::Propagate) .after(SimulationLightSystems::AssignLightsToClusters), ( check_dir_light_mesh_visibility, @@ -435,7 +435,7 @@ impl Plugin for PbrPlugin { ) .in_set(SimulationLightSystems::CheckLightVisibility) .after(VisibilitySystems::CalculateBounds) - .after(TransformSystem::TransformPropagate) + .after(TransformSystems::Propagate) .after(SimulationLightSystems::UpdateLightFrusta) // NOTE: This MUST be scheduled AFTER the core renderer visibility check // because that resets entity `ViewVisibility` for the first view @@ -478,9 +478,9 @@ impl Plugin for PbrPlugin { Render, ( prepare_lights - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .after(sort_cameras), - prepare_clusters.in_set(RenderSet::PrepareResources), + prepare_clusters.in_set(RenderSystems::PrepareResources), ), ) .init_resource::() diff --git a/crates/bevy_pbr/src/light_probe/mod.rs b/crates/bevy_pbr/src/light_probe/mod.rs index ebfc7c7e7c..d7323a1e3c 100644 --- a/crates/bevy_pbr/src/light_probe/mod.rs +++ b/crates/bevy_pbr/src/light_probe/mod.rs @@ -27,7 +27,7 @@ use bevy_render::{ sync_world::RenderEntity, texture::{FallbackImage, GpuImage}, view::{ExtractedView, Visibility}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_transform::{components::Transform, prelude::GlobalTransform}; use tracing::error; @@ -383,7 +383,7 @@ impl Plugin for LightProbePlugin { .add_systems( Render, (upload_light_probes, prepare_environment_uniform_buffer) - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), ); } } diff --git a/crates/bevy_pbr/src/lightmap/mod.rs b/crates/bevy_pbr/src/lightmap/mod.rs index 4175d6ff61..5ddb1d6c72 100644 --- a/crates/bevy_pbr/src/lightmap/mod.rs +++ b/crates/bevy_pbr/src/lightmap/mod.rs @@ -64,7 +64,7 @@ use fixedbitset::FixedBitSet; use nonmax::{NonMaxU16, NonMaxU32}; use tracing::error; -use crate::{binding_arrays_are_usable, ExtractMeshesSet}; +use crate::{binding_arrays_are_usable, MeshExtractionSystems}; /// The ID of the lightmap shader. pub const LIGHTMAP_SHADER_HANDLE: Handle = @@ -201,9 +201,10 @@ impl Plugin for LightmapPlugin { return; }; - render_app - .init_resource::() - .add_systems(ExtractSchedule, extract_lightmaps.after(ExtractMeshesSet)); + render_app.init_resource::().add_systems( + ExtractSchedule, + extract_lightmaps.after(MeshExtractionSystems), + ); } } diff --git a/crates/bevy_pbr/src/material.rs b/crates/bevy_pbr/src/material.rs index 1814996184..af11db1ba6 100644 --- a/crates/bevy_pbr/src/material.rs +++ b/crates/bevy_pbr/src/material.rs @@ -8,7 +8,7 @@ use crate::meshlet::{ }; use crate::*; use bevy_asset::prelude::AssetChanged; -use bevy_asset::{Asset, AssetEvents, AssetId, AssetServer, UntypedAssetId}; +use bevy_asset::{Asset, AssetEventSystems, AssetId, AssetServer, UntypedAssetId}; use bevy_core_pipeline::deferred::{AlphaMask3dDeferred, Opaque3dDeferred}; use bevy_core_pipeline::prepass::{AlphaMask3dPrepass, Opaque3dPrepass}; use bevy_core_pipeline::{ @@ -288,7 +288,7 @@ where PostUpdate, ( mark_meshes_as_changed_if_their_materials_changed::.ambiguous_with_all(), - check_entities_needing_specialization::.after(AssetEvents), + check_entities_needing_specialization::.after(AssetEventSystems), ) .after(mark_3d_meshes_as_changed_if_their_assets_changed), ); @@ -316,9 +316,9 @@ where .add_systems( ExtractSchedule, ( - extract_mesh_materials::.in_set(ExtractMaterialsSet), + extract_mesh_materials::.in_set(MaterialExtractionSystems), early_sweep_material_instances:: - .after(ExtractMaterialsSet) + .after(MaterialExtractionSystems) .before(late_sweep_material_instances), extract_entities_needs_specialization::.after(extract_cameras), ), @@ -327,13 +327,13 @@ where Render, ( specialize_material_meshes:: - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) .after(prepare_assets::>) .after(prepare_assets::) .after(collect_meshes_for_gpu_building) .after(set_mesh_motion_vector_flags), queue_material_meshes:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>), ), ) @@ -344,7 +344,7 @@ where write_material_bind_group_buffers::, ) .chain() - .in_set(RenderSet::PrepareBindGroups) + .in_set(RenderSystems::PrepareBindGroups) .after(prepare_assets::>), ); @@ -356,14 +356,15 @@ where .add_systems( Render, ( - check_views_lights_need_specialization.in_set(RenderSet::PrepareAssets), + check_views_lights_need_specialization + .in_set(RenderSystems::PrepareAssets), // specialize_shadows:: also needs to run after prepare_assets::>, // which is fine since ManageViews is after PrepareAssets specialize_shadows:: - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .after(prepare_lights), queue_shadows:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>), ), ); @@ -373,7 +374,7 @@ where render_app.add_systems( Render, queue_material_meshlet_meshes:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .run_if(resource_exists::), ); @@ -381,7 +382,7 @@ where render_app.add_systems( Render, prepare_material_meshlet_meshes_main_opaque_pass:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>) .before(queue_material_meshlet_meshes::) .run_if(resource_exists::), @@ -637,7 +638,11 @@ pub struct RenderMaterialInstance { /// A [`SystemSet`] that contains all `extract_mesh_materials` systems. #[derive(SystemSet, Clone, PartialEq, Eq, Debug, Hash)] -pub struct ExtractMaterialsSet; +pub struct MaterialExtractionSystems; + +/// Deprecated alias for [`MaterialExtractionSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `MaterialExtractionSystems`.")] +pub type ExtractMaterialsSet = MaterialExtractionSystems; pub const fn alpha_mode_pipeline_key(alpha_mode: AlphaMode, msaa: &Msaa) -> MeshPipelineKey { match alpha_mode { diff --git a/crates/bevy_pbr/src/meshlet/mod.rs b/crates/bevy_pbr/src/meshlet/mod.rs index 2e483b210c..2375894613 100644 --- a/crates/bevy_pbr/src/meshlet/mod.rs +++ b/crates/bevy_pbr/src/meshlet/mod.rs @@ -79,7 +79,7 @@ use bevy_render::{ renderer::RenderDevice, settings::WgpuFeatures, view::{self, prepare_view_targets, Msaa, Visibility, VisibilityClass}, - ExtractSchedule, Render, RenderApp, RenderSet, + ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_transform::components::Transform; use derive_more::From; @@ -277,12 +277,12 @@ impl Plugin for MeshletPlugin { .add_systems( Render, ( - perform_pending_meshlet_mesh_writes.in_set(RenderSet::PrepareAssets), + perform_pending_meshlet_mesh_writes.in_set(RenderSystems::PrepareAssets), configure_meshlet_views .after(prepare_view_targets) - .in_set(RenderSet::ManageViews), - prepare_meshlet_per_frame_resources.in_set(RenderSet::PrepareResources), - prepare_meshlet_view_bind_groups.in_set(RenderSet::PrepareBindGroups), + .in_set(RenderSystems::ManageViews), + prepare_meshlet_per_frame_resources.in_set(RenderSystems::PrepareResources), + prepare_meshlet_view_bind_groups.in_set(RenderSystems::PrepareBindGroups), ), ); } diff --git a/crates/bevy_pbr/src/prepass/mod.rs b/crates/bevy_pbr/src/prepass/mod.rs index 77f874c168..cc8dcea6a0 100644 --- a/crates/bevy_pbr/src/prepass/mod.rs +++ b/crates/bevy_pbr/src/prepass/mod.rs @@ -19,7 +19,7 @@ use bevy_render::{ renderer::RenderAdapter, sync_world::RenderEntity, view::{RenderVisibilityRanges, RetainedViewEntity, VISIBILITY_RANGES_STORAGE_BUFFER_COUNT}, - ExtractSchedule, Render, RenderApp, RenderDebugFlags, RenderSet, + ExtractSchedule, Render, RenderApp, RenderDebugFlags, RenderSystems, }; pub use prepass_bindings::*; @@ -60,7 +60,7 @@ use bevy_ecs::system::SystemChangeTick; use bevy_platform::collections::HashMap; use bevy_render::sync_world::MainEntityHashMap; use bevy_render::view::RenderVisibleEntities; -use bevy_render::RenderSet::{PrepareAssets, PrepareResources}; +use bevy_render::RenderSystems::{PrepareAssets, PrepareResources}; use core::{hash::Hash, marker::PhantomData}; pub const PREPASS_SHADER_HANDLE: Handle = @@ -126,7 +126,7 @@ where render_app .add_systems( Render, - prepare_prepass_view_bind_group::.in_set(RenderSet::PrepareBindGroups), + prepare_prepass_view_bind_group::.in_set(RenderSystems::PrepareBindGroups), ) .init_resource::() .init_resource::>>() @@ -216,13 +216,13 @@ where ( check_prepass_views_need_specialization.in_set(PrepareAssets), specialize_prepass_material_meshes:: - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) .after(prepare_assets::>) .after(prepare_assets::) .after(collect_meshes_for_gpu_building) .after(set_mesh_motion_vector_flags), queue_prepass_material_meshes:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>) // queue_material_meshes only writes to `material_bind_group_id`, which `queue_prepass_material_meshes` doesn't read .ambiguous_with(queue_material_meshes::), @@ -233,7 +233,7 @@ where render_app.add_systems( Render, prepare_material_meshlet_meshes_prepass:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>) .before(queue_material_meshlet_meshes::) .run_if(resource_exists::), diff --git a/crates/bevy_pbr/src/render/fog.rs b/crates/bevy_pbr/src/render/fog.rs index 9394380f71..9d7fd0b18d 100644 --- a/crates/bevy_pbr/src/render/fog.rs +++ b/crates/bevy_pbr/src/render/fog.rs @@ -8,7 +8,7 @@ use bevy_render::{ render_resource::{DynamicUniformBuffer, Shader, ShaderType}, renderer::{RenderDevice, RenderQueue}, view::ExtractedView, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use crate::{DistanceFog, FogFalloff}; @@ -142,7 +142,7 @@ impl Plugin for FogPlugin { if let Some(render_app) = app.get_sub_app_mut(RenderApp) { render_app .init_resource::() - .add_systems(Render, prepare_fog.in_set(RenderSet::PrepareResources)); + .add_systems(Render, prepare_fog.in_set(RenderSystems::PrepareResources)); } } } diff --git a/crates/bevy_pbr/src/render/gpu_preprocess.rs b/crates/bevy_pbr/src/render/gpu_preprocess.rs index 912f6192ce..5356c7580e 100644 --- a/crates/bevy_pbr/src/render/gpu_preprocess.rs +++ b/crates/bevy_pbr/src/render/gpu_preprocess.rs @@ -50,7 +50,7 @@ use bevy_render::{ renderer::{RenderContext, RenderDevice, RenderQueue}, settings::WgpuFeatures, view::{ExtractedView, NoIndirectDrawing, ViewUniform, ViewUniformOffset, ViewUniforms}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_utils::TypeIdMap; use bitflags::bitflags; @@ -471,14 +471,14 @@ impl Plugin for GpuMeshPreprocessPlugin { .add_systems( Render, ( - prepare_preprocess_pipelines.in_set(RenderSet::Prepare), + prepare_preprocess_pipelines.in_set(RenderSystems::Prepare), prepare_preprocess_bind_groups .run_if(resource_exists::>) - .in_set(RenderSet::PrepareBindGroups), - write_mesh_culling_data_buffer.in_set(RenderSet::PrepareResourcesFlush), + .in_set(RenderSystems::PrepareBindGroups), + write_mesh_culling_data_buffer.in_set(RenderSystems::PrepareResourcesFlush), ), ) .add_render_graph_node::( diff --git a/crates/bevy_pbr/src/render/mesh.rs b/crates/bevy_pbr/src/render/mesh.rs index 4bae79b807..11abee8746 100644 --- a/crates/bevy_pbr/src/render/mesh.rs +++ b/crates/bevy_pbr/src/render/mesh.rs @@ -74,7 +74,7 @@ use bevy_render::camera::TemporalJitter; use bevy_render::prelude::Msaa; use bevy_render::sync_world::{MainEntity, MainEntityHashMap}; use bevy_render::view::ExtractedView; -use bevy_render::RenderSet::PrepareAssets; +use bevy_render::RenderSystems::PrepareAssets; use bytemuck::{Pod, Zeroable}; use nonmax::{NonMaxU16, NonMaxU32}; use smallvec::{smallvec, SmallVec}; @@ -196,7 +196,7 @@ impl Plugin for MeshRenderPlugin { .init_resource::() .configure_sets( ExtractSchedule, - ExtractMeshesSet + MeshExtractionSystems .after(view::extract_visibility_ranges) .after(late_sweep_material_instances), ) @@ -206,22 +206,22 @@ impl Plugin for MeshRenderPlugin { extract_skins, extract_morphs, gpu_preprocessing::clear_batched_gpu_instance_buffers:: - .before(ExtractMeshesSet), + .before(MeshExtractionSystems), ), ) .add_systems( Render, ( - set_mesh_motion_vector_flags.in_set(RenderSet::PrepareMeshes), - prepare_skins.in_set(RenderSet::PrepareResources), - prepare_morphs.in_set(RenderSet::PrepareResources), - prepare_mesh_bind_groups.in_set(RenderSet::PrepareBindGroups), + set_mesh_motion_vector_flags.in_set(RenderSystems::PrepareMeshes), + prepare_skins.in_set(RenderSystems::PrepareResources), + prepare_morphs.in_set(RenderSystems::PrepareResources), + prepare_mesh_bind_groups.in_set(RenderSystems::PrepareBindGroups), prepare_mesh_view_bind_groups - .in_set(RenderSet::PrepareBindGroups) + .in_set(RenderSystems::PrepareBindGroups) .after(prepare_oit_buffers), no_gpu_preprocessing::clear_batched_cpu_instance_buffers:: - .in_set(RenderSet::Cleanup) - .after(RenderSet::Render), + .in_set(RenderSystems::Cleanup) + .after(RenderSystems::Render), ), ); } @@ -259,17 +259,17 @@ impl Plugin for MeshRenderPlugin { .init_resource::() .add_systems( ExtractSchedule, - extract_meshes_for_gpu_building.in_set(ExtractMeshesSet), + extract_meshes_for_gpu_building.in_set(MeshExtractionSystems), ) .add_systems( Render, ( gpu_preprocessing::write_batched_instance_buffers:: - .in_set(RenderSet::PrepareResourcesFlush), + .in_set(RenderSystems::PrepareResourcesFlush), gpu_preprocessing::delete_old_work_item_buffers:: - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), collect_meshes_for_gpu_building - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) // This must be before // `set_mesh_motion_vector_flags` so it doesn't // overwrite those flags. @@ -284,12 +284,12 @@ impl Plugin for MeshRenderPlugin { .insert_resource(cpu_batched_instance_buffer) .add_systems( ExtractSchedule, - extract_meshes_for_cpu_building.in_set(ExtractMeshesSet), + extract_meshes_for_cpu_building.in_set(MeshExtractionSystems), ) .add_systems( Render, no_gpu_preprocessing::write_batched_instance_buffer:: - .in_set(RenderSet::PrepareResourcesFlush), + .in_set(RenderSystems::PrepareResourcesFlush), ); }; @@ -1296,7 +1296,11 @@ pub struct RenderMeshQueueData<'a> { /// A [`SystemSet`] that encompasses both [`extract_meshes_for_cpu_building`] /// and [`extract_meshes_for_gpu_building`]. #[derive(SystemSet, Clone, PartialEq, Eq, Debug, Hash)] -pub struct ExtractMeshesSet; +pub struct MeshExtractionSystems; + +/// Deprecated alias for [`MeshExtractionSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `MeshExtractionSystems`.")] +pub type ExtractMeshesSet = MeshExtractionSystems; /// Extracts meshes from the main world into the render world, populating the /// [`RenderMeshInstances`]. diff --git a/crates/bevy_pbr/src/ssao/mod.rs b/crates/bevy_pbr/src/ssao/mod.rs index 9098f82773..9224374c60 100644 --- a/crates/bevy_pbr/src/ssao/mod.rs +++ b/crates/bevy_pbr/src/ssao/mod.rs @@ -33,7 +33,7 @@ use bevy_render::{ sync_world::RenderEntity, texture::{CachedTexture, TextureCache}, view::{Msaa, ViewUniform, ViewUniformOffset, ViewUniforms}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_utils::prelude::default; use core::mem; @@ -111,9 +111,9 @@ impl Plugin for ScreenSpaceAmbientOcclusionPlugin { .add_systems( Render, ( - prepare_ssao_pipelines.in_set(RenderSet::Prepare), - prepare_ssao_textures.in_set(RenderSet::PrepareResources), - prepare_ssao_bind_groups.in_set(RenderSet::PrepareBindGroups), + prepare_ssao_pipelines.in_set(RenderSystems::Prepare), + prepare_ssao_textures.in_set(RenderSystems::PrepareResources), + prepare_ssao_bind_groups.in_set(RenderSystems::PrepareBindGroups), ), ) .add_render_graph_node::>( diff --git a/crates/bevy_pbr/src/ssr/mod.rs b/crates/bevy_pbr/src/ssr/mod.rs index 1ee73da8f0..e4cc850d81 100644 --- a/crates/bevy_pbr/src/ssr/mod.rs +++ b/crates/bevy_pbr/src/ssr/mod.rs @@ -37,7 +37,7 @@ use bevy_render::{ }, renderer::{RenderAdapter, RenderContext, RenderDevice, RenderQueue}, view::{ExtractedView, Msaa, ViewTarget, ViewUniformOffset}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_utils::{once, prelude::default}; use tracing::info; @@ -196,10 +196,10 @@ impl Plugin for ScreenSpaceReflectionsPlugin { render_app .init_resource::() - .add_systems(Render, prepare_ssr_pipelines.in_set(RenderSet::Prepare)) + .add_systems(Render, prepare_ssr_pipelines.in_set(RenderSystems::Prepare)) .add_systems( Render, - prepare_ssr_settings.in_set(RenderSet::PrepareResources), + prepare_ssr_settings.in_set(RenderSystems::PrepareResources), ) .add_render_graph_node::>( Core3d, diff --git a/crates/bevy_pbr/src/volumetric_fog/mod.rs b/crates/bevy_pbr/src/volumetric_fog/mod.rs index b9f1d60945..4af1bbb421 100644 --- a/crates/bevy_pbr/src/volumetric_fog/mod.rs +++ b/crates/bevy_pbr/src/volumetric_fog/mod.rs @@ -51,7 +51,7 @@ use bevy_render::{ render_resource::{Shader, SpecializedRenderPipelines}, sync_component::SyncComponentPlugin, view::Visibility, - ExtractSchedule, Render, RenderApp, RenderSet, + ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_transform::components::Transform; use render::{ @@ -216,10 +216,10 @@ impl Plugin for VolumetricFogPlugin { .add_systems( Render, ( - render::prepare_volumetric_fog_pipelines.in_set(RenderSet::Prepare), - render::prepare_volumetric_fog_uniforms.in_set(RenderSet::Prepare), + render::prepare_volumetric_fog_pipelines.in_set(RenderSystems::Prepare), + render::prepare_volumetric_fog_uniforms.in_set(RenderSystems::Prepare), render::prepare_view_depth_textures_for_volumetric_fog - .in_set(RenderSet::Prepare) + .in_set(RenderSystems::Prepare) .before(prepare_core_3d_depth_textures), ), ); diff --git a/crates/bevy_pbr/src/wireframe.rs b/crates/bevy_pbr/src/wireframe.rs index 407062064a..7b748c2535 100644 --- a/crates/bevy_pbr/src/wireframe.rs +++ b/crates/bevy_pbr/src/wireframe.rs @@ -5,7 +5,7 @@ use crate::{ use bevy_app::{App, Plugin, PostUpdate, Startup, Update}; use bevy_asset::{ load_internal_asset, prelude::AssetChanged, weak_handle, AsAssetId, Asset, AssetApp, - AssetEvents, AssetId, Assets, Handle, UntypedAssetId, + AssetEventSystems, AssetId, Assets, Handle, UntypedAssetId, }; use bevy_color::{Color, ColorToComponents}; use bevy_core_pipeline::core_3d::{ @@ -51,7 +51,7 @@ use bevy_render::{ ExtractedView, NoIndirectDrawing, RenderVisibilityRanges, RenderVisibleEntities, RetainedViewEntity, ViewDepthTexture, ViewTarget, }, - Extract, Render, RenderApp, RenderDebugFlags, RenderSet, + Extract, Render, RenderApp, RenderDebugFlags, RenderSystems, }; use core::{hash::Hash, ops::Range}; use tracing::error; @@ -115,7 +115,7 @@ impl Plugin for WireframePlugin { .add_systems( PostUpdate, check_wireframe_entities_needing_specialization - .after(AssetEvents) + .after(AssetEventSystems) .run_if(resource_exists::), ); @@ -151,11 +151,11 @@ impl Plugin for WireframePlugin { Render, ( specialize_wireframes - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) .after(prepare_assets::) .after(prepare_assets::), queue_wireframes - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::), ), ); diff --git a/crates/bevy_picking/src/backend.rs b/crates/bevy_picking/src/backend.rs index fb2f9d7d7a..3758816ac9 100644 --- a/crates/bevy_picking/src/backend.rs +++ b/crates/bevy_picking/src/backend.rs @@ -42,7 +42,7 @@ pub mod prelude { pub use super::{ray::RayMap, HitData, PointerHits}; pub use crate::{ pointer::{PointerId, PointerLocation}, - PickSet, Pickable, + Pickable, PickingSystems, }; } @@ -54,7 +54,7 @@ pub mod prelude { /// /// Note that systems reading these events in [`PreUpdate`](bevy_app::PreUpdate) will not report ordering /// ambiguities with picking backends. Take care to ensure such systems are explicitly ordered -/// against [`PickSet::Backend`](crate::PickSet::Backend), or better, avoid reading `PointerHits` in `PreUpdate`. +/// against [`PickingSystems::Backend`](crate::PickingSystems::Backend), or better, avoid reading `PointerHits` in `PreUpdate`. #[derive(Event, Debug, Clone, Reflect)] #[reflect(Debug, Clone)] pub struct PointerHits { diff --git a/crates/bevy_picking/src/events.rs b/crates/bevy_picking/src/events.rs index 88b3b9bccc..29405099f6 100644 --- a/crates/bevy_picking/src/events.rs +++ b/crates/bevy_picking/src/events.rs @@ -23,7 +23,7 @@ //! //! The order in which interaction events are received is extremely important, and you can read more //! about it on the docs for the dispatcher system: [`pointer_events`]. This system runs in -//! [`PreUpdate`](bevy_app::PreUpdate) in [`PickSet::Hover`](crate::PickSet::Hover). All pointer-event +//! [`PreUpdate`](bevy_app::PreUpdate) in [`PickingSystems::Hover`](crate::PickingSystems::Hover). All pointer-event //! observers resolve during the sync point between [`pointer_events`] and //! [`update_interactions`](crate::hover::update_interactions). //! diff --git a/crates/bevy_picking/src/input.rs b/crates/bevy_picking/src/input.rs index 712e612224..d751e07c94 100644 --- a/crates/bevy_picking/src/input.rs +++ b/crates/bevy_picking/src/input.rs @@ -30,7 +30,7 @@ use crate::pointer::{ Location, PointerAction, PointerButton, PointerId, PointerInput, PointerLocation, }; -use crate::PickSet; +use crate::PickingSystems; /// The picking input prelude. /// @@ -86,7 +86,7 @@ impl Plugin for PointerInputPlugin { touch_pick_events.run_if(PointerInputPlugin::is_touch_enabled), ) .chain() - .in_set(PickSet::Input), + .in_set(PickingSystems::Input), ) .add_systems( Last, diff --git a/crates/bevy_picking/src/lib.rs b/crates/bevy_picking/src/lib.rs index 6afe86b0d6..53387e84c8 100644 --- a/crates/bevy_picking/src/lib.rs +++ b/crates/bevy_picking/src/lib.rs @@ -256,7 +256,7 @@ impl Default for Pickable { /// Groups the stages of the picking process under shared labels. #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum PickSet { +pub enum PickingSystems { /// Produces pointer input events. In the [`First`] schedule. Input, /// Runs after input events are generated but before commands are flushed. In the [`First`] @@ -269,13 +269,17 @@ pub enum PickSet { /// Reads [`backend::PointerHits`]s, and updates the hovermap, selection, and highlighting states. In /// the [`PreUpdate`] schedule. Hover, - /// Runs after all the [`PickSet::Hover`] systems are done, before event listeners are triggered. In the + /// Runs after all the [`PickingSystems::Hover`] systems are done, before event listeners are triggered. In the /// [`PreUpdate`] schedule. PostHover, /// Runs after all other picking sets. In the [`PreUpdate`] schedule. Last, } +/// Deprecated alias for [`PickingSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `PickingSystems`.")] +pub type PickSet = PickingSystems; + /// One plugin that contains the [`PointerInputPlugin`](input::PointerInputPlugin), [`PickingPlugin`] /// and the [`InteractionPlugin`], this is probably the plugin that will be most used. /// @@ -359,29 +363,29 @@ impl Plugin for PickingPlugin { pointer::PointerInput::receive, backend::ray::RayMap::repopulate.after(pointer::PointerInput::receive), ) - .in_set(PickSet::ProcessInput), + .in_set(PickingSystems::ProcessInput), ) .add_systems( PreUpdate, window::update_window_hits .run_if(Self::window_picking_should_run) - .in_set(PickSet::Backend), + .in_set(PickingSystems::Backend), ) .configure_sets( First, - (PickSet::Input, PickSet::PostInput) - .after(bevy_time::TimeSystem) - .after(bevy_ecs::event::EventUpdates) + (PickingSystems::Input, PickingSystems::PostInput) + .after(bevy_time::TimeSystems) + .after(bevy_ecs::event::EventUpdateSystems) .chain(), ) .configure_sets( PreUpdate, ( - PickSet::ProcessInput.run_if(Self::input_should_run), - PickSet::Backend, - PickSet::Hover.run_if(Self::hover_should_run), - PickSet::PostHover, - PickSet::Last, + PickingSystems::ProcessInput.run_if(Self::input_should_run), + PickingSystems::Backend, + PickingSystems::Hover.run_if(Self::hover_should_run), + PickingSystems::PostHover, + PickingSystems::Last, ) .chain(), ) @@ -427,7 +431,7 @@ impl Plugin for InteractionPlugin { PreUpdate, (generate_hovermap, update_interactions, pointer_events) .chain() - .in_set(PickSet::Hover), + .in_set(PickingSystems::Hover), ); } } diff --git a/crates/bevy_picking/src/mesh_picking/mod.rs b/crates/bevy_picking/src/mesh_picking/mod.rs index 1e7e45bc2d..fe08976eb8 100644 --- a/crates/bevy_picking/src/mesh_picking/mod.rs +++ b/crates/bevy_picking/src/mesh_picking/mod.rs @@ -19,7 +19,7 @@ pub mod ray_cast; use crate::{ backend::{ray::RayMap, HitData, PointerHits}, prelude::*, - PickSet, + PickingSystems, }; use bevy_app::prelude::*; use bevy_ecs::prelude::*; @@ -71,7 +71,7 @@ impl Plugin for MeshPickingPlugin { app.init_resource::() .register_type::() .register_type::() - .add_systems(PreUpdate, update_hits.in_set(PickSet::Backend)); + .add_systems(PreUpdate, update_hits.in_set(PickingSystems::Backend)); } } diff --git a/crates/bevy_remote/src/lib.rs b/crates/bevy_remote/src/lib.rs index b21fb97bbb..97b2e453e7 100644 --- a/crates/bevy_remote/src/lib.rs +++ b/crates/bevy_remote/src/lib.rs @@ -543,15 +543,15 @@ impl Plugin for RemotePlugin { .add_systems(PreStartup, setup_mailbox_channel) .configure_sets( RemoteLast, - (RemoteSet::ProcessRequests, RemoteSet::Cleanup).chain(), + (RemoteSystems::ProcessRequests, RemoteSystems::Cleanup).chain(), ) .add_systems( RemoteLast, ( (process_remote_requests, process_ongoing_watching_requests) .chain() - .in_set(RemoteSet::ProcessRequests), - remove_closed_watching_requests.in_set(RemoteSet::Cleanup), + .in_set(RemoteSystems::ProcessRequests), + remove_closed_watching_requests.in_set(RemoteSystems::Cleanup), ), ); } @@ -565,13 +565,17 @@ pub struct RemoteLast; /// /// These can be useful for ordering. #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum RemoteSet { +pub enum RemoteSystems { /// Processing of remote requests. ProcessRequests, /// Cleanup (remove closed watchers etc) Cleanup, } +/// Deprecated alias for [`RemoteSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `RemoteSystems`.")] +pub type RemoteSet = RemoteSystems; + /// A type to hold the allowed types of systems to be used as method handlers. #[derive(Debug)] pub enum RemoteMethodHandler { diff --git a/crates/bevy_render/src/batching/gpu_preprocessing.rs b/crates/bevy_render/src/batching/gpu_preprocessing.rs index 7de55ee022..6032ff436e 100644 --- a/crates/bevy_render/src/batching/gpu_preprocessing.rs +++ b/crates/bevy_render/src/batching/gpu_preprocessing.rs @@ -36,7 +36,7 @@ use crate::{ renderer::{RenderAdapter, RenderDevice, RenderQueue}, sync_world::MainEntity, view::{ExtractedView, NoIndirectDrawing, RetainedViewEntity}, - Render, RenderApp, RenderDebugFlags, RenderSet, + Render, RenderApp, RenderDebugFlags, RenderSystems, }; use super::{BatchMeta, GetBatchData, GetFullBatchData}; @@ -60,11 +60,11 @@ impl Plugin for BatchingPlugin { )) .add_systems( Render, - write_indirect_parameters_buffers.in_set(RenderSet::PrepareResourcesFlush), + write_indirect_parameters_buffers.in_set(RenderSystems::PrepareResourcesFlush), ) .add_systems( Render, - clear_indirect_parameters_buffers.in_set(RenderSet::ManageViews), + clear_indirect_parameters_buffers.in_set(RenderSystems::ManageViews), ); } diff --git a/crates/bevy_render/src/camera/mod.rs b/crates/bevy_render/src/camera/mod.rs index 4c77021bad..a2470a7660 100644 --- a/crates/bevy_render/src/camera/mod.rs +++ b/crates/bevy_render/src/camera/mod.rs @@ -12,7 +12,7 @@ pub use projection::*; use crate::{ extract_component::ExtractComponentPlugin, extract_resource::ExtractResourcePlugin, - render_graph::RenderGraph, ExtractSchedule, Render, RenderApp, RenderSet, + render_graph::RenderGraph, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_app::{App, Plugin}; use bevy_ecs::schedule::IntoScheduleConfigs; @@ -42,7 +42,7 @@ impl Plugin for CameraPlugin { render_app .init_resource::() .add_systems(ExtractSchedule, extract_cameras) - .add_systems(Render, sort_cameras.in_set(RenderSet::ManageViews)); + .add_systems(Render, sort_cameras.in_set(RenderSystems::ManageViews)); let camera_driver_node = CameraDriverNode::new(render_app.world_mut()); let mut render_graph = render_app.world_mut().resource_mut::(); render_graph.add_node(crate::graph::CameraDriverLabel, camera_driver_node); diff --git a/crates/bevy_render/src/camera/projection.rs b/crates/bevy_render/src/camera/projection.rs index e3f95cb036..a7796a1d1a 100644 --- a/crates/bevy_render/src/camera/projection.rs +++ b/crates/bevy_render/src/camera/projection.rs @@ -2,12 +2,12 @@ use core::fmt::Debug; use crate::{primitives::Frustum, view::VisibilitySystems}; use bevy_app::{App, Plugin, PostStartup, PostUpdate}; -use bevy_asset::AssetEvents; +use bevy_asset::AssetEventSystems; use bevy_derive::{Deref, DerefMut}; use bevy_ecs::prelude::*; use bevy_math::{ops, AspectRatio, Mat4, Rect, Vec2, Vec3A, Vec4}; use bevy_reflect::{std_traits::ReflectDefault, Reflect, ReflectDeserialize, ReflectSerialize}; -use bevy_transform::{components::GlobalTransform, TransformSystem}; +use bevy_transform::{components::GlobalTransform, TransformSystems}; use derive_more::derive::From; use serde::{Deserialize, Serialize}; @@ -25,18 +25,18 @@ impl Plugin for CameraProjectionPlugin { .register_type::() .add_systems( PostStartup, - crate::camera::camera_system.in_set(CameraUpdateSystem), + crate::camera::camera_system.in_set(CameraUpdateSystems), ) .add_systems( PostUpdate, ( crate::camera::camera_system - .in_set(CameraUpdateSystem) - .before(AssetEvents), + .in_set(CameraUpdateSystems) + .before(AssetEventSystems), crate::view::update_frusta .in_set(VisibilitySystems::UpdateFrusta) .after(crate::camera::camera_system) - .after(TransformSystem::TransformPropagate), + .after(TransformSystems::Propagate), ), ); } @@ -46,7 +46,11 @@ impl Plugin for CameraProjectionPlugin { /// /// [`camera_system`]: crate::camera::camera_system #[derive(SystemSet, Clone, Eq, PartialEq, Hash, Debug)] -pub struct CameraUpdateSystem; +pub struct CameraUpdateSystems; + +/// Deprecated alias for [`CameraUpdateSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `CameraUpdateSystems`.")] +pub type CameraUpdateSystem = CameraUpdateSystems; /// Describes a type that can generate a projection matrix, allowing it to be added to a /// [`Camera`]'s [`Projection`] component. diff --git a/crates/bevy_render/src/extract_component.rs b/crates/bevy_render/src/extract_component.rs index 19d15a2b86..e1f528d6ab 100644 --- a/crates/bevy_render/src/extract_component.rs +++ b/crates/bevy_render/src/extract_component.rs @@ -4,7 +4,7 @@ use crate::{ sync_component::SyncComponentPlugin, sync_world::RenderEntity, view::ViewVisibility, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_app::{App, Plugin}; use bevy_ecs::{ @@ -70,7 +70,7 @@ pub trait ExtractComponent: Component { /// For referencing the newly created uniforms a [`DynamicUniformIndex`] is inserted /// for every processed entity. /// -/// Therefore it sets up the [`RenderSet::Prepare`] step +/// Therefore it sets up the [`RenderSystems::Prepare`] step /// for the specified [`ExtractComponent`]. pub struct UniformComponentPlugin(PhantomData C>); @@ -87,7 +87,7 @@ impl Plugin for UniformComponentP .insert_resource(ComponentUniforms::::default()) .add_systems( Render, - prepare_uniform_components::.in_set(RenderSet::PrepareResources), + prepare_uniform_components::.in_set(RenderSystems::PrepareResources), ); } } diff --git a/crates/bevy_render/src/globals.rs b/crates/bevy_render/src/globals.rs index c05d96c4c9..49755f4098 100644 --- a/crates/bevy_render/src/globals.rs +++ b/crates/bevy_render/src/globals.rs @@ -3,7 +3,7 @@ use crate::{ prelude::Shader, render_resource::{ShaderType, UniformBuffer}, renderer::{RenderDevice, RenderQueue}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_app::{App, Plugin}; use bevy_asset::{load_internal_asset, weak_handle, Handle}; @@ -29,7 +29,7 @@ impl Plugin for GlobalsPlugin { .add_systems(ExtractSchedule, (extract_frame_count, extract_time)) .add_systems( Render, - prepare_globals_buffer.in_set(RenderSet::PrepareResources), + prepare_globals_buffer.in_set(RenderSystems::PrepareResources), ); } } diff --git a/crates/bevy_render/src/gpu_component_array_buffer.rs b/crates/bevy_render/src/gpu_component_array_buffer.rs index b3f78f5bfb..b4eb56197f 100644 --- a/crates/bevy_render/src/gpu_component_array_buffer.rs +++ b/crates/bevy_render/src/gpu_component_array_buffer.rs @@ -1,7 +1,7 @@ use crate::{ render_resource::{GpuArrayBuffer, GpuArrayBufferable}, renderer::{RenderDevice, RenderQueue}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_app::{App, Plugin}; use bevy_ecs::{ @@ -20,7 +20,7 @@ impl Plugin for GpuComponentArrayBufferPlugin if let Some(render_app) = app.get_sub_app_mut(RenderApp) { render_app.add_systems( Render, - prepare_gpu_component_array_buffers::.in_set(RenderSet::PrepareResources), + prepare_gpu_component_array_buffers::.in_set(RenderSystems::PrepareResources), ); } } diff --git a/crates/bevy_render/src/gpu_readback.rs b/crates/bevy_render/src/gpu_readback.rs index 02f0c2d1db..c05861f3da 100644 --- a/crates/bevy_render/src/gpu_readback.rs +++ b/crates/bevy_render/src/gpu_readback.rs @@ -9,7 +9,7 @@ use crate::{ storage::{GpuShaderStorageBuffer, ShaderStorageBuffer}, sync_world::MainEntity, texture::GpuImage, - ExtractSchedule, MainWorld, Render, RenderApp, RenderSet, + ExtractSchedule, MainWorld, Render, RenderApp, RenderSystems, }; use async_channel::{Receiver, Sender}; use bevy_app::{App, Plugin}; @@ -60,8 +60,10 @@ impl Plugin for GpuReadbackPlugin { .add_systems( Render, ( - prepare_buffers.in_set(RenderSet::PrepareResources), - map_buffers.after(render_system).in_set(RenderSet::Render), + prepare_buffers.in_set(RenderSystems::PrepareResources), + map_buffers + .after(render_system) + .in_set(RenderSystems::Render), ), ); } diff --git a/crates/bevy_render/src/lib.rs b/crates/bevy_render/src/lib.rs index 843bb68284..b4c9011c78 100644 --- a/crates/bevy_render/src/lib.rs +++ b/crates/bevy_render/src/lib.rs @@ -144,7 +144,7 @@ bitflags! { /// /// These can be useful for ordering, but you almost never want to add your systems to these sets. #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum RenderSet { +pub enum RenderSystems { /// This is used for applying the commands from the [`ExtractSchedule`] ExtractCommands, /// Prepare assets that have been created/modified/removed this frame. @@ -156,9 +156,9 @@ pub enum RenderSet { /// Queue drawable entities as phase items in render phases ready for /// sorting (if necessary) Queue, - /// A sub-set within [`Queue`](RenderSet::Queue) where mesh entity queue systems are executed. Ensures `prepare_assets::` is completed. + /// A sub-set within [`Queue`](RenderSystems::Queue) where mesh entity queue systems are executed. Ensures `prepare_assets::` is completed. QueueMeshes, - /// A sub-set within [`Queue`](RenderSet::Queue) where meshes that have + /// A sub-set within [`Queue`](RenderSystems::Queue) where meshes that have /// become invisible or changed phases are removed from the bins. QueueSweep, // TODO: This could probably be moved in favor of a system ordering @@ -169,14 +169,14 @@ pub enum RenderSet { /// Prepare render resources from extracted data for the GPU based on their sorted order. /// Create [`BindGroups`](render_resource::BindGroup) that depend on those data. Prepare, - /// A sub-set within [`Prepare`](RenderSet::Prepare) for initializing buffers, textures and uniforms for use in bind groups. + /// A sub-set within [`Prepare`](RenderSystems::Prepare) for initializing buffers, textures and uniforms for use in bind groups. PrepareResources, /// Collect phase buffers after - /// [`PrepareResources`](RenderSet::PrepareResources) has run. + /// [`PrepareResources`](RenderSystems::PrepareResources) has run. PrepareResourcesCollectPhaseBuffers, - /// Flush buffers after [`PrepareResources`](RenderSet::PrepareResources), but before [`PrepareBindGroups`](RenderSet::PrepareBindGroups). + /// Flush buffers after [`PrepareResources`](RenderSystems::PrepareResources), but before [`PrepareBindGroups`](RenderSystems::PrepareBindGroups). PrepareResourcesFlush, - /// A sub-set within [`Prepare`](RenderSet::Prepare) for constructing bind groups, or other data that relies on render resources prepared in [`PrepareResources`](RenderSet::PrepareResources). + /// A sub-set within [`Prepare`](RenderSystems::Prepare) for constructing bind groups, or other data that relies on render resources prepared in [`PrepareResources`](RenderSystems::PrepareResources). PrepareBindGroups, /// Actual rendering happens here. /// In most cases, only the render backend should insert resources here. @@ -185,10 +185,14 @@ pub enum RenderSet { Cleanup, /// Final cleanup occurs: all entities will be despawned. /// - /// Runs after [`Cleanup`](RenderSet::Cleanup). + /// Runs after [`Cleanup`](RenderSystems::Cleanup). PostCleanup, } +/// Deprecated alias for [`RenderSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `RenderSystems`.")] +pub type RenderSet = RenderSystems; + /// The main render schedule. #[derive(ScheduleLabel, Debug, Hash, PartialEq, Eq, Clone, Default)] pub struct Render; @@ -198,7 +202,7 @@ impl Render { /// /// The sets defined in this enum are configured to run in order. pub fn base_schedule() -> Schedule { - use RenderSet::*; + use RenderSystems::*; let mut schedule = Schedule::new(Self); @@ -293,7 +297,7 @@ pub const BINDLESS_SHADER_HANDLE: Handle = weak_handle!("13f1baaa-41bf-448e-929e-258f9307a522"); impl Plugin for RenderPlugin { - /// Initializes the renderer, sets up the [`RenderSet`] and creates the rendering sub-app. + /// Initializes the renderer, sets up the [`RenderSystems`] and creates the rendering sub-app. fn build(&self, app: &mut App) { app.init_asset::() .init_asset_loader::(); @@ -417,7 +421,7 @@ impl Plugin for RenderPlugin { .add_systems(ExtractSchedule, extract_render_asset_bytes_per_frame) .add_systems( Render, - reset_render_asset_bytes_per_frame.in_set(RenderSet::Cleanup), + reset_render_asset_bytes_per_frame.in_set(RenderSystems::Cleanup), ); } @@ -528,11 +532,11 @@ unsafe fn initialize_render_app(app: &mut App) { ( // This set applies the commands from the extract schedule while the render schedule // is running in parallel with the main app. - apply_extract_commands.in_set(RenderSet::ExtractCommands), + apply_extract_commands.in_set(RenderSystems::ExtractCommands), (PipelineCache::process_pipeline_queue_system, render_system) .chain() - .in_set(RenderSet::Render), - despawn_temporary_render_entities.in_set(RenderSet::PostCleanup), + .in_set(RenderSystems::Render), + despawn_temporary_render_entities.in_set(RenderSystems::PostCleanup), ), ); diff --git a/crates/bevy_render/src/mesh/allocator.rs b/crates/bevy_render/src/mesh/allocator.rs index bc638859ed..113369cea1 100644 --- a/crates/bevy_render/src/mesh/allocator.rs +++ b/crates/bevy_render/src/mesh/allocator.rs @@ -30,7 +30,7 @@ use crate::{ render_asset::{prepare_assets, ExtractedAssets}, render_resource::Buffer, renderer::{RenderAdapter, RenderDevice, RenderQueue}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; /// A plugin that manages GPU memory for mesh data. @@ -311,7 +311,7 @@ impl Plugin for MeshAllocatorPlugin { .add_systems( Render, allocate_and_free_meshes - .in_set(RenderSet::PrepareAssets) + .in_set(RenderSystems::PrepareAssets) .before(prepare_assets::), ); } diff --git a/crates/bevy_render/src/mesh/mod.rs b/crates/bevy_render/src/mesh/mod.rs index fbd530c14d..d15468376f 100644 --- a/crates/bevy_render/src/mesh/mod.rs +++ b/crates/bevy_render/src/mesh/mod.rs @@ -13,7 +13,7 @@ use crate::{ }; use allocator::MeshAllocatorPlugin; use bevy_app::{App, Plugin, PostUpdate}; -use bevy_asset::{AssetApp, AssetEvents, AssetId, RenderAssetUsages}; +use bevy_asset::{AssetApp, AssetEventSystems, AssetId, RenderAssetUsages}; use bevy_ecs::{ prelude::*, system::{ @@ -73,7 +73,7 @@ impl Plugin for MeshPlugin { PostUpdate, mark_3d_meshes_as_changed_if_their_assets_changed .ambiguous_with(VisibilitySystems::CalculateBounds) - .before(AssetEvents), + .before(AssetEventSystems), ); let Some(render_app) = app.get_sub_app_mut(RenderApp) else { diff --git a/crates/bevy_render/src/pipelined_rendering.rs b/crates/bevy_render/src/pipelined_rendering.rs index fb665e469d..efe728e7c7 100644 --- a/crates/bevy_render/src/pipelined_rendering.rs +++ b/crates/bevy_render/src/pipelined_rendering.rs @@ -97,7 +97,7 @@ impl Drop for RenderAppChannels { /// This is run on the main app's thread. /// - On the render thread, we first apply the `extract commands`. This is not run during extract, so the /// main schedule can start sooner. -/// - Then the `rendering schedule` is run. See [`RenderSet`](crate::RenderSet) for the standard steps in this process. +/// - Then the `rendering schedule` is run. See [`RenderSystems`](crate::RenderSystems) for the standard steps in this process. /// - In parallel to the rendering thread the [`RenderExtractApp`] schedule runs. By /// default, this schedule is empty. But it is useful if you need something to run before I/O processing. /// - Next all the `winit events` are processed. diff --git a/crates/bevy_render/src/render_asset.rs b/crates/bevy_render/src/render_asset.rs index 6626cb7797..1fa5758ca3 100644 --- a/crates/bevy_render/src/render_asset.rs +++ b/crates/bevy_render/src/render_asset.rs @@ -1,6 +1,6 @@ use crate::{ render_resource::AsBindGroupError, Extract, ExtractSchedule, MainWorld, Render, RenderApp, - RenderSet, Res, + RenderSystems, Res, }; use bevy_app::{App, Plugin, SubApp}; pub use bevy_asset::RenderAssetUsages; @@ -27,14 +27,18 @@ pub enum PrepareAssetError { /// The system set during which we extract modified assets to the render world. #[derive(SystemSet, Clone, PartialEq, Eq, Debug, Hash)] -pub struct ExtractAssetsSet; +pub struct AssetExtractionSystems; + +/// Deprecated alias for [`AssetExtractionSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `AssetExtractionSystems`.")] +pub type ExtractAssetsSet = AssetExtractionSystems; /// Describes how an asset gets extracted and prepared for rendering. /// /// In the [`ExtractSchedule`] step the [`RenderAsset::SourceAsset`] is transferred /// from the "main world" into the "render world". /// -/// After that in the [`RenderSet::PrepareAssets`] step the extracted asset +/// After that in the [`RenderSystems::PrepareAssets`] step the extracted asset /// is transformed into its GPU-representation of type [`RenderAsset`]. pub trait RenderAsset: Send + Sync + 'static + Sized { /// The representation of the asset in the "main world". @@ -88,7 +92,7 @@ pub trait RenderAsset: Send + Sync + 'static + Sized { /// and prepares them for the GPU. They can then be accessed from the [`RenderAssets`] resource. /// /// Therefore it sets up the [`ExtractSchedule`] and -/// [`RenderSet::PrepareAssets`] steps for the specified [`RenderAsset`]. +/// [`RenderSystems::PrepareAssets`] steps for the specified [`RenderAsset`]. /// /// The `AFTER` generic parameter can be used to specify that `A::prepare_asset` should not be run until /// `prepare_assets::` has completed. This allows the `prepare_asset` function to depend on another @@ -120,11 +124,11 @@ impl Plugin .init_resource::>() .add_systems( ExtractSchedule, - extract_render_asset::.in_set(ExtractAssetsSet), + extract_render_asset::.in_set(AssetExtractionSystems), ); AFTER::register_system( render_app, - prepare_assets::.in_set(RenderSet::PrepareAssets), + prepare_assets::.in_set(RenderSystems::PrepareAssets), ); } } diff --git a/crates/bevy_render/src/render_phase/mod.rs b/crates/bevy_render/src/render_phase/mod.rs index a4eb4a944f..272418f67f 100644 --- a/crates/bevy_render/src/render_phase/mod.rs +++ b/crates/bevy_render/src/render_phase/mod.rs @@ -10,10 +10,10 @@ //! //! To draw an entity, a corresponding [`PhaseItem`] has to be added to one or multiple of these //! render phases for each view that it is visible in. -//! This must be done in the [`RenderSet::Queue`]. -//! After that the render phase sorts them in the [`RenderSet::PhaseSort`]. +//! This must be done in the [`RenderSystems::Queue`]. +//! After that the render phase sorts them in the [`RenderSystems::PhaseSort`]. //! Finally the items are rendered using a single [`TrackedRenderPass`], during -//! the [`RenderSet::Render`]. +//! the [`RenderSystems::Render`]. //! //! Therefore each phase item is assigned a [`Draw`] function. //! These set up the state of the [`TrackedRenderPass`] (i.e. select the @@ -59,7 +59,7 @@ use crate::{ GetFullBatchData, }, render_resource::{CachedRenderPipelineId, GpuArrayBufferIndex, PipelineCache}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use bevy_ecs::{ prelude::*, @@ -1134,7 +1134,7 @@ where .add_systems( Render, ( - batching::sort_binned_render_phase::.in_set(RenderSet::PhaseSort), + batching::sort_binned_render_phase::.in_set(RenderSystems::PhaseSort), ( no_gpu_preprocessing::batch_and_prepare_binned_render_phase:: .run_if(resource_exists::>), @@ -1145,15 +1145,15 @@ where >, ), ) - .in_set(RenderSet::PrepareResources), - sweep_old_entities::.in_set(RenderSet::QueueSweep), + .in_set(RenderSystems::PrepareResources), + sweep_old_entities::.in_set(RenderSystems::QueueSweep), gpu_preprocessing::collect_buffers_for_phase:: .run_if( resource_exists::< BatchedInstanceBuffers, >, ) - .in_set(RenderSet::PrepareResourcesCollectPhaseBuffers), + .in_set(RenderSystems::PrepareResourcesCollectPhaseBuffers), ), ); } @@ -1250,14 +1250,14 @@ where >, ), ) - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), gpu_preprocessing::collect_buffers_for_phase:: .run_if( resource_exists::< BatchedInstanceBuffers, >, ) - .in_set(RenderSet::PrepareResourcesCollectPhaseBuffers), + .in_set(RenderSystems::PrepareResourcesCollectPhaseBuffers), ), ); } @@ -1465,10 +1465,10 @@ where /// /// The data required for rendering an entity is extracted from the main world in the /// [`ExtractSchedule`](crate::ExtractSchedule). -/// Then it has to be queued up for rendering during the [`RenderSet::Queue`], +/// Then it has to be queued up for rendering during the [`RenderSystems::Queue`], /// by adding a corresponding phase item to a render phase. /// Afterwards it will be possibly sorted and rendered automatically in the -/// [`RenderSet::PhaseSort`] and [`RenderSet::Render`], respectively. +/// [`RenderSystems::PhaseSort`] and [`RenderSystems::Render`], respectively. /// /// `PhaseItem`s come in two flavors: [`BinnedPhaseItem`]s and /// [`SortedPhaseItem`]s. diff --git a/crates/bevy_render/src/render_resource/pipeline_cache.rs b/crates/bevy_render/src/render_resource/pipeline_cache.rs index 653ae70b1c..be22c83f98 100644 --- a/crates/bevy_render/src/render_resource/pipeline_cache.rs +++ b/crates/bevy_render/src/render_resource/pipeline_cache.rs @@ -555,13 +555,13 @@ impl LayoutCache { /// The cache stores existing render and compute pipelines allocated on the GPU, as well as /// pending creation. Pipelines inserted into the cache are identified by a unique ID, which /// can be used to retrieve the actual GPU object once it's ready. The creation of the GPU -/// pipeline object is deferred to the [`RenderSet::Render`] step, just before the render +/// pipeline object is deferred to the [`RenderSystems::Render`] step, just before the render /// graph starts being processed, as this requires access to the GPU. /// /// Note that the cache does not perform automatic deduplication of identical pipelines. It is /// up to the user not to insert the same pipeline twice to avoid wasting GPU resources. /// -/// [`RenderSet::Render`]: crate::RenderSet::Render +/// [`RenderSystems::Render`]: crate::RenderSystems::Render #[derive(Resource)] pub struct PipelineCache { layout_cache: Arc>, @@ -959,10 +959,10 @@ impl PipelineCache { /// Process the pipeline queue and create all pending pipelines if possible. /// - /// This is generally called automatically during the [`RenderSet::Render`] step, but can + /// This is generally called automatically during the [`RenderSystems::Render`] step, but can /// be called manually to force creation at a different time. /// - /// [`RenderSet::Render`]: crate::RenderSet::Render + /// [`RenderSystems::Render`]: crate::RenderSystems::Render pub fn process_queue(&mut self) { let mut waiting_pipelines = mem::take(&mut self.waiting_pipelines); let mut pipelines = mem::take(&mut self.pipelines); diff --git a/crates/bevy_render/src/texture/mod.rs b/crates/bevy_render/src/texture/mod.rs index 6955de7ff4..de5361aad8 100644 --- a/crates/bevy_render/src/texture/mod.rs +++ b/crates/bevy_render/src/texture/mod.rs @@ -15,7 +15,7 @@ pub use texture_attachment::*; pub use texture_cache::*; use crate::{ - render_asset::RenderAssetPlugin, renderer::RenderDevice, Render, RenderApp, RenderSet, + render_asset::RenderAssetPlugin, renderer::RenderDevice, Render, RenderApp, RenderSystems, }; use bevy_app::{App, Plugin}; use bevy_asset::{weak_handle, AssetApp, Assets, Handle}; @@ -100,7 +100,7 @@ impl Plugin for ImagePlugin { if let Some(render_app) = app.get_sub_app_mut(RenderApp) { render_app.init_resource::().add_systems( Render, - update_texture_cache_system.in_set(RenderSet::Cleanup), + update_texture_cache_system.in_set(RenderSystems::Cleanup), ); } diff --git a/crates/bevy_render/src/view/mod.rs b/crates/bevy_render/src/view/mod.rs index c392dcaaeb..2f80e5f94b 100644 --- a/crates/bevy_render/src/view/mod.rs +++ b/crates/bevy_render/src/view/mod.rs @@ -24,7 +24,7 @@ use crate::{ CachedTexture, ColorAttachment, DepthAttachment, GpuImage, OutputColorAttachment, TextureCache, }, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }; use alloc::sync::Arc; use bevy_app::{App, Plugin}; @@ -126,18 +126,18 @@ impl Plugin for ViewPlugin { ( // `TextureView`s need to be dropped before reconfiguring window surfaces. clear_view_attachments - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .before(create_surfaces), prepare_view_attachments - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .before(prepare_view_targets) .after(prepare_windows), prepare_view_targets - .in_set(RenderSet::ManageViews) + .in_set(RenderSystems::ManageViews) .after(prepare_windows) .after(crate::render_asset::prepare_assets::) .ambiguous_with(crate::camera::sort_cameras), // doesn't use `sorted_camera_index_for_target` - prepare_view_uniforms.in_set(RenderSet::PrepareResources), + prepare_view_uniforms.in_set(RenderSystems::PrepareResources), ), ); } diff --git a/crates/bevy_render/src/view/visibility/mod.rs b/crates/bevy_render/src/view/visibility/mod.rs index 63c931a8b0..3a0772b687 100644 --- a/crates/bevy_render/src/view/visibility/mod.rs +++ b/crates/bevy_render/src/view/visibility/mod.rs @@ -14,7 +14,7 @@ use bevy_app::{Plugin, PostUpdate}; use bevy_asset::Assets; use bevy_ecs::{hierarchy::validate_parent_has_component, prelude::*}; use bevy_reflect::{std_traits::ReflectDefault, Reflect}; -use bevy_transform::{components::GlobalTransform, TransformSystem}; +use bevy_transform::{components::GlobalTransform, TransformSystems}; use bevy_utils::{Parallel, TypeIdMap}; use smallvec::SmallVec; @@ -342,7 +342,7 @@ impl Plugin for VisibilityPlugin { PostUpdate, (CalculateBounds, UpdateFrusta, VisibilityPropagate) .before(CheckVisibility) - .after(TransformSystem::TransformPropagate), + .after(TransformSystems::Propagate), ) .configure_sets( PostUpdate, diff --git a/crates/bevy_render/src/view/visibility/range.rs b/crates/bevy_render/src/view/visibility/range.rs index 4c264e0778..2559d3b8d2 100644 --- a/crates/bevy_render/src/view/visibility/range.rs +++ b/crates/bevy_render/src/view/visibility/range.rs @@ -32,7 +32,7 @@ use crate::{ primitives::Aabb, render_resource::BufferVec, renderer::{RenderDevice, RenderQueue}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; /// We need at least 4 storage buffer bindings available to enable the @@ -72,7 +72,7 @@ impl Plugin for VisibilityRangePlugin { .add_systems(ExtractSchedule, extract_visibility_ranges) .add_systems( Render, - write_render_visibility_ranges.in_set(RenderSet::PrepareResourcesFlush), + write_render_visibility_ranges.in_set(RenderSystems::PrepareResourcesFlush), ); } } diff --git a/crates/bevy_render/src/view/window/mod.rs b/crates/bevy_render/src/view/window/mod.rs index 9d94fdc7d1..4c8d86d040 100644 --- a/crates/bevy_render/src/view/window/mod.rs +++ b/crates/bevy_render/src/view/window/mod.rs @@ -1,7 +1,7 @@ use crate::{ render_resource::{SurfaceTexture, TextureView}, renderer::{RenderAdapter, RenderDevice, RenderInstance}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, WgpuWrapper, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, WgpuWrapper, }; use bevy_app::{App, Plugin}; use bevy_ecs::{entity::EntityHashMap, prelude::*}; @@ -40,7 +40,7 @@ impl Plugin for WindowRenderPlugin { .run_if(need_surface_configuration) .before(prepare_windows), ) - .add_systems(Render, prepare_windows.in_set(RenderSet::ManageViews)); + .add_systems(Render, prepare_windows.in_set(RenderSystems::ManageViews)); } } } diff --git a/crates/bevy_render/src/view/window/screenshot.rs b/crates/bevy_render/src/view/window/screenshot.rs index 5522f6d763..854a6bc064 100644 --- a/crates/bevy_render/src/view/window/screenshot.rs +++ b/crates/bevy_render/src/view/window/screenshot.rs @@ -13,7 +13,7 @@ use crate::{ renderer::RenderDevice, texture::{GpuImage, OutputColorAttachment}, view::{prepare_view_attachments, prepare_view_targets, ViewTargetAttachments, WindowSurfaces}, - ExtractSchedule, MainWorld, Render, RenderApp, RenderSet, + ExtractSchedule, MainWorld, Render, RenderApp, RenderSystems, }; use alloc::{borrow::Cow, sync::Arc}; use bevy_app::{First, Plugin, Update}; @@ -432,7 +432,7 @@ impl Plugin for ScreenshotPlugin { prepare_screenshots .after(prepare_view_attachments) .before(prepare_view_targets) - .in_set(RenderSet::ManageViews), + .in_set(RenderSystems::ManageViews), ); } } diff --git a/crates/bevy_sprite/src/lib.rs b/crates/bevy_sprite/src/lib.rs index 37d4d2d6e4..4b2d206420 100644 --- a/crates/bevy_sprite/src/lib.rs +++ b/crates/bevy_sprite/src/lib.rs @@ -42,7 +42,7 @@ pub use sprite::*; pub use texture_slice::*; use bevy_app::prelude::*; -use bevy_asset::{load_internal_asset, weak_handle, AssetEvents, Assets, Handle}; +use bevy_asset::{load_internal_asset, weak_handle, AssetEventSystems, Assets, Handle}; use bevy_core_pipeline::core_2d::{AlphaMask2d, Opaque2d, Transparent2d}; use bevy_ecs::prelude::*; use bevy_image::{prelude::*, TextureAtlasPlugin}; @@ -53,7 +53,7 @@ use bevy_render::{ render_phase::AddRenderCommand, render_resource::{Shader, SpecializedRenderPipelines}, view::{NoFrustumCulling, VisibilitySystems}, - ExtractSchedule, Render, RenderApp, RenderSet, + ExtractSchedule, Render, RenderApp, RenderSystems, }; /// Adds support for 2D sprite rendering. @@ -67,11 +67,15 @@ pub const SPRITE_VIEW_BINDINGS_SHADER_HANDLE: Handle = /// System set for sprite rendering. #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum SpriteSystem { +pub enum SpriteSystems { ExtractSprites, ComputeSlices, } +/// Deprecated alias for [`SpriteSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `SpriteSystems`.")] +pub type SpriteSystem = SpriteSystems; + impl Plugin for SpritePlugin { fn build(&self, app: &mut App) { load_internal_asset!( @@ -102,10 +106,10 @@ impl Plugin for SpritePlugin { ( calculate_bounds_2d.in_set(VisibilitySystems::CalculateBounds), ( - compute_slices_on_asset_event.before(AssetEvents), + compute_slices_on_asset_event.before(AssetEventSystems), compute_slices_on_sprite_change, ) - .in_set(SpriteSystem::ComputeSlices), + .in_set(SpriteSystems::ComputeSlices), ), ); @@ -124,7 +128,7 @@ impl Plugin for SpritePlugin { .add_systems( ExtractSchedule, ( - extract_sprites.in_set(SpriteSystem::ExtractSprites), + extract_sprites.in_set(SpriteSystems::ExtractSprites), extract_sprite_events, ), ) @@ -132,12 +136,12 @@ impl Plugin for SpritePlugin { Render, ( queue_sprites - .in_set(RenderSet::Queue) + .in_set(RenderSystems::Queue) .ambiguous_with(queue_material2d_meshes::), - prepare_sprite_image_bind_groups.in_set(RenderSet::PrepareBindGroups), - prepare_sprite_view_bind_groups.in_set(RenderSet::PrepareBindGroups), - sort_binned_render_phase::.in_set(RenderSet::PhaseSort), - sort_binned_render_phase::.in_set(RenderSet::PhaseSort), + prepare_sprite_image_bind_groups.in_set(RenderSystems::PrepareBindGroups), + prepare_sprite_view_bind_groups.in_set(RenderSystems::PrepareBindGroups), + sort_binned_render_phase::.in_set(RenderSystems::PhaseSort), + sort_binned_render_phase::.in_set(RenderSystems::PhaseSort), ), ); }; diff --git a/crates/bevy_sprite/src/mesh2d/material.rs b/crates/bevy_sprite/src/mesh2d/material.rs index e34595f138..3f76b516cd 100644 --- a/crates/bevy_sprite/src/mesh2d/material.rs +++ b/crates/bevy_sprite/src/mesh2d/material.rs @@ -4,7 +4,7 @@ use crate::{ }; use bevy_app::{App, Plugin, PostUpdate}; use bevy_asset::prelude::AssetChanged; -use bevy_asset::{AsAssetId, Asset, AssetApp, AssetEvents, AssetId, AssetServer, Handle}; +use bevy_asset::{AsAssetId, Asset, AssetApp, AssetEventSystems, AssetId, AssetServer, Handle}; use bevy_core_pipeline::{ core_2d::{ AlphaMask2d, AlphaMask2dBinKey, BatchSetKey2d, Opaque2d, Opaque2dBinKey, Transparent2d, @@ -43,7 +43,7 @@ use bevy_render::{ renderer::RenderDevice, sync_world::{MainEntity, MainEntityHashMap}, view::{ExtractedView, ViewVisibility}, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_utils::Parallel; use core::{hash::Hash, marker::PhantomData}; @@ -273,7 +273,7 @@ where .add_plugins(RenderAssetPlugin::>::default()) .add_systems( PostUpdate, - check_entities_needing_specialization::.after(AssetEvents), + check_entities_needing_specialization::.after(AssetEventSystems), ); if let Some(render_app) = app.get_sub_app_mut(RenderApp) { @@ -296,11 +296,11 @@ where Render, ( specialize_material2d_meshes:: - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) .after(prepare_assets::>) .after(prepare_assets::), queue_material2d_meshes:: - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::>), ), ); diff --git a/crates/bevy_sprite/src/mesh2d/mesh.rs b/crates/bevy_sprite/src/mesh2d/mesh.rs index 5822d47ed6..3bacc35194 100644 --- a/crates/bevy_sprite/src/mesh2d/mesh.rs +++ b/crates/bevy_sprite/src/mesh2d/mesh.rs @@ -21,7 +21,7 @@ use bevy_image::{BevyDefault, Image, ImageSampler, TextureFormatPixelInfo}; use bevy_math::{Affine3, Vec4}; use bevy_render::mesh::MeshTag; use bevy_render::prelude::Msaa; -use bevy_render::RenderSet::PrepareAssets; +use bevy_render::RenderSystems::PrepareAssets; use bevy_render::{ batching::{ gpu_preprocessing::IndirectParametersCpuMetadata, @@ -48,7 +48,7 @@ use bevy_render::{ view::{ ExtractedView, ViewTarget, ViewUniform, ViewUniformOffset, ViewUniforms, ViewVisibility, }, - Extract, ExtractSchedule, Render, RenderApp, RenderSet, + Extract, ExtractSchedule, Render, RenderApp, RenderSystems, }; use bevy_transform::components::GlobalTransform; use nonmax::NonMaxU32; @@ -119,20 +119,20 @@ impl Plugin for Mesh2dRenderPlugin { sweep_old_entities::, sweep_old_entities::, ) - .in_set(RenderSet::QueueSweep), + .in_set(RenderSystems::QueueSweep), batch_and_prepare_binned_render_phase:: - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), batch_and_prepare_binned_render_phase:: - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), batch_and_prepare_sorted_render_phase:: - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), write_batched_instance_buffer:: - .in_set(RenderSet::PrepareResourcesFlush), - prepare_mesh2d_bind_group.in_set(RenderSet::PrepareBindGroups), - prepare_mesh2d_view_bind_groups.in_set(RenderSet::PrepareBindGroups), + .in_set(RenderSystems::PrepareResourcesFlush), + prepare_mesh2d_bind_group.in_set(RenderSystems::PrepareBindGroups), + prepare_mesh2d_view_bind_groups.in_set(RenderSystems::PrepareBindGroups), no_gpu_preprocessing::clear_batched_cpu_instance_buffers:: - .in_set(RenderSet::Cleanup) - .after(RenderSet::Render), + .in_set(RenderSystems::Cleanup) + .after(RenderSystems::Render), ), ); } diff --git a/crates/bevy_sprite/src/mesh2d/wireframe2d.rs b/crates/bevy_sprite/src/mesh2d/wireframe2d.rs index 63e5280519..468a47f6bb 100644 --- a/crates/bevy_sprite/src/mesh2d/wireframe2d.rs +++ b/crates/bevy_sprite/src/mesh2d/wireframe2d.rs @@ -5,7 +5,7 @@ use crate::{ use bevy_app::{App, Plugin, PostUpdate, Startup, Update}; use bevy_asset::{ load_internal_asset, prelude::AssetChanged, weak_handle, AsAssetId, Asset, AssetApp, - AssetEvents, AssetId, Assets, Handle, UntypedAssetId, + AssetEventSystems, AssetId, Assets, Handle, UntypedAssetId, }; use bevy_color::{Color, ColorToComponents}; use bevy_core_pipeline::core_2d::{ @@ -49,7 +49,7 @@ use bevy_render::{ view::{ ExtractedView, RenderVisibleEntities, RetainedViewEntity, ViewDepthTexture, ViewTarget, }, - Extract, Render, RenderApp, RenderDebugFlags, RenderSet, + Extract, Render, RenderApp, RenderDebugFlags, RenderSystems, }; use core::{hash::Hash, ops::Range}; use tracing::error; @@ -113,7 +113,7 @@ impl Plugin for Wireframe2dPlugin { .add_systems( PostUpdate, check_wireframe_entities_needing_specialization - .after(AssetEvents) + .after(AssetEventSystems) .run_if(resource_exists::), ); @@ -149,11 +149,11 @@ impl Plugin for Wireframe2dPlugin { Render, ( specialize_wireframes - .in_set(RenderSet::PrepareMeshes) + .in_set(RenderSystems::PrepareMeshes) .after(prepare_assets::) .after(prepare_assets::), queue_wireframes - .in_set(RenderSet::QueueMeshes) + .in_set(RenderSystems::QueueMeshes) .after(prepare_assets::), ), ); diff --git a/crates/bevy_sprite/src/picking_backend.rs b/crates/bevy_sprite/src/picking_backend.rs index 4994ab2af6..56579c9c0a 100644 --- a/crates/bevy_sprite/src/picking_backend.rs +++ b/crates/bevy_sprite/src/picking_backend.rs @@ -79,7 +79,7 @@ impl Plugin for SpritePickingPlugin { .register_type::() .register_type::() .register_type::() - .add_systems(PreUpdate, sprite_picking.in_set(PickSet::Backend)); + .add_systems(PreUpdate, sprite_picking.in_set(PickingSystems::Backend)); } } diff --git a/crates/bevy_state/src/app.rs b/crates/bevy_state/src/app.rs index dd963d4d84..903a098137 100644 --- a/crates/bevy_state/src/app.rs +++ b/crates/bevy_state/src/app.rs @@ -6,7 +6,7 @@ use log::warn; use crate::{ state::{ setup_state_transitions_in_world, ComputedStates, FreelyMutableState, NextState, State, - StateTransition, StateTransitionEvent, StateTransitionSteps, States, SubStates, + StateTransition, StateTransitionEvent, StateTransitionSystems, States, SubStates, }, state_scoped::{despawn_entities_on_enter_state, despawn_entities_on_exit_state}, }; @@ -224,18 +224,18 @@ impl AppExtStates for SubApp { } // Note: We work with `StateTransition` in set - // `StateTransitionSteps::ExitSchedules` rather than `OnExit`, because + // `StateTransitionSystems::ExitSchedules` rather than `OnExit`, because // `OnExit` only runs for one specific variant of the state. self.add_systems( StateTransition, - despawn_entities_on_exit_state::.in_set(StateTransitionSteps::ExitSchedules), + despawn_entities_on_exit_state::.in_set(StateTransitionSystems::ExitSchedules), ) // Note: We work with `StateTransition` in set - // `StateTransitionSteps::EnterSchedules` rather than `OnEnter`, because + // `StateTransitionSystems::EnterSchedules` rather than `OnEnter`, because // `OnEnter` only runs for one specific variant of the state. .add_systems( StateTransition, - despawn_entities_on_enter_state::.in_set(StateTransitionSteps::EnterSchedules), + despawn_entities_on_enter_state::.in_set(StateTransitionSystems::EnterSchedules), ) } diff --git a/crates/bevy_state/src/state/freely_mutable_state.rs b/crates/bevy_state/src/state/freely_mutable_state.rs index aef72e15fa..8751b3ad29 100644 --- a/crates/bevy_state/src/state/freely_mutable_state.rs +++ b/crates/bevy_state/src/state/freely_mutable_state.rs @@ -17,11 +17,11 @@ pub trait FreelyMutableState: States { fn register_state(schedule: &mut Schedule) { schedule.configure_sets(( ApplyStateTransition::::default() - .in_set(StateTransitionSteps::DependentTransitions), - ExitSchedules::::default().in_set(StateTransitionSteps::ExitSchedules), + .in_set(StateTransitionSystems::DependentTransitions), + ExitSchedules::::default().in_set(StateTransitionSystems::ExitSchedules), TransitionSchedules::::default() - .in_set(StateTransitionSteps::TransitionSchedules), - EnterSchedules::::default().in_set(StateTransitionSteps::EnterSchedules), + .in_set(StateTransitionSystems::TransitionSchedules), + EnterSchedules::::default().in_set(StateTransitionSystems::EnterSchedules), )); schedule diff --git a/crates/bevy_state/src/state/state_set.rs b/crates/bevy_state/src/state/state_set.rs index 5199662027..69a6c41b3d 100644 --- a/crates/bevy_state/src/state/state_set.rs +++ b/crates/bevy_state/src/state/state_set.rs @@ -10,7 +10,7 @@ use self::sealed::StateSetSealed; use super::{ computed_states::ComputedStates, internal_apply_state_transition, last_transition, run_enter, run_exit, run_transition, sub_states::SubStates, take_next_state, ApplyStateTransition, - EnterSchedules, ExitSchedules, NextState, State, StateTransitionEvent, StateTransitionSteps, + EnterSchedules, ExitSchedules, NextState, State, StateTransitionEvent, StateTransitionSystems, States, TransitionSchedules, }; @@ -117,14 +117,14 @@ impl StateSet for S { schedule.configure_sets(( ApplyStateTransition::::default() - .in_set(StateTransitionSteps::DependentTransitions) + .in_set(StateTransitionSystems::DependentTransitions) .after(ApplyStateTransition::::default()), ExitSchedules::::default() - .in_set(StateTransitionSteps::ExitSchedules) + .in_set(StateTransitionSystems::ExitSchedules) .before(ExitSchedules::::default()), - TransitionSchedules::::default().in_set(StateTransitionSteps::TransitionSchedules), + TransitionSchedules::::default().in_set(StateTransitionSystems::TransitionSchedules), EnterSchedules::::default() - .in_set(StateTransitionSteps::EnterSchedules) + .in_set(StateTransitionSystems::EnterSchedules) .after(EnterSchedules::::default()), )); @@ -197,14 +197,14 @@ impl StateSet for S { schedule.configure_sets(( ApplyStateTransition::::default() - .in_set(StateTransitionSteps::DependentTransitions) + .in_set(StateTransitionSystems::DependentTransitions) .after(ApplyStateTransition::::default()), ExitSchedules::::default() - .in_set(StateTransitionSteps::ExitSchedules) + .in_set(StateTransitionSystems::ExitSchedules) .before(ExitSchedules::::default()), - TransitionSchedules::::default().in_set(StateTransitionSteps::TransitionSchedules), + TransitionSchedules::::default().in_set(StateTransitionSystems::TransitionSchedules), EnterSchedules::::default() - .in_set(StateTransitionSteps::EnterSchedules) + .in_set(StateTransitionSystems::EnterSchedules) .after(EnterSchedules::::default()), )); @@ -264,15 +264,15 @@ macro_rules! impl_state_set_sealed_tuples { schedule.configure_sets(( ApplyStateTransition::::default() - .in_set(StateTransitionSteps::DependentTransitions) + .in_set(StateTransitionSystems::DependentTransitions) $(.after(ApplyStateTransition::<$param::RawState>::default()))*, ExitSchedules::::default() - .in_set(StateTransitionSteps::ExitSchedules) + .in_set(StateTransitionSystems::ExitSchedules) $(.before(ExitSchedules::<$param::RawState>::default()))*, TransitionSchedules::::default() - .in_set(StateTransitionSteps::TransitionSchedules), + .in_set(StateTransitionSystems::TransitionSchedules), EnterSchedules::::default() - .in_set(StateTransitionSteps::EnterSchedules) + .in_set(StateTransitionSystems::EnterSchedules) $(.after(EnterSchedules::<$param::RawState>::default()))*, )); @@ -318,15 +318,15 @@ macro_rules! impl_state_set_sealed_tuples { schedule.configure_sets(( ApplyStateTransition::::default() - .in_set(StateTransitionSteps::DependentTransitions) + .in_set(StateTransitionSystems::DependentTransitions) $(.after(ApplyStateTransition::<$param::RawState>::default()))*, ExitSchedules::::default() - .in_set(StateTransitionSteps::ExitSchedules) + .in_set(StateTransitionSystems::ExitSchedules) $(.before(ExitSchedules::<$param::RawState>::default()))*, TransitionSchedules::::default() - .in_set(StateTransitionSteps::TransitionSchedules), + .in_set(StateTransitionSystems::TransitionSchedules), EnterSchedules::::default() - .in_set(StateTransitionSteps::EnterSchedules) + .in_set(StateTransitionSystems::EnterSchedules) $(.after(EnterSchedules::<$param::RawState>::default()))*, )); diff --git a/crates/bevy_state/src/state/transitions.rs b/crates/bevy_state/src/state/transitions.rs index be28926054..dfe711f245 100644 --- a/crates/bevy_state/src/state/transitions.rs +++ b/crates/bevy_state/src/state/transitions.rs @@ -71,7 +71,7 @@ pub struct StateTransitionEvent { /// /// These system sets are run sequentially, in the order of the enum variants. #[derive(SystemSet, Clone, Debug, PartialEq, Eq, Hash)] -pub enum StateTransitionSteps { +pub enum StateTransitionSystems { /// States apply their transitions from [`NextState`](super::NextState) /// and compute functions based on their parent states. DependentTransitions, @@ -83,6 +83,10 @@ pub enum StateTransitionSteps { EnterSchedules, } +/// Deprecated alias for [`StateTransitionSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `StateTransitionSystems`.")] +pub type StateTransitionSteps = StateTransitionSystems; + #[derive(SystemSet, Clone, Debug, PartialEq, Eq, Hash)] /// System set that runs exit schedule(s) for state `S`. pub struct ExitSchedules(PhantomData); @@ -191,10 +195,10 @@ pub fn setup_state_transitions_in_world(world: &mut World) { let mut schedule = Schedule::new(StateTransition); schedule.configure_sets( ( - StateTransitionSteps::DependentTransitions, - StateTransitionSteps::ExitSchedules, - StateTransitionSteps::TransitionSchedules, - StateTransitionSteps::EnterSchedules, + StateTransitionSystems::DependentTransitions, + StateTransitionSystems::ExitSchedules, + StateTransitionSystems::TransitionSchedules, + StateTransitionSystems::EnterSchedules, ) .chain(), ); diff --git a/crates/bevy_state/src/state_scoped_events.rs b/crates/bevy_state/src/state_scoped_events.rs index 3b881d094d..9defa4d888 100644 --- a/crates/bevy_state/src/state_scoped_events.rs +++ b/crates/bevy_state/src/state_scoped_events.rs @@ -93,7 +93,7 @@ pub trait StateScopedEventsAppExt { /// and [`DespawnOnExitState`](crate::prelude::DespawnOnExitState) entity /// cleanup and the [`OnExit`] schedule for the target state. All of these (state scoped /// entities and events cleanup, and `OnExit`) occur within schedule [`StateTransition`](crate::prelude::StateTransition) - /// and system set `StateTransitionSteps::ExitSchedules`. + /// and system set `StateTransitionSystems::ExitSchedules`. fn add_state_scoped_event(&mut self, state: impl FreelyMutableState) -> &mut Self; } diff --git a/crates/bevy_text/src/lib.rs b/crates/bevy_text/src/lib.rs index 18d7ad01a7..70ac992924 100644 --- a/crates/bevy_text/src/lib.rs +++ b/crates/bevy_text/src/lib.rs @@ -66,15 +66,15 @@ pub mod prelude { }; } -use bevy_app::{prelude::*, Animation}; +use bevy_app::{prelude::*, AnimationSystems}; #[cfg(feature = "default_font")] use bevy_asset::{load_internal_binary_asset, Handle}; -use bevy_asset::{AssetApp, AssetEvents}; +use bevy_asset::{AssetApp, AssetEventSystems}; use bevy_ecs::prelude::*; use bevy_render::{ - camera::CameraUpdateSystem, view::VisibilitySystems, ExtractSchedule, RenderApp, + camera::CameraUpdateSystems, view::VisibilitySystems, ExtractSchedule, RenderApp, }; -use bevy_sprite::SpriteSystem; +use bevy_sprite::SpriteSystems; /// The raw data for the default font used by `bevy_text` #[cfg(feature = "default_font")] @@ -101,7 +101,11 @@ pub enum YAxisOrientation { /// System set in [`PostUpdate`] where all 2d text update systems are executed. #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub struct Update2dText; +pub struct Text2dUpdateSystems; + +/// Deprecated alias for [`Text2dUpdateSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `Text2dUpdateSystems`.")] +pub type Update2dText = Text2dUpdateSystems; impl Plugin for TextPlugin { fn build(&self, app: &mut App) { @@ -125,26 +129,26 @@ impl Plugin for TextPlugin { .add_systems( PostUpdate, ( - remove_dropped_font_atlas_sets.before(AssetEvents), + remove_dropped_font_atlas_sets.before(AssetEventSystems), detect_text_needs_rerender::, update_text2d_layout // Potential conflict: `Assets` // In practice, they run independently since `bevy_render::camera_update_system` // will only ever observe its own render target, and `update_text2d_layout` // will never modify a pre-existing `Image` asset. - .ambiguous_with(CameraUpdateSystem), + .ambiguous_with(CameraUpdateSystems), calculate_bounds_text2d.in_set(VisibilitySystems::CalculateBounds), ) .chain() - .in_set(Update2dText) - .after(Animation), + .in_set(Text2dUpdateSystems) + .after(AnimationSystems), ) .add_systems(Last, trim_cosmic_cache); if let Some(render_app) = app.get_sub_app_mut(RenderApp) { render_app.add_systems( ExtractSchedule, - extract_text2d_sprite.after(SpriteSystem::ExtractSprites), + extract_text2d_sprite.after(SpriteSystems::ExtractSprites), ); } diff --git a/crates/bevy_time/src/fixed.rs b/crates/bevy_time/src/fixed.rs index dc8f89fd6a..66d2585e82 100644 --- a/crates/bevy_time/src/fixed.rs +++ b/crates/bevy_time/src/fixed.rs @@ -235,7 +235,7 @@ impl Default for Fixed { /// Runs [`FixedMain`] zero or more times based on delta of /// [`Time`](Virtual) and [`Time::overstep`]. /// You can order your systems relative to this by using -/// [`RunFixedMainLoopSystem`](bevy_app::prelude::RunFixedMainLoopSystem). +/// [`RunFixedMainLoopSystems`](bevy_app::prelude::RunFixedMainLoopSystems). pub(super) fn run_fixed_main_schedule(world: &mut World) { let delta = world.resource::>().delta(); world.resource_mut::>().accumulate(delta); diff --git a/crates/bevy_time/src/lib.rs b/crates/bevy_time/src/lib.rs index 1ac297fafa..858da0d7e4 100644 --- a/crates/bevy_time/src/lib.rs +++ b/crates/bevy_time/src/lib.rs @@ -57,7 +57,11 @@ pub struct TimePlugin; /// Updates the elapsed time. Any system that interacts with [`Time`] component should run after /// this. #[derive(Debug, PartialEq, Eq, Clone, Hash, SystemSet)] -pub struct TimeSystem; +pub struct TimeSystems; + +/// Deprecated alias for [`TimeSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `TimeSystems`.")] +pub type TimeSystem = TimeSystems; impl Plugin for TimePlugin { fn build(&self, app: &mut App) { @@ -79,12 +83,12 @@ impl Plugin for TimePlugin { app.add_systems( First, time_system - .in_set(TimeSystem) + .in_set(TimeSystems) .ambiguous_with(event_update_system), ) .add_systems( RunFixedMainLoop, - run_fixed_main_schedule.in_set(RunFixedMainLoopSystem::FixedMainLoop), + run_fixed_main_schedule.in_set(RunFixedMainLoopSystems::FixedMainLoop), ); // Ensure the events are not dropped until `FixedMain` systems can observe them @@ -109,7 +113,7 @@ pub enum TimeUpdateStrategy { /// [`Time`] will be updated to the specified [`Instant`] value each frame. /// In order for time to progress, this value must be manually updated each frame. /// - /// Note that the `Time` resource will not be updated until [`TimeSystem`] runs. + /// Note that the `Time` resource will not be updated until [`TimeSystems`] runs. ManualInstant(Instant), /// [`Time`] will be incremented by the specified [`Duration`] each frame. ManualDuration(Duration), diff --git a/crates/bevy_transform/src/components/global_transform.rs b/crates/bevy_transform/src/components/global_transform.rs index f606071fe1..2d391bb72e 100644 --- a/crates/bevy_transform/src/components/global_transform.rs +++ b/crates/bevy_transform/src/components/global_transform.rs @@ -31,13 +31,15 @@ use { /// if it doesn't have a [`ChildOf`](bevy_ecs::hierarchy::ChildOf) component. /// /// [`GlobalTransform`] is managed by Bevy; it is computed by successively applying the [`Transform`] of each ancestor -/// entity which has a Transform. This is done automatically by Bevy-internal systems in the system set -/// [`TransformPropagate`](crate::TransformSystem::TransformPropagate). +/// entity which has a Transform. This is done automatically by Bevy-internal systems in the [`TransformSystems::Propagate`] +/// system set. /// /// This system runs during [`PostUpdate`](bevy_app::PostUpdate). If you /// update the [`Transform`] of an entity in this schedule or after, you will notice a 1 frame lag /// before the [`GlobalTransform`] is updated. /// +/// [`TransformSystems::Propagate`]: crate::TransformSystems::Propagate +/// /// # Examples /// /// - [`transform`][transform_example] diff --git a/crates/bevy_transform/src/components/transform.rs b/crates/bevy_transform/src/components/transform.rs index 0ea9e1930f..7873ae743c 100644 --- a/crates/bevy_transform/src/components/transform.rs +++ b/crates/bevy_transform/src/components/transform.rs @@ -49,13 +49,15 @@ fn assert_is_normalized(message: &str, length_squared: f32) { /// /// [`GlobalTransform`] is the position of an entity relative to the reference frame. /// -/// [`GlobalTransform`] is updated from [`Transform`] by systems in the system set -/// [`TransformPropagate`](crate::TransformSystem::TransformPropagate). +/// [`GlobalTransform`] is updated from [`Transform`] in the [`TransformSystems::Propagate`] +/// system set. /// /// This system runs during [`PostUpdate`](bevy_app::PostUpdate). If you /// update the [`Transform`] of an entity during this set or after, you will notice a 1 frame lag /// before the [`GlobalTransform`] is updated. /// +/// [`TransformSystems::Propagate`]: crate::TransformSystems::Propagate +/// /// # Examples /// /// - [`transform`][transform_example] diff --git a/crates/bevy_transform/src/lib.rs b/crates/bevy_transform/src/lib.rs index 9a6538ed53..4d107346f7 100644 --- a/crates/bevy_transform/src/lib.rs +++ b/crates/bevy_transform/src/lib.rs @@ -45,10 +45,10 @@ pub mod prelude { pub use crate::{ commands::BuildChildrenTransformExt, helper::TransformHelper, - plugins::{TransformPlugin, TransformSystem}, + plugins::{TransformPlugin, TransformSystems}, traits::TransformPoint, }; } #[cfg(feature = "bevy-support")] -pub use prelude::{TransformPlugin, TransformPoint, TransformSystem}; +pub use prelude::{TransformPlugin, TransformPoint, TransformSystems}; diff --git a/crates/bevy_transform/src/plugins.rs b/crates/bevy_transform/src/plugins.rs index 3b22aefb14..f70e7e1f1d 100644 --- a/crates/bevy_transform/src/plugins.rs +++ b/crates/bevy_transform/src/plugins.rs @@ -4,11 +4,15 @@ use bevy_ecs::schedule::{IntoScheduleConfigs, SystemSet}; /// Set enum for the systems relating to transform propagation #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum TransformSystem { +pub enum TransformSystems { /// Propagates changes in transform to children's [`GlobalTransform`](crate::components::GlobalTransform) - TransformPropagate, + Propagate, } +/// Deprecated alias for [`TransformSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `TransformSystems`.")] +pub type TransformSystem = TransformSystems; + /// The base plugin for handling [`Transform`](crate::components::Transform) components #[derive(Default)] pub struct TransformPlugin; @@ -30,7 +34,7 @@ impl Plugin for TransformPlugin { sync_simple_transforms, ) .chain() - .in_set(TransformSystem::TransformPropagate), + .in_set(TransformSystems::Propagate), ) .add_systems( PostUpdate, @@ -41,7 +45,7 @@ impl Plugin for TransformPlugin { sync_simple_transforms, ) .chain() - .in_set(TransformSystem::TransformPropagate), + .in_set(TransformSystems::Propagate), ); } } diff --git a/crates/bevy_ui/src/accessibility.rs b/crates/bevy_ui/src/accessibility.rs index 3b0e6538f0..637ed943f2 100644 --- a/crates/bevy_ui/src/accessibility.rs +++ b/crates/bevy_ui/src/accessibility.rs @@ -14,7 +14,7 @@ use bevy_ecs::{ world::Ref, }; use bevy_math::Vec3Swizzles; -use bevy_render::camera::CameraUpdateSystem; +use bevy_render::camera::CameraUpdateSystems; use bevy_transform::prelude::GlobalTransform; use accesskit::{Node, Rect, Role}; @@ -151,8 +151,8 @@ impl Plugin for AccessibilityPlugin { PostUpdate, ( calc_bounds - .after(bevy_transform::TransformSystem::TransformPropagate) - .after(CameraUpdateSystem) + .after(bevy_transform::TransformSystems::Propagate) + .after(CameraUpdateSystems) // the listed systems do not affect calculated size .ambiguous_with(crate::ui_stack_system), button_changed, diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index 1f53ffea50..ae54ffe607 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -20,7 +20,7 @@ pub mod picking_backend; use bevy_derive::{Deref, DerefMut}; #[cfg(feature = "bevy_ui_picking_backend")] -use bevy_picking::PickSet; +use bevy_picking::PickingSystems; use bevy_reflect::{std_traits::ReflectDefault, Reflect}; mod accessibility; // This module is not re-exported, but is instead made public. @@ -70,11 +70,11 @@ pub mod prelude { }; } -use bevy_app::{prelude::*, Animation}; +use bevy_app::{prelude::*, AnimationSystems}; use bevy_ecs::prelude::*; -use bevy_input::InputSystem; -use bevy_render::{camera::CameraUpdateSystem, RenderApp}; -use bevy_transform::TransformSystem; +use bevy_input::InputSystems; +use bevy_render::{camera::CameraUpdateSystems, RenderApp}; +use bevy_transform::TransformSystems; use layout::ui_surface::UiSurface; use stack::ui_stack_system; pub use stack::UiStack; @@ -97,7 +97,7 @@ impl Default for UiPlugin { /// The label enum labeling the types of systems in the Bevy UI #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum UiSystem { +pub enum UiSystems { /// After this label, input interactions with UI entities have been updated for this frame. /// /// Runs in [`PreUpdate`]. @@ -110,7 +110,7 @@ pub enum UiSystem { /// /// Runs in [`PostUpdate`]. Layout, - /// UI systems ordered after [`UiSystem::Layout`]. + /// UI systems ordered after [`UiSystems::Layout`]. /// /// Runs in [`PostUpdate`]. PostLayout, @@ -120,6 +120,10 @@ pub enum UiSystem { Stack, } +/// Deprecated alias for [`UiSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `UiSystems`.")] +pub type UiSystem = UiSystems; + /// The current scale of the UI. /// /// A multiplier to fixed-sized ui values. @@ -137,10 +141,10 @@ impl Default for UiScale { // Marks systems that can be ambiguous with [`widget::text_system`] if the `bevy_text` feature is enabled. // See https://github.com/bevyengine/bevy/pull/11391 for more details. #[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone)] -struct AmbiguousWithTextSystem; +struct AmbiguousWithText; #[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone)] -struct AmbiguousWithUpdateText2DLayout; +struct AmbiguousWithUpdateText2dLayout; impl Plugin for UiPlugin { fn build(&self, app: &mut App) { @@ -176,26 +180,29 @@ impl Plugin for UiPlugin { .configure_sets( PostUpdate, ( - CameraUpdateSystem, - UiSystem::Prepare.after(Animation), - UiSystem::Content, - UiSystem::Layout, - UiSystem::PostLayout, + CameraUpdateSystems, + UiSystems::Prepare.after(AnimationSystems), + UiSystems::Content, + UiSystems::Layout, + UiSystems::PostLayout, ) .chain(), ) .add_systems( PreUpdate, - ui_focus_system.in_set(UiSystem::Focus).after(InputSystem), + ui_focus_system.in_set(UiSystems::Focus).after(InputSystems), ); #[cfg(feature = "bevy_ui_picking_backend")] app.add_plugins(picking_backend::UiPickingPlugin) - .add_systems(First, widget::viewport_picking.in_set(PickSet::PostInput)); + .add_systems( + First, + widget::viewport_picking.in_set(PickingSystems::PostInput), + ); let ui_layout_system_config = ui_layout_system - .in_set(UiSystem::Layout) - .before(TransformSystem::TransformPropagate); + .in_set(UiSystems::Layout) + .before(TransformSystems::Propagate); let ui_layout_system_config = ui_layout_system_config // Text and Text2D operate on disjoint sets of entities @@ -205,31 +212,31 @@ impl Plugin for UiPlugin { app.add_systems( PostUpdate, ( - update_ui_context_system.in_set(UiSystem::Prepare), + update_ui_context_system.in_set(UiSystems::Prepare), ui_layout_system_config, ui_stack_system - .in_set(UiSystem::Stack) + .in_set(UiSystems::Stack) // These systems don't care about stack index .ambiguous_with(update_clipping_system) .ambiguous_with(ui_layout_system) .ambiguous_with(widget::update_viewport_render_target_size) - .in_set(AmbiguousWithTextSystem), - update_clipping_system.after(TransformSystem::TransformPropagate), + .in_set(AmbiguousWithText), + update_clipping_system.after(TransformSystems::Propagate), // Potential conflicts: `Assets` // They run independently since `widget::image_node_system` will only ever observe // its own ImageNode, and `widget::text_system` & `bevy_text::update_text2d_layout` // will never modify a pre-existing `Image` asset. widget::update_image_content_size_system - .in_set(UiSystem::Content) - .in_set(AmbiguousWithTextSystem) - .in_set(AmbiguousWithUpdateText2DLayout), + .in_set(UiSystems::Content) + .in_set(AmbiguousWithText) + .in_set(AmbiguousWithUpdateText2dLayout), // Potential conflicts: `Assets` // `widget::text_system` and `bevy_text::update_text2d_layout` run independently // since this system will only ever update viewport images. widget::update_viewport_render_target_size - .in_set(UiSystem::PostLayout) - .in_set(AmbiguousWithTextSystem) - .in_set(AmbiguousWithUpdateText2DLayout), + .in_set(UiSystems::PostLayout) + .in_set(AmbiguousWithText) + .in_set(AmbiguousWithUpdateText2dLayout), ), ); @@ -275,7 +282,7 @@ fn build_text_interop(app: &mut App) { widget::measure_text_system, ) .chain() - .in_set(UiSystem::Content) + .in_set(UiSystems::Content) // Text and Text2d are independent. .ambiguous_with(bevy_text::detect_text_needs_rerender::) // Potential conflict: `Assets` @@ -286,9 +293,9 @@ fn build_text_interop(app: &mut App) { // FIXME: Add an archetype invariant for this https://github.com/bevyengine/bevy/issues/1481. .ambiguous_with(widget::update_image_content_size_system), widget::text_system - .in_set(UiSystem::PostLayout) + .in_set(UiSystems::PostLayout) .after(bevy_text::remove_dropped_font_atlas_sets) - .before(bevy_asset::AssetEvents) + .before(bevy_asset::AssetEventSystems) // Text2d and bevy_ui text are entirely on separate entities .ambiguous_with(bevy_text::detect_text_needs_rerender::) .ambiguous_with(bevy_text::update_text2d_layout) @@ -300,11 +307,11 @@ fn build_text_interop(app: &mut App) { app.configure_sets( PostUpdate, - AmbiguousWithTextSystem.ambiguous_with(widget::text_system), + AmbiguousWithText.ambiguous_with(widget::text_system), ); app.configure_sets( PostUpdate, - AmbiguousWithUpdateText2DLayout.ambiguous_with(bevy_text::update_text2d_layout), + AmbiguousWithUpdateText2dLayout.ambiguous_with(bevy_text::update_text2d_layout), ); } diff --git a/crates/bevy_ui/src/picking_backend.rs b/crates/bevy_ui/src/picking_backend.rs index f2d0667368..26b84c6005 100644 --- a/crates/bevy_ui/src/picking_backend.rs +++ b/crates/bevy_ui/src/picking_backend.rs @@ -81,7 +81,7 @@ impl Plugin for UiPickingPlugin { fn build(&self, app: &mut App) { app.init_resource::() .register_type::<(UiPickingCamera, UiPickingSettings)>() - .add_systems(PreUpdate, ui_picking.in_set(PickSet::Backend)); + .add_systems(PreUpdate, ui_picking.in_set(PickingSystems::Backend)); } } diff --git a/crates/bevy_ui/src/render/box_shadow.rs b/crates/bevy_ui/src/render/box_shadow.rs index 7ed9855038..94d306e7eb 100644 --- a/crates/bevy_ui/src/render/box_shadow.rs +++ b/crates/bevy_ui/src/render/box_shadow.rs @@ -3,7 +3,7 @@ use core::{hash::Hash, ops::Range}; use crate::{ - BoxShadow, BoxShadowSamples, CalculatedClip, ComputedNode, ComputedNodeTarget, RenderUiSystem, + BoxShadow, BoxShadowSamples, CalculatedClip, ComputedNode, ComputedNodeTarget, RenderUiSystems, ResolvedBorderRadius, TransparentUi, Val, }; use bevy_app::prelude::*; @@ -27,7 +27,7 @@ use bevy_render::{ renderer::{RenderDevice, RenderQueue}, sync_world::TemporaryRenderEntity, view::*, - Extract, ExtractSchedule, Render, RenderSet, + Extract, ExtractSchedule, Render, RenderSystems, }; use bevy_transform::prelude::GlobalTransform; use bytemuck::{Pod, Zeroable}; @@ -57,13 +57,13 @@ impl Plugin for BoxShadowPlugin { .init_resource::>() .add_systems( ExtractSchedule, - extract_shadows.in_set(RenderUiSystem::ExtractBoxShadows), + extract_shadows.in_set(RenderUiSystems::ExtractBoxShadows), ) .add_systems( Render, ( - queue_shadows.in_set(RenderSet::Queue), - prepare_shadows.in_set(RenderSet::PrepareBindGroups), + queue_shadows.in_set(RenderSystems::Queue), + prepare_shadows.in_set(RenderSystems::PrepareBindGroups), ), ); } diff --git a/crates/bevy_ui/src/render/mod.rs b/crates/bevy_ui/src/render/mod.rs index 18532d288e..e811cfe362 100644 --- a/crates/bevy_ui/src/render/mod.rs +++ b/crates/bevy_ui/src/render/mod.rs @@ -36,7 +36,7 @@ use bevy_render::{ render_resource::*, renderer::{RenderDevice, RenderQueue}, view::{ExtractedView, ViewUniforms}, - Extract, RenderApp, RenderSet, + Extract, RenderApp, RenderSystems, }; use bevy_render::{ render_phase::{PhaseItem, PhaseItemExtraIndex}, @@ -100,7 +100,7 @@ pub mod stack_z_offsets { pub const UI_SHADER_HANDLE: Handle = weak_handle!("7d190d05-545b-42f5-bd85-22a0da85b0f6"); #[derive(Debug, Hash, PartialEq, Eq, Clone, SystemSet)] -pub enum RenderUiSystem { +pub enum RenderUiSystems { ExtractCameraViews, ExtractBoxShadows, ExtractBackgrounds, @@ -114,6 +114,10 @@ pub enum RenderUiSystem { ExtractDebug, } +/// Deprecated alias for [`RenderUiSystems`]. +#[deprecated(since = "0.17.0", note = "Renamed to `RenderUiSystems`.")] +pub type RenderUiSystem = RenderUiSystems; + pub fn build_ui_render(app: &mut App) { load_internal_asset!(app, UI_SHADER_HANDLE, "ui.wgsl", Shader::from_wgsl); @@ -133,40 +137,40 @@ pub fn build_ui_render(app: &mut App) { .configure_sets( ExtractSchedule, ( - RenderUiSystem::ExtractCameraViews, - RenderUiSystem::ExtractBoxShadows, - RenderUiSystem::ExtractBackgrounds, - RenderUiSystem::ExtractImages, - RenderUiSystem::ExtractTextureSlice, - RenderUiSystem::ExtractBorders, - RenderUiSystem::ExtractTextBackgrounds, - RenderUiSystem::ExtractTextShadows, - RenderUiSystem::ExtractText, - RenderUiSystem::ExtractDebug, + RenderUiSystems::ExtractCameraViews, + RenderUiSystems::ExtractBoxShadows, + RenderUiSystems::ExtractBackgrounds, + RenderUiSystems::ExtractImages, + RenderUiSystems::ExtractTextureSlice, + RenderUiSystems::ExtractBorders, + RenderUiSystems::ExtractTextBackgrounds, + RenderUiSystems::ExtractTextShadows, + RenderUiSystems::ExtractText, + RenderUiSystems::ExtractDebug, ) .chain(), ) .add_systems( ExtractSchedule, ( - extract_ui_camera_view.in_set(RenderUiSystem::ExtractCameraViews), - extract_uinode_background_colors.in_set(RenderUiSystem::ExtractBackgrounds), - extract_uinode_images.in_set(RenderUiSystem::ExtractImages), - extract_uinode_borders.in_set(RenderUiSystem::ExtractBorders), - extract_viewport_nodes.in_set(RenderUiSystem::ExtractViewportNodes), - extract_text_background_colors.in_set(RenderUiSystem::ExtractTextBackgrounds), - extract_text_shadows.in_set(RenderUiSystem::ExtractTextShadows), - extract_text_sections.in_set(RenderUiSystem::ExtractText), + extract_ui_camera_view.in_set(RenderUiSystems::ExtractCameraViews), + extract_uinode_background_colors.in_set(RenderUiSystems::ExtractBackgrounds), + extract_uinode_images.in_set(RenderUiSystems::ExtractImages), + extract_uinode_borders.in_set(RenderUiSystems::ExtractBorders), + extract_viewport_nodes.in_set(RenderUiSystems::ExtractViewportNodes), + extract_text_background_colors.in_set(RenderUiSystems::ExtractTextBackgrounds), + extract_text_shadows.in_set(RenderUiSystems::ExtractTextShadows), + extract_text_sections.in_set(RenderUiSystems::ExtractText), #[cfg(feature = "bevy_ui_debug")] - debug_overlay::extract_debug_overlay.in_set(RenderUiSystem::ExtractDebug), + debug_overlay::extract_debug_overlay.in_set(RenderUiSystems::ExtractDebug), ), ) .add_systems( Render, ( - queue_uinodes.in_set(RenderSet::Queue), - sort_phase_system::.in_set(RenderSet::PhaseSort), - prepare_uinodes.in_set(RenderSet::PrepareBindGroups), + queue_uinodes.in_set(RenderSystems::Queue), + sort_phase_system::.in_set(RenderSystems::PhaseSort), + prepare_uinodes.in_set(RenderSystems::PrepareBindGroups), ), ); diff --git a/crates/bevy_ui/src/render/ui_material_pipeline.rs b/crates/bevy_ui/src/render/ui_material_pipeline.rs index fb893b390e..84eb163e4a 100644 --- a/crates/bevy_ui/src/render/ui_material_pipeline.rs +++ b/crates/bevy_ui/src/render/ui_material_pipeline.rs @@ -21,7 +21,7 @@ use bevy_render::{ render_resource::{binding_types::uniform_buffer, *}, renderer::{RenderDevice, RenderQueue}, view::*, - Extract, ExtractSchedule, Render, RenderSet, + Extract, ExtractSchedule, Render, RenderSystems, }; use bevy_sprite::BorderRect; use bevy_transform::prelude::GlobalTransform; @@ -75,13 +75,13 @@ where .init_resource::>>() .add_systems( ExtractSchedule, - extract_ui_material_nodes::.in_set(RenderUiSystem::ExtractBackgrounds), + extract_ui_material_nodes::.in_set(RenderUiSystems::ExtractBackgrounds), ) .add_systems( Render, ( - queue_ui_material_nodes::.in_set(RenderSet::Queue), - prepare_uimaterial_nodes::.in_set(RenderSet::PrepareBindGroups), + queue_ui_material_nodes::.in_set(RenderSystems::Queue), + prepare_uimaterial_nodes::.in_set(RenderSystems::PrepareBindGroups), ), ); } diff --git a/crates/bevy_ui/src/render/ui_texture_slice_pipeline.rs b/crates/bevy_ui/src/render/ui_texture_slice_pipeline.rs index d8da926709..7d0fdb6a42 100644 --- a/crates/bevy_ui/src/render/ui_texture_slice_pipeline.rs +++ b/crates/bevy_ui/src/render/ui_texture_slice_pipeline.rs @@ -22,7 +22,7 @@ use bevy_render::{ sync_world::TemporaryRenderEntity, texture::{GpuImage, TRANSPARENT_IMAGE_HANDLE}, view::*, - Extract, ExtractSchedule, Render, RenderSet, + Extract, ExtractSchedule, Render, RenderSystems, }; use bevy_sprite::{SliceScaleMode, SpriteAssetEvents, SpriteImageMode, TextureSlicer}; use bevy_transform::prelude::GlobalTransform; @@ -53,13 +53,13 @@ impl Plugin for UiTextureSlicerPlugin { .init_resource::>() .add_systems( ExtractSchedule, - extract_ui_texture_slices.in_set(RenderUiSystem::ExtractTextureSlice), + extract_ui_texture_slices.in_set(RenderUiSystems::ExtractTextureSlice), ) .add_systems( Render, ( - queue_ui_slices.in_set(RenderSet::Queue), - prepare_ui_slices.in_set(RenderSet::PrepareBindGroups), + queue_ui_slices.in_set(RenderSystems::Queue), + prepare_ui_slices.in_set(RenderSystems::PrepareBindGroups), ), ); } diff --git a/crates/bevy_ui/src/ui_node.rs b/crates/bevy_ui/src/ui_node.rs index 55ce3eb6a2..c95859624e 100644 --- a/crates/bevy_ui/src/ui_node.rs +++ b/crates/bevy_ui/src/ui_node.rs @@ -31,7 +31,7 @@ pub struct ComputedNode { /// The order of the node in the UI layout. /// Nodes with a higher stack index are drawn on top of and receive interactions before nodes with lower stack indices. /// - /// Automatically calculated in [`super::UiSystem::Stack`]. + /// Automatically calculated in [`super::UiSystems::Stack`]. pub stack_index: u32, /// The size of the node as width and height in physical pixels. /// diff --git a/crates/bevy_winit/src/accessibility.rs b/crates/bevy_winit/src/accessibility.rs index ec15258167..907dfb4b77 100644 --- a/crates/bevy_winit/src/accessibility.rs +++ b/crates/bevy_winit/src/accessibility.rs @@ -11,7 +11,7 @@ use accesskit::{ }; use accesskit_winit::Adapter; use bevy_a11y::{ - AccessibilityNode, AccessibilityRequested, AccessibilitySystem, + AccessibilityNode, AccessibilityRequested, AccessibilitySystems, ActionRequest as ActionRequestWrapper, ManageAccessibilityUpdates, }; use bevy_app::{App, Plugin, PostUpdate}; @@ -302,7 +302,7 @@ impl Plugin for AccessKitPlugin { .before(poll_receivers) .before(update_accessibility_nodes), ) - .in_set(AccessibilitySystem::Update), + .in_set(AccessibilitySystems::Update), ); } } diff --git a/examples/2d/2d_viewport_to_world.rs b/examples/2d/2d_viewport_to_world.rs index 9e58816cee..ce611bd4e9 100644 --- a/examples/2d/2d_viewport_to_world.rs +++ b/examples/2d/2d_viewport_to_world.rs @@ -15,10 +15,7 @@ fn main() { .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .add_systems(FixedUpdate, controls) - .add_systems( - PostUpdate, - draw_cursor.after(TransformSystem::TransformPropagate), - ) + .add_systems(PostUpdate, draw_cursor.after(TransformSystems::Propagate)) .run(); } diff --git a/examples/2d/mesh2d_manual.rs b/examples/2d/mesh2d_manual.rs index 82da9392c7..6354aa468c 100644 --- a/examples/2d/mesh2d_manual.rs +++ b/examples/2d/mesh2d_manual.rs @@ -28,7 +28,7 @@ use bevy::{ sync_component::SyncComponentPlugin, sync_world::{MainEntityHashMap, RenderEntity}, view::{ExtractedView, RenderVisibleEntities, ViewTarget}, - Extract, Render, RenderApp, RenderSet, + Extract, Render, RenderApp, RenderSystems, }, sprite::{ extract_mesh2d, DrawMesh2d, Material2dBindGroupId, Mesh2dPipeline, Mesh2dPipelineKey, @@ -313,7 +313,10 @@ impl Plugin for ColoredMesh2dPlugin { ExtractSchedule, extract_colored_mesh2d.after(extract_mesh2d), ) - .add_systems(Render, queue_colored_mesh2d.in_set(RenderSet::QueueMeshes)); + .add_systems( + Render, + queue_colored_mesh2d.in_set(RenderSystems::QueueMeshes), + ); } fn finish(&self, app: &mut App) { diff --git a/examples/3d/occlusion_culling.rs b/examples/3d/occlusion_culling.rs index 9268f1dc6a..ecc14ca369 100644 --- a/examples/3d/occlusion_culling.rs +++ b/examples/3d/occlusion_culling.rs @@ -34,7 +34,7 @@ use bevy::{ render_resource::{Buffer, BufferDescriptor, BufferUsages, MapMode}, renderer::{RenderContext, RenderDevice}, settings::WgpuFeatures, - Render, RenderApp, RenderDebugFlags, RenderPlugin, RenderSet, + Render, RenderApp, RenderDebugFlags, RenderPlugin, RenderSystems, }, }; use bytemuck::Pod; @@ -220,7 +220,8 @@ impl Plugin for ReadbackIndirectParametersPlugin { .add_systems(ExtractSchedule, readback_indirect_parameters) .add_systems( Render, - create_indirect_parameters_staging_buffers.in_set(RenderSet::PrepareResourcesFlush), + create_indirect_parameters_staging_buffers + .in_set(RenderSystems::PrepareResourcesFlush), ) // Add the node that allows us to read the indirect parameters back // from the GPU to the CPU, which allows us to determine how many diff --git a/examples/app/headless_renderer.rs b/examples/app/headless_renderer.rs index 5d5b2f7d0d..2b6b23b706 100644 --- a/examples/app/headless_renderer.rs +++ b/examples/app/headless_renderer.rs @@ -3,7 +3,7 @@ //! It follows this steps: //! 1. Render from camera to gpu-image render target //! 2. Copy from gpu image to buffer using `ImageCopyDriver` node in `RenderGraph` -//! 3. Copy from buffer to channel using `receive_image_from_buffer` after `RenderSet::Render` +//! 3. Copy from buffer to channel using `receive_image_from_buffer` after `RenderSystems::Render` //! 4. Save from channel to random named file using `scene::update` at `PostUpdate` in `MainWorld` //! 5. Exit if `single_image` setting is set @@ -22,7 +22,7 @@ use bevy::{ TextureUsages, }, renderer::{RenderContext, RenderDevice, RenderQueue}, - Extract, Render, RenderApp, RenderSet, + Extract, Render, RenderApp, RenderSystems, }, winit::WinitPlugin, }; @@ -217,7 +217,10 @@ impl Plugin for ImageCopyPlugin { .add_systems(ExtractSchedule, image_copy_extract) // Receives image data from buffer to channel // so we need to run it after the render graph is done - .add_systems(Render, receive_image_from_buffer.after(RenderSet::Render)); + .add_systems( + Render, + receive_image_from_buffer.after(RenderSystems::Render), + ); } } diff --git a/examples/ecs/ecs_guide.rs b/examples/ecs/ecs_guide.rs index 2b2fdb8148..7d518c0a7d 100644 --- a/examples/ecs/ecs_guide.rs +++ b/examples/ecs/ecs_guide.rs @@ -283,7 +283,7 @@ fn print_at_end_round(mut counter: Local) { /// A group of related system sets, used for controlling the order of systems. Systems can be /// added to any number of sets. #[derive(SystemSet, Debug, Hash, PartialEq, Eq, Clone)] -enum MySet { +enum MySystems { BeforeRound, Round, AfterRound, @@ -330,7 +330,12 @@ fn main() { .configure_sets( Update, // chain() will ensure sets run in the order they are listed - (MySet::BeforeRound, MySet::Round, MySet::AfterRound).chain(), + ( + MySystems::BeforeRound, + MySystems::Round, + MySystems::AfterRound, + ) + .chain(), ) // The add_systems function is powerful. You can define complex system configurations with ease! .add_systems( @@ -343,9 +348,9 @@ fn main() { exclusive_player_system, ) // All of the systems in the tuple above will be added to this set - .in_set(MySet::BeforeRound), + .in_set(MySystems::BeforeRound), // This `Round` system will run after the `BeforeRound` systems thanks to the chained set configuration - score_system.in_set(MySet::Round), + score_system.in_set(MySystems::Round), // These `AfterRound` systems will run after the `Round` systems thanks to the chained set configuration ( score_check_system, @@ -353,7 +358,7 @@ fn main() { // with sets! game_over_system.after(score_check_system), ) - .in_set(MySet::AfterRound), + .in_set(MySystems::AfterRound), ), ) // This call to run() starts the app we just built! diff --git a/examples/movement/physics_in_fixed_timestep.rs b/examples/movement/physics_in_fixed_timestep.rs index 2e105f9a00..d10f7af785 100644 --- a/examples/movement/physics_in_fixed_timestep.rs +++ b/examples/movement/physics_in_fixed_timestep.rs @@ -60,14 +60,14 @@ //! - The player's visual representation is stored in Bevy's regular `Transform` component. //! - Every frame, we go through the following steps: //! - Accumulate the player's input and set the current speed in the `handle_input` system. -//! This is run in the `RunFixedMainLoop` schedule, ordered in `RunFixedMainLoopSystem::BeforeFixedMainLoop`, +//! This is run in the `RunFixedMainLoop` schedule, ordered in `RunFixedMainLoopSystems::BeforeFixedMainLoop`, //! which runs before the fixed timestep loop. This is run every frame. //! - Advance the physics simulation by one fixed timestep in the `advance_physics` system. //! Accumulated input is consumed here. //! This is run in the `FixedUpdate` schedule, which runs zero or multiple times per frame. //! - Update the player's visual representation in the `interpolate_rendered_transform` system. //! This interpolates between the player's previous and current position in the physics simulation. -//! It is run in the `RunFixedMainLoop` schedule, ordered in `RunFixedMainLoopSystem::AfterFixedMainLoop`, +//! It is run in the `RunFixedMainLoop` schedule, ordered in `RunFixedMainLoopSystems::AfterFixedMainLoop`, //! which runs after the fixed timestep loop. This is run every frame. //! //! @@ -95,11 +95,11 @@ fn main() { // The physics simulation needs to know the player's input, so we run this before the fixed timestep loop. // Note that if we ran it in `Update`, it would be too late, as the physics simulation would already have been advanced. // If we ran this in `FixedUpdate`, it would sometimes not register player input, as that schedule may run zero times per frame. - handle_input.in_set(RunFixedMainLoopSystem::BeforeFixedMainLoop), + handle_input.in_set(RunFixedMainLoopSystems::BeforeFixedMainLoop), // The player's visual representation needs to be updated after the physics simulation has been advanced. // This could be run in `Update`, but if we run it here instead, the systems in `Update` // will be working with the `Transform` that will actually be shown on screen. - interpolate_rendered_transform.in_set(RunFixedMainLoopSystem::AfterFixedMainLoop), + interpolate_rendered_transform.in_set(RunFixedMainLoopSystems::AfterFixedMainLoop), ), ) .run(); diff --git a/examples/shader/compute_shader_game_of_life.rs b/examples/shader/compute_shader_game_of_life.rs index af9fe3b292..48fac29e7b 100644 --- a/examples/shader/compute_shader_game_of_life.rs +++ b/examples/shader/compute_shader_game_of_life.rs @@ -12,7 +12,7 @@ use bevy::{ render_resource::{binding_types::texture_storage_2d, *}, renderer::{RenderContext, RenderDevice}, texture::GpuImage, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }, }; use std::borrow::Cow; @@ -105,7 +105,7 @@ impl Plugin for GameOfLifeComputePlugin { let render_app = app.sub_app_mut(RenderApp); render_app.add_systems( Render, - prepare_bind_group.in_set(RenderSet::PrepareBindGroups), + prepare_bind_group.in_set(RenderSystems::PrepareBindGroups), ); let mut render_graph = render_app.world_mut().resource_mut::(); diff --git a/examples/shader/custom_phase_item.rs b/examples/shader/custom_phase_item.rs index fe69c5b812..1ec61f8126 100644 --- a/examples/shader/custom_phase_item.rs +++ b/examples/shader/custom_phase_item.rs @@ -32,7 +32,7 @@ use bevy::{ }, renderer::{RenderDevice, RenderQueue}, view::{self, ExtractedView, RenderVisibleEntities, VisibilityClass}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }, }; use bytemuck::{Pod, Zeroable}; @@ -180,9 +180,9 @@ fn main() { .add_render_command::() .add_systems( Render, - prepare_custom_phase_item_buffers.in_set(RenderSet::Prepare), + prepare_custom_phase_item_buffers.in_set(RenderSystems::Prepare), ) - .add_systems(Render, queue_custom_phase_item.in_set(RenderSet::Queue)); + .add_systems(Render, queue_custom_phase_item.in_set(RenderSystems::Queue)); app.run(); } diff --git a/examples/shader/custom_render_phase.rs b/examples/shader/custom_render_phase.rs index 2692143691..6499ca6bd2 100644 --- a/examples/shader/custom_render_phase.rs +++ b/examples/shader/custom_render_phase.rs @@ -54,7 +54,7 @@ use bevy::{ renderer::RenderContext, sync_world::MainEntity, view::{ExtractedView, RenderVisibleEntities, RetainedViewEntity, ViewTarget}, - Extract, Render, RenderApp, RenderDebugFlags, RenderSet, + Extract, Render, RenderApp, RenderDebugFlags, RenderSystems, }, }; use nonmax::NonMaxU32; @@ -130,10 +130,10 @@ impl Plugin for MeshStencilPhasePlugin { .add_systems( Render, ( - queue_custom_meshes.in_set(RenderSet::QueueMeshes), - sort_phase_system::.in_set(RenderSet::PhaseSort), + queue_custom_meshes.in_set(RenderSystems::QueueMeshes), + sort_phase_system::.in_set(RenderSystems::PhaseSort), batch_and_prepare_sorted_render_phase:: - .in_set(RenderSet::PrepareResources), + .in_set(RenderSystems::PrepareResources), ), ); diff --git a/examples/shader/custom_shader_instancing.rs b/examples/shader/custom_shader_instancing.rs index cd5909c36f..d81c6e53b6 100644 --- a/examples/shader/custom_shader_instancing.rs +++ b/examples/shader/custom_shader_instancing.rs @@ -31,7 +31,7 @@ use bevy::{ renderer::RenderDevice, sync_world::MainEntity, view::{ExtractedView, NoFrustumCulling, NoIndirectDrawing}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }, }; use bytemuck::{Pod, Zeroable}; @@ -104,8 +104,8 @@ impl Plugin for CustomMaterialPlugin { .add_systems( Render, ( - queue_custom.in_set(RenderSet::QueueMeshes), - prepare_instance_buffers.in_set(RenderSet::PrepareResources), + queue_custom.in_set(RenderSystems::QueueMeshes), + prepare_instance_buffers.in_set(RenderSystems::PrepareResources), ), ); } diff --git a/examples/shader/gpu_readback.rs b/examples/shader/gpu_readback.rs index 55a752b315..c7e5ac4a57 100644 --- a/examples/shader/gpu_readback.rs +++ b/examples/shader/gpu_readback.rs @@ -15,7 +15,7 @@ use bevy::{ renderer::{RenderContext, RenderDevice}, storage::{GpuShaderStorageBuffer, ShaderStorageBuffer}, texture::GpuImage, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }, }; @@ -48,7 +48,7 @@ impl Plugin for GpuReadbackPlugin { render_app.init_resource::().add_systems( Render, prepare_bind_group - .in_set(RenderSet::PrepareBindGroups) + .in_set(RenderSystems::PrepareBindGroups) // We don't need to recreate the bind group every frame .run_if(not(resource_exists::)), ); diff --git a/examples/shader/specialized_mesh_pipeline.rs b/examples/shader/specialized_mesh_pipeline.rs index 66f42f5872..a2cfd11b34 100644 --- a/examples/shader/specialized_mesh_pipeline.rs +++ b/examples/shader/specialized_mesh_pipeline.rs @@ -39,7 +39,7 @@ use bevy::{ }, view::NoIndirectDrawing, view::{self, ExtractedView, RenderVisibleEntities, ViewTarget, VisibilityClass}, - Render, RenderApp, RenderSet, + Render, RenderApp, RenderSystems, }, }; @@ -118,7 +118,10 @@ impl Plugin for CustomRenderedMeshPipelinePlugin { .init_resource::>() // We need to use a custom draw command so we need to register it .add_render_command::() - .add_systems(Render, queue_custom_mesh_pipeline.in_set(RenderSet::Queue)); + .add_systems( + Render, + queue_custom_mesh_pipeline.in_set(RenderSystems::Queue), + ); } fn finish(&self, app: &mut App) { diff --git a/examples/stress_tests/many_lights.rs b/examples/stress_tests/many_lights.rs index a19f02d156..031897b5e8 100644 --- a/examples/stress_tests/many_lights.rs +++ b/examples/stress_tests/many_lights.rs @@ -9,7 +9,7 @@ use bevy::{ math::{DVec2, DVec3}, pbr::{ExtractedPointLight, GlobalClusterableObjectMeta}, prelude::*, - render::{camera::ScalingMode, Render, RenderApp, RenderSet}, + render::{camera::ScalingMode, Render, RenderApp, RenderSystems}, window::{PresentMode, WindowResolution}, winit::{UpdateMode, WinitSettings}, }; @@ -158,7 +158,10 @@ impl Plugin for LogVisibleLights { return; }; - render_app.add_systems(Render, print_visible_light_count.in_set(RenderSet::Prepare)); + render_app.add_systems( + Render, + print_visible_light_count.in_set(RenderSystems::Prepare), + ); } } diff --git a/release-content/migration-guides/system_set_naming_convention.md b/release-content/migration-guides/system_set_naming_convention.md new file mode 100644 index 0000000000..4b52da718d --- /dev/null +++ b/release-content/migration-guides/system_set_naming_convention.md @@ -0,0 +1,36 @@ +--- +title: Consistent `*Systems` naming convention for system sets +pull_requests: [18900] +--- + +System sets in Bevy now more consistently use a `Systems` suffix. +Renamed types include: + +- `AccessibilitySystem` → `AccessibilitySystems` +- `GizmoRenderSystem` → `GizmoRenderSystems` +- `PickSet` → `PickingSystems` +- `RunFixedMainLoopSystem` → `RunFixedMainLoopSystems` +- `TransformSystem` → `TransformSystems` +- `RemoteSet` → `RemoteSystems` +- `RenderSet` → `RenderSystems` +- `SpriteSystem` → `SpriteSystems` +- `StateTransitionSteps` → `StateTransitionSystems` +- `RenderUiSystem` → `RenderUiSystems` +- `UiSystem` → `UiSystems` +- `Animation` → `AnimationSystems` +- `AssetEvents` → `AssetEventSystems` +- `TrackAssets` → `AssetTrackingSystems` +- `UpdateGizmoMeshes` → `GizmoMeshSystems` +- `InputSystem` → `InputSystems` +- `InputFocusSet` → `InputFocusSystems` +- `ExtractMaterialsSet` → `MaterialExtractionSystems` +- `ExtractMeshesSet` → `MeshExtractionSystems` +- `RumbleSystem` → `RumbleSystems` +- `CameraUpdateSystem` → `CameraUpdateSystems` +- `ExtractAssetsSet` → `AssetExtractionSystems` +- `Update2dText` → `Text2dUpdateSystems` +- `TimeSystem` → `TimeSystems` +- `EventUpdates` → `EventUpdateSystems` + +To improve consistency within the ecosystem, it is recommended for ecosystem crates +and users to also adopt the `*Systems` naming convention for their system sets where applicable. diff --git a/release-content/release-notes/system_set_naming_convention.md b/release-content/release-notes/system_set_naming_convention.md new file mode 100644 index 0000000000..095c3b1d54 --- /dev/null +++ b/release-content/release-notes/system_set_naming_convention.md @@ -0,0 +1,50 @@ +--- +title: Consistent `*Systems` naming convention for system sets +authors: ["@Jondolf"] +pull_requests: [18900] +--- + +Names of `SystemSet` types within Bevy and its ecosystem have historically +been very inconsistent. Examples of system set names include `AccessibilitySystem`, +`PickSet`, `StateTransitionSteps`, and `Animation`. + +Naming conventions being so wildly inconsistent can make it harder for users to pick names +for their own types, to search for system sets on docs.rs, or to even discern which types +*are* system sets. + +To reign in the inconsistency and help unify the ecosystem, **Bevy 0.17** has renamed most of +its own system sets to follow a consistent `*Systems` naming convention. Renamed types include: + +- `AccessibilitySystem` → `AccessibilitySystems` +- `GizmoRenderSystem` → `GizmoRenderSystems` +- `PickSet` → `PickingSystems` +- `RunFixedMainLoopSystem` → `RunFixedMainLoopSystems` +- `TransformSystem` → `TransformSystems` +- `RemoteSet` → `RemoteSystems` +- `RenderSet` → `RenderSystems` +- `SpriteSystem` → `SpriteSystems` +- `StateTransitionSteps` → `StateTransitionSystems` +- `RenderUiSystem` → `RenderUiSystems` +- `UiSystem` → `UiSystems` +- `Animation` → `AnimationSystems` +- `AssetEvents` → `AssetEventSystems` +- `TrackAssets` → `AssetTrackingSystems` +- `UpdateGizmoMeshes` → `GizmoMeshSystems` +- `InputSystem` → `InputSystems` +- `InputFocusSet` → `InputFocusSystems` +- `ExtractMaterialsSet` → `MaterialExtractionSystems` +- `ExtractMeshesSet` → `MeshExtractionSystems` +- `RumbleSystem` → `RumbleSystems` +- `CameraUpdateSystem` → `CameraUpdateSystems` +- `ExtractAssetsSet` → `AssetExtractionSystems` +- `Update2dText` → `Text2dUpdateSystems` +- `TimeSystem` → `TimeSystems` +- `EventUpdates` → `EventUpdateSystems` + +The `Systems` suffix was chosen over the other popular suffix `Set`, +because `Systems` more clearly communicates that it is specifically +a collection of systems, and it has a lower risk of naming conflicts +with other set types. + +It is recommended for ecosystem crates and users to follow suit and also adopt +the `*Systems` naming convention for their system sets where applicable.