Skip to content

Commit ac0dcef

Browse files
committed
Make all RenderApp access in bevy_anti_aliasing, bevy_sprite, and bevy_ui panic instead of doing nothing.
1 parent a6e27d8 commit ac0dcef

File tree

14 files changed

+255
-241
lines changed

14 files changed

+255
-241
lines changed

crates/bevy_anti_aliasing/src/contrast_adaptive_sharpening/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ impl Plugin for CasPlugin {
108108
UniformComponentPlugin::<CasUniform>::default(),
109109
));
110110

111-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
112-
return;
113-
};
111+
let render_app = app
112+
.get_sub_app_mut(RenderApp)
113+
.expect("RenderPlugin has not been added");
114114
render_app
115115
.init_resource::<SpecializedRenderPipelines<CasPipeline>>()
116116
.add_systems(Render, prepare_cas_pipelines.in_set(RenderSystems::Prepare));
@@ -152,9 +152,9 @@ impl Plugin for CasPlugin {
152152
}
153153

154154
fn finish(&self, app: &mut App) {
155-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
156-
return;
157-
};
155+
let render_app = app
156+
.get_sub_app_mut(RenderApp)
157+
.expect("RenderPlugin has not been added");
158158
render_app.init_resource::<CasPipeline>();
159159
}
160160
}

crates/bevy_anti_aliasing/src/fxaa/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,9 @@ impl Plugin for FxaaPlugin {
8989
app.register_type::<Fxaa>();
9090
app.add_plugins(ExtractComponentPlugin::<Fxaa>::default());
9191

92-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
93-
return;
94-
};
92+
let render_app = app
93+
.get_sub_app_mut(RenderApp)
94+
.expect("RenderPlugin has not been added");
9595
render_app
9696
.init_resource::<SpecializedRenderPipelines<FxaaPipeline>>()
9797
.add_systems(
@@ -119,9 +119,9 @@ impl Plugin for FxaaPlugin {
119119
}
120120

121121
fn finish(&self, app: &mut App) {
122-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
123-
return;
124-
};
122+
let render_app = app
123+
.get_sub_app_mut(RenderApp)
124+
.expect("RenderPlugin has not been added");
125125
render_app.init_resource::<FxaaPipeline>();
126126
}
127127
}

crates/bevy_anti_aliasing/src/smaa/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,9 @@ impl Plugin for SmaaPlugin {
339339
app.add_plugins(ExtractComponentPlugin::<Smaa>::default())
340340
.register_type::<Smaa>();
341341

342-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
343-
return;
344-
};
342+
let render_app = app
343+
.get_sub_app_mut(RenderApp)
344+
.expect("RenderPlugin has not been added");
345345

346346
render_app
347347
.init_resource::<SmaaSpecializedRenderPipelines>()
@@ -376,9 +376,10 @@ impl Plugin for SmaaPlugin {
376376
}
377377

378378
fn finish(&self, app: &mut App) {
379-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
380-
render_app.init_resource::<SmaaPipelines>();
381-
}
379+
let render_app = app
380+
.get_sub_app_mut(RenderApp)
381+
.expect("RenderPlugin has not been added");
382+
render_app.init_resource::<SmaaPipelines>();
382383
}
383384
}
384385

crates/bevy_anti_aliasing/src/taa/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ impl Plugin for TemporalAntiAliasPlugin {
5353

5454
app.add_plugins(SyncComponentPlugin::<TemporalAntiAliasing>::default());
5555

56-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
57-
return;
58-
};
56+
let render_app = app
57+
.get_sub_app_mut(RenderApp)
58+
.expect("RenderPlugin has not been added");
5959
render_app
6060
.init_resource::<SpecializedRenderPipelines<TaaPipeline>>()
6161
.add_systems(ExtractSchedule, extract_taa_settings)
@@ -81,9 +81,9 @@ impl Plugin for TemporalAntiAliasPlugin {
8181
}
8282

8383
fn finish(&self, app: &mut App) {
84-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
85-
return;
86-
};
84+
let render_app = app
85+
.get_sub_app_mut(RenderApp)
86+
.expect("RenderPlugin has not been added");
8787

8888
render_app.init_resource::<TaaPipeline>();
8989
}

