Skip to content

Commit a6e27d8

Browse files
committed
Make all bevy_pbr RenderApp access panic instead of doing nothing.
1 parent e93673e commit a6e27d8

File tree

16 files changed

+220
-215
lines changed

16 files changed

+220
-215
lines changed

crates/bevy_pbr/src/atmosphere/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ impl Plugin for AtmospherePlugin {
103103
}
104104

105105
fn finish(&self, app: &mut App) {
106-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
107-
return;
108-
};
106+
let render_app = app
107+
.get_sub_app_mut(RenderApp)
108+
.expect("RenderPlugin has not been added");
109109

110110
let render_adapter = render_app.world().resource::<RenderAdapter>();
111111

crates/bevy_pbr/src/decal/clustered.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,9 @@ impl Plugin for ClusteredDecalPlugin {
154154
app.add_plugins(ExtractComponentPlugin::<ClusteredDecal>::default())
155155
.register_type::<ClusteredDecal>();
156156

157-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
158-
return;
159-
};
157+
let render_app = app
158+
.get_sub_app_mut(RenderApp)
159+
.expect("RenderPlugin has not been added");
160160

161161
render_app
162162
.init_resource::<DecalsBuffer>()

crates/bevy_pbr/src/deferred/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ impl Plugin for DeferredPbrLightingPlugin {
9999

100100
embedded_asset!(app, "deferred_lighting.wgsl");
101101

102-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
103-
return;
104-
};
102+
let render_app = app
103+
.get_sub_app_mut(RenderApp)
104+
.expect("RenderPlugin has not been added");
105105

106106
render_app
107107
.init_resource::<SpecializedRenderPipelines<DeferredLightingLayout>>()
@@ -124,9 +124,9 @@ impl Plugin for DeferredPbrLightingPlugin {
124124
}
125125

126126
fn finish(&self, app: &mut App) {
127-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
128-
return;
129-
};
127+
let render_app = app
128+
.get_sub_app_mut(RenderApp)
129+
.expect("RenderPlugin has not been added");
130130

131131
render_app.init_resource::<DeferredLightingLayout>();
132132
}

crates/bevy_pbr/src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,9 @@ impl Plugin for PbrPlugin {
344344
},
345345
);
346346

347-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
348-
return;
349-
};
347+
let render_app = app
348+
.get_sub_app_mut(RenderApp)
349+
.expect("RenderPlugin has not been added");
350350

351351
// Extract the required data from the main world
352352
render_app
@@ -390,9 +390,9 @@ impl Plugin for PbrPlugin {
390390
}
391391

392392
fn finish(&self, app: &mut App) {
393-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
394-
return;
395-
};
393+
let render_app = app
394+
.get_sub_app_mut(RenderApp)
395+
.expect("RenderPlugin has not been added");
396396

397397
// Extract the required data from the main world
398398
render_app

crates/bevy_pbr/src/light_probe/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,9 +347,9 @@ impl Plugin for LightProbePlugin {
347347
}
348348

349349
fn finish(&self, app: &mut App) {
350-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
351-
return;
352-
};
350+
let render_app = app
351+
.get_sub_app_mut(RenderApp)
352+
.expect("RenderPlugin has not been added");
353353

354354
render_app
355355
.add_plugins(ExtractInstancesPlugin::<EnvironmentMapIds>::new())

crates/bevy_pbr/src/lightmap/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -189,9 +189,9 @@ impl Plugin for LightmapPlugin {
189189
}
190190

191191
fn finish(&self, app: &mut App) {
192-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
193-
return;
194-
};
192+
let render_app = app
193+
.get_sub_app_mut(RenderApp)
194+
.expect("RenderPlugin has not been added");
195195