crates/bevy_sprite/src/lib.rs

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -110,43 +110,45 @@ impl Plugin for SpritePlugin {
110110
#[cfg(feature = "bevy_sprite_picking_backend")]
111111
app.add_plugins(SpritePickingPlugin);
112112

113-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
114-
render_app
115-
.init_resource::<ImageBindGroups>()
116-
.init_resource::<SpecializedRenderPipelines<SpritePipeline>>()
117-
.init_resource::<SpriteMeta>()
118-
.init_resource::<ExtractedSprites>()
119-
.init_resource::<ExtractedSlices>()
120-
.init_resource::<SpriteAssetEvents>()
121-
.add_render_command::<Transparent2d, DrawSprite>()
122-
.add_systems(
123-
ExtractSchedule,
124-
(
125-
extract_sprites.in_set(SpriteSystems::ExtractSprites),
126-
extract_sprite_events,
127-
),
128-
)
129-
.add_systems(
130-
Render,
131-
(
132-
queue_sprites
133-
.in_set(RenderSystems::Queue)
134-
.ambiguous_with(queue_material2d_meshes::<ColorMaterial>),
135-
prepare_sprite_image_bind_groups.in_set(RenderSystems::PrepareBindGroups),
136-
prepare_sprite_view_bind_groups.in_set(RenderSystems::PrepareBindGroups),
137-
sort_binned_render_phase::<Opaque2d>.in_set(RenderSystems::PhaseSort),
138-
sort_binned_render_phase::<AlphaMask2d>.in_set(RenderSystems::PhaseSort),
139-
),
140-
);
141-
};
113+
let render_app = app
114+
.get_sub_app_mut(RenderApp)
115+
.expect("RenderPlugin has not been added");
116+
render_app
117+
.init_resource::<ImageBindGroups>()
118+
.init_resource::<SpecializedRenderPipelines<SpritePipeline>>()
119+
.init_resource::<SpriteMeta>()
120+
.init_resource::<ExtractedSprites>()
121+
.init_resource::<ExtractedSlices>()
122+
.init_resource::<SpriteAssetEvents>()
123+
.add_render_command::<Transparent2d, DrawSprite>()
124+
.add_systems(
125+
ExtractSchedule,
126+
(
127+
extract_sprites.in_set(SpriteSystems::ExtractSprites),
128+
extract_sprite_events,
129+
),
130+
)
131+
.add_systems(
132+
Render,
133+
(
134+
queue_sprites
135+
.in_set(RenderSystems::Queue)
136+
.ambiguous_with(queue_material2d_meshes::<ColorMaterial>),
137+
prepare_sprite_image_bind_groups.in_set(RenderSystems::PrepareBindGroups),
138+
prepare_sprite_view_bind_groups.in_set(RenderSystems::PrepareBindGroups),
139+
sort_binned_render_phase::<Opaque2d>.in_set(RenderSystems::PhaseSort),
140+
sort_binned_render_phase::<AlphaMask2d>.in_set(RenderSystems::PhaseSort),
141+
),
142+
);
142143
}
143144

144145
fn finish(&self, app: &mut App) {
145-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
146-
render_app
147-
.init_resource::<SpriteBatches>()
148-
.init_resource::<SpritePipeline>();
149-
}
146+
let render_app = app
147+
.get_sub_app_mut(RenderApp)
148+
.expect("RenderPlugin has not been added");
149+
render_app
150+
.init_resource::<SpriteBatches>()
151+
.init_resource::<SpritePipeline>();
150152
}
151153
}
152154

crates/bevy_sprite/src/mesh2d/material.rs

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -276,41 +276,43 @@ where
276276
check_entities_needing_specialization::<M>.after(AssetEventSystems),
277277
);
278278

279-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
280-
render_app
281-
.init_resource::<EntitySpecializationTicks<M>>()
282-
.init_resource::<SpecializedMaterial2dPipelineCache<M>>()
283-
.add_render_command::<Opaque2d, DrawMaterial2d<M>>()
284-
.add_render_command::<AlphaMask2d, DrawMaterial2d<M>>()
285-
.add_render_command::<Transparent2d, DrawMaterial2d<M>>()
286-
.init_resource::<RenderMaterial2dInstances<M>>()
287-
.init_resource::<SpecializedMeshPipelines<Material2dPipeline<M>>>()
288-
.add_systems(
289-
ExtractSchedule,
290-
(
291-
extract_entities_needs_specialization::<M>.after(extract_cameras),
292-
extract_mesh_materials_2d::<M>,
293-
),
294-
)
295-
.add_systems(
296-
Render,
297-
(
298-
specialize_material2d_meshes::<M>
299-
.in_set(RenderSystems::PrepareMeshes)
300-
.after(prepare_assets::<PreparedMaterial2d<M>>)
301-
.after(prepare_assets::<RenderMesh>),
302-
queue_material2d_meshes::<M>
303-
.in_set(RenderSystems::QueueMeshes)
304-
.after(prepare_assets::<PreparedMaterial2d<M>>),
305-
),
306-
);
307-
}
279+
let render_app = app
280+
.get_sub_app_mut(RenderApp)
281+
.expect("RenderPlugin has not been added");
282+
render_app
283+
.init_resource::<EntitySpecializationTicks<M>>()
284+
.init_resource::<SpecializedMaterial2dPipelineCache<M>>()
285+
.add_render_command::<Opaque2d, DrawMaterial2d<M>>()
286+
.add_render_command::<AlphaMask2d, DrawMaterial2d<M>>()
287+
.add_render_command::<Transparent2d, DrawMaterial2d<M>>()
288+
.init_resource::<RenderMaterial2dInstances<M>>()
289+
.init_resource::<SpecializedMeshPipelines<Material2dPipeline<M>>>()
290+
.add_systems(
291+
ExtractSchedule,
292+
(
293+
extract_entities_needs_specialization::<M>.after(extract_cameras),
294+
extract_mesh_materials_2d::<M>,
295+
),
296+
)
297+
.add_systems(
298+
Render,
299+
(
300+
specialize_material2d_meshes::<M>
301+
.in_set(RenderSystems::PrepareMeshes)
302+
.after(prepare_assets::<PreparedMaterial2d<M>>)
303+
.after(prepare_assets::<RenderMesh>),
304+
queue_material2d_meshes::<M>
305+
.in_set(RenderSystems::QueueMeshes)
306+
.after(prepare_assets::<PreparedMaterial2d<M>>),
307+
),
308+
);
308309
}
309310

310311
fn finish(&self, app: &mut App) {
311-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
312-
render_app.init_resource::<Material2dPipeline<M>>();
313-
}
312+
let render_app = app
313+
.get_sub_app_mut(RenderApp)
314+
.expect("RenderPlugin has not been added");
315+
render_app.init_resource::<Material2dPipeline<M>>();
314316
}
315317
}
316318

crates/bevy_sprite/src/mesh2d/mesh.rs