196196
render_app.init_resource::<RenderLightmaps>().add_systems(
197197
ExtractSchedule,

crates/bevy_pbr/src/material.rs

Lines changed: 70 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -258,62 +258,64 @@ pub struct MaterialsPlugin {
258258
impl Plugin for MaterialsPlugin {
259259
fn build(&self, app: &mut App) {
260260
app.add_plugins((PrepassPipelinePlugin, PrepassPlugin::new(self.debug_flags)));
261-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
262-
render_app
263-
.init_resource::<EntitySpecializationTicks>()
264-
.init_resource::<SpecializedMaterialPipelineCache>()
265-
.init_resource::<SpecializedMeshPipelines<MaterialPipelineSpecializer>>()
266-
.init_resource::<LightKeyCache>()
267-
.init_resource::<LightSpecializationTicks>()
268-
.init_resource::<SpecializedShadowMaterialPipelineCache>()
269-
.add_systems(
270-
Render,
271-
(
272-
specialize_material_meshes
273-
.in_set(RenderSystems::PrepareMeshes)
274-
.after(prepare_assets::<RenderMesh>)
275-
.after(collect_meshes_for_gpu_building)
276-
.after(set_mesh_motion_vector_flags),
277-
queue_material_meshes.in_set(RenderSystems::QueueMeshes),
278-
),
279-
)
280-
.add_systems(
281-
Render,
282-
(
283-
prepare_material_bind_groups,
284-
write_material_bind_group_buffers,
285-
)
286-
.chain()
287-
.in_set(RenderSystems::PrepareBindGroups),
261+
let render_app = app
262+
.get_sub_app_mut(RenderApp)
263+
.expect("RenderPlugin has not been added");
264+
render_app
265+
.init_resource::<EntitySpecializationTicks>()
266+
.init_resource::<SpecializedMaterialPipelineCache>()
267+
.init_resource::<SpecializedMeshPipelines<MaterialPipelineSpecializer>>()
268+
.init_resource::<LightKeyCache>()
269+
.init_resource::<LightSpecializationTicks>()
270+
.init_resource::<SpecializedShadowMaterialPipelineCache>()
271+
.add_systems(
272+
Render,
273+
(
274+
specialize_material_meshes
275+
.in_set(RenderSystems::PrepareMeshes)
276+
.after(prepare_assets::<RenderMesh>)
277+
.after(collect_meshes_for_gpu_building)
278+
.after(set_mesh_motion_vector_flags),
279+
queue_material_meshes.in_set(RenderSystems::QueueMeshes),
280+
),
281+
)
282+
.add_systems(
283+
Render,
284+
(
285+
prepare_material_bind_groups,
286+
write_material_bind_group_buffers,
288287
)
289-
.add_systems(
290-
Render,
291-
(
292-
check_views_lights_need_specialization.in_set(RenderSystems::PrepareAssets),
293-
// specialize_shadows also needs to run after prepare_assets::<PreparedMaterial>,
294-
// which is fine since ManageViews is after PrepareAssets
295-
specialize_shadows
296-
.in_set(RenderSystems::ManageViews)
297-
.after(prepare_lights),
298-
queue_shadows.in_set(RenderSystems::QueueMeshes),
299-
),
300-
);
301-
}
288+
.chain()
289+
.in_set(RenderSystems::PrepareBindGroups),
290+
)
291+
.add_systems(
292+
Render,
293+
(
294+
check_views_lights_need_specialization.in_set(RenderSystems::PrepareAssets),
295+
// specialize_shadows also needs to run after prepare_assets::<PreparedMaterial>,
296+
// which is fine since ManageViews is after PrepareAssets
297+
specialize_shadows
298+
.in_set(RenderSystems::ManageViews)
299+
.after(prepare_lights),
300+
queue_shadows.in_set(RenderSystems::QueueMeshes),
301+
),
302+
);
302303
}
303304

304305
fn finish(&self, app: &mut App) {
305-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
306-
render_app
307-
.init_resource::<DrawFunctions<Shadow>>()
308-
.init_resource::<RenderMaterialInstances>()
309-
.init_resource::<MaterialPipeline>()
310-
.init_resource::<MaterialBindGroupAllocators>()
311-
.add_render_command::<Shadow, DrawPrepass>()
312-
.add_render_command::<Transmissive3d, DrawMaterial>()
313-
.add_render_command::<Transparent3d, DrawMaterial>()
314-
.add_render_command::<Opaque3d, DrawMaterial>()
315-
.add_render_command::<AlphaMask3d, DrawMaterial>();
316-
}
306+
let render_app = app
307+
.get_sub_app_mut(RenderApp)
308+
.expect("RenderPlugin has not been added");
309+
render_app
310+
.init_resource::<DrawFunctions<Shadow>>()
311+
.init_resource::<RenderMaterialInstances>()
312+
.init_resource::<MaterialPipeline>()
313+
.init_resource::<MaterialBindGroupAllocators>()
314+
.add_render_command::<Shadow, DrawPrepass>()
315+
.add_render_command::<Transmissive3d, DrawMaterial>()
316+
.add_render_command::<Transparent3d, DrawMaterial>()
317+
.add_render_command::<Opaque3d, DrawMaterial>()
318+
.add_render_command::<AlphaMask3d, DrawMaterial>();
317319
}
318320
}
319321

@@ -370,24 +372,25 @@ where
370372
);
371373
}
372374