Lines changed: 52 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -68,66 +68,67 @@ impl Plugin for Mesh2dRenderPlugin {
6868

6969
embedded_asset!(app, "mesh2d.wgsl");
7070

71-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
72-
render_app
73-
.init_resource::<ViewKeyCache>()
74-
.init_resource::<RenderMesh2dInstances>()
75-
.init_resource::<SpecializedMeshPipelines<Mesh2dPipeline>>()
76-
.add_systems(ExtractSchedule, extract_mesh2d)
77-
.add_systems(
78-
Render,
71+
let render_app = app
72+
.get_sub_app_mut(RenderApp)
73+
.expect("RenderPlugin has not been added");
74+
render_app
75+
.init_resource::<ViewKeyCache>()
76+
.init_resource::<RenderMesh2dInstances>()
77+
.init_resource::<SpecializedMeshPipelines<Mesh2dPipeline>>()
78+
.add_systems(ExtractSchedule, extract_mesh2d)
79+
.add_systems(
80+
Render,
81+
(
7982
(
80-
(
81-
sweep_old_entities::<Opaque2d>,
82-
sweep_old_entities::<AlphaMask2d>,
83-
)
84-
.in_set(RenderSystems::QueueSweep),
85-
batch_and_prepare_binned_render_phase::<Opaque2d, Mesh2dPipeline>
86-
.in_set(RenderSystems::PrepareResources),
87-
batch_and_prepare_binned_render_phase::<AlphaMask2d, Mesh2dPipeline>
88-
.in_set(RenderSystems::PrepareResources),
89-
batch_and_prepare_sorted_render_phase::<Transparent2d, Mesh2dPipeline>
90-
.in_set(RenderSystems::PrepareResources),
91-
write_batched_instance_buffer::<Mesh2dPipeline>
92-
.in_set(RenderSystems::PrepareResourcesFlush),
93-
prepare_mesh2d_bind_group.in_set(RenderSystems::PrepareBindGroups),
94-
prepare_mesh2d_view_bind_groups.in_set(RenderSystems::PrepareBindGroups),
95-
no_gpu_preprocessing::clear_batched_cpu_instance_buffers::<Mesh2dPipeline>
96-
.in_set(RenderSystems::Cleanup)
97-
.after(RenderSystems::Render),
98-
),
99-
);
100-
}
83+
sweep_old_entities::<Opaque2d>,
84+
sweep_old_entities::<AlphaMask2d>,
85+
)
86+
.in_set(RenderSystems::QueueSweep),
87+
batch_and_prepare_binned_render_phase::<Opaque2d, Mesh2dPipeline>
88+
.in_set(RenderSystems::PrepareResources),
89+
batch_and_prepare_binned_render_phase::<AlphaMask2d, Mesh2dPipeline>
90+
.in_set(RenderSystems::PrepareResources),
91+
batch_and_prepare_sorted_render_phase::<Transparent2d, Mesh2dPipeline>
92+
.in_set(RenderSystems::PrepareResources),
93+
write_batched_instance_buffer::<Mesh2dPipeline>
94+
.in_set(RenderSystems::PrepareResourcesFlush),
95+
prepare_mesh2d_bind_group.in_set(RenderSystems::PrepareBindGroups),
96+
prepare_mesh2d_view_bind_groups.in_set(RenderSystems::PrepareBindGroups),
97+
no_gpu_preprocessing::clear_batched_cpu_instance_buffers::<Mesh2dPipeline>
98+
.in_set(RenderSystems::Cleanup)
99+
.after(RenderSystems::Render),
100+
),
101+
);
101102
}
102103

103104
fn finish(&self, app: &mut bevy_app::App) {
104105
let mut mesh_bindings_shader_defs = Vec::with_capacity(1);
105106

106-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
107-
let render_device = render_app.world().resource::<RenderDevice>();
108-
let batched_instance_buffer =
109-
BatchedInstanceBuffer::<Mesh2dUniform>::new(render_device);
110-
111-
if let Some(per_object_buffer_batch_size) =
112-
GpuArrayBuffer::<Mesh2dUniform>::batch_size(render_device)
113-
{
114-
mesh_bindings_shader_defs.push(ShaderDefVal::UInt(
115-
"PER_OBJECT_BUFFER_BATCH_SIZE".into(),
116-
per_object_buffer_batch_size,
117-
));
118-
}
107+
let render_app = app
108+
.get_sub_app_mut(RenderApp)
109+
.expect("RenderPlugin has not been added");
110+
let render_device = render_app.world().resource::<RenderDevice>();
111+
let batched_instance_buffer = BatchedInstanceBuffer::<Mesh2dUniform>::new(render_device);
119112

120-
render_app
121-
.insert_resource(batched_instance_buffer)
122-
.init_resource::<Mesh2dPipeline>()
123-
.init_resource::<ViewKeyCache>()
124-
.init_resource::<ViewSpecializationTicks>()
125-
.add_systems(
126-
Render,
127-
check_views_need_specialization.in_set(PrepareAssets),
128-
);
113+
if let Some(per_object_buffer_batch_size) =
114+
GpuArrayBuffer::<Mesh2dUniform>::batch_size(render_device)
115+
{
116+
mesh_bindings_shader_defs.push(ShaderDefVal::UInt(
117+
"PER_OBJECT_BUFFER_BATCH_SIZE".into(),
118+
per_object_buffer_batch_size,
119+
));
129120
}
130121

122+
render_app
123+
.insert_resource(batched_instance_buffer)
124+
.init_resource::<Mesh2dPipeline>()
125+
.init_resource::<ViewKeyCache>()
126+
.init_resource::<ViewSpecializationTicks>()
127+
.add_systems(
128+
Render,
129+
check_views_need_specialization.in_set(PrepareAssets),
130+
);
131+
131132
// Load the mesh_bindings shader module here as it depends on runtime information about
132133
// whether storage buffers are supported, or the maximum uniform buffer binding size.
133134
load_shader_library!(app, "mesh2d_bindings.wgsl", move |settings| *settings =

0 commit comments

Comments
 (0)