373-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
374-
render_app.add_systems(
375-
ExtractSchedule,
376-
(
377-
extract_mesh_materials::<M>.in_set(MaterialExtractionSystems),
378-
early_sweep_material_instances::<M>
379-
.after(MaterialExtractionSystems)
380-
.before(late_sweep_material_instances),
381-
extract_entities_needs_specialization::<M>.after(extract_cameras),
382-
),
383-
);
384-
}
375+
let render_app = app
376+
.get_sub_app_mut(RenderApp)
377+
.expect("RenderPlugin has not been added");
378+
render_app.add_systems(
379+
ExtractSchedule,
380+
(
381+
extract_mesh_materials::<M>.in_set(MaterialExtractionSystems),
382+
early_sweep_material_instances::<M>
383+
.after(MaterialExtractionSystems)
384+
.before(late_sweep_material_instances),
385+
extract_entities_needs_specialization::<M>.after(extract_cameras),
386+
),
387+
);
385388
}
386389

387390
fn finish(&self, app: &mut App) {
388-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
389-
return;
390-
};
391+
let render_app = app
392+
.get_sub_app_mut(RenderApp)
393+
.expect("RenderPlugin has not been added");
391394

392395
render_app.world_mut().resource_scope(
393396
|world, mut bind_group_allocators: Mut<MaterialBindGroupAllocators>| {

crates/bevy_pbr/src/meshlet/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,9 @@ impl Plugin for MeshletPlugin {
166166
}
167167

168168
fn finish(&self, app: &mut App) {
169-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
170-
return;
171-
};
169+
let render_app = app
170+
.get_sub_app_mut(RenderApp)
171+
.expect("RenderPlugin has not been added");
172172

173173
let render_device = render_app.world().resource::<RenderDevice>().clone();
174174
let features = render_device.features();

crates/bevy_pbr/src/prepass/mod.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ impl Plugin for PrepassPipelinePlugin {
7979
load_shader_library!(app, "prepass_utils.wgsl");
8080
load_shader_library!(app, "prepass_io.wgsl");
8181

82-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
83-
return;
84-
};
82+
let render_app = app
83+
.get_sub_app_mut(RenderApp)
84+
.expect("RenderPlugin has not been added");
8585

8686
render_app
8787
.add_systems(
@@ -92,9 +92,9 @@ impl Plugin for PrepassPipelinePlugin {
9292
}
9393

9494
fn finish(&self, app: &mut App) {
95-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
96-
return;
97-
};
95+
let render_app = app
96+
.get_sub_app_mut(RenderApp)
97+
.expect("RenderPlugin has not been added");
9898

9999
render_app
100100
.init_resource::<PrepassPipeline>()
@@ -143,9 +143,9 @@ impl Plugin for PrepassPlugin {
143143
));
144144
}
145145

146-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
147-
return;
148-
};
146+
let render_app = app
147+
.get_sub_app_mut(RenderApp)
148+
.expect("RenderPlugin has not been added");
149149

150150
if no_prepass_plugin_loaded {
151151
render_app

crates/bevy_pbr/src/render/fog.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,11 @@ impl Plugin for FogPlugin {
136136
app.register_type::<DistanceFog>();
137137
app.add_plugins(ExtractComponentPlugin::<DistanceFog>::default());
138138

139-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
140-
render_app
141-
.init_resource::<FogMeta>()
142-
.add_systems(Render, prepare_fog.in_set(RenderSystems::PrepareResources));
143-
}
139+
let render_app = app
140+
.get_sub_app_mut(RenderApp)
141+
.expect("RenderPlugin has not been added");
142+
render_app
143+
.init_resource::<FogMeta>()
144+
.add_systems(Render, prepare_fog.in_set(RenderSystems::PrepareResources));
144145
}
145146
}

0 commit comments

Comments
 (0)