Skip to content

Commit 9862f75

Browse files
committed
Make most bevy_render RenderApp access panic instead of doing nothing.
1 parent 85448b7 commit 9862f75

File tree

18 files changed

+213
-196
lines changed

18 files changed

+213
-196
lines changed

crates/bevy_render/src/batching/gpu_preprocessing.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ pub struct BatchingPlugin {
4949

5050
impl Plugin for BatchingPlugin {
5151
fn build(&self, app: &mut App) {
52-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
53-
return;
54-
};
52+
let render_app = app
53+
.get_sub_app_mut(RenderApp)
54+
.expect("RenderPlugin has not been added");
5555

5656
render_app
5757
.insert_resource(IndirectParametersBuffers::new(
@@ -69,9 +69,9 @@ impl Plugin for BatchingPlugin {
6969
}
7070

7171
fn finish(&self, app: &mut App) {
72-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
73-
return;
74-
};
72+
let render_app = app
73+
.get_sub_app_mut(RenderApp)
74+
.expect("RenderPlugin has not been added");
7575

7676
render_app.init_resource::<GpuPreprocessingSupport>();
7777
}

crates/bevy_render/src/camera/mod.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,15 @@ impl Plugin for CameraPlugin {
3939
ExtractComponentPlugin::<CameraMainTextureUsages>::default(),
4040
));
4141

42-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
43-
render_app
44-
.init_resource::<SortedCameras>()
45-
.add_systems(ExtractSchedule, extract_cameras)
46-
.add_systems(Render, sort_cameras.in_set(RenderSystems::ManageViews));
47-
let camera_driver_node = CameraDriverNode::new(render_app.world_mut());
48-
let mut render_graph = render_app.world_mut().resource_mut::<RenderGraph>();
49-
render_graph.add_node(crate::graph::CameraDriverLabel, camera_driver_node);
50-
}
42+
let render_app = app
43+
.get_sub_app_mut(RenderApp)
44+
.expect("RenderPlugin has not been added");
45+
render_app
46+
.init_resource::<SortedCameras>()
47+
.add_systems(ExtractSchedule, extract_cameras)
48+
.add_systems(Render, sort_cameras.in_set(RenderSystems::ManageViews));
49+
let camera_driver_node = CameraDriverNode::new(render_app.world_mut());
50+
let mut render_graph = render_app.world_mut().resource_mut::<RenderGraph>();
51+
render_graph.add_node(crate::graph::CameraDriverLabel, camera_driver_node);
5152
}
5253
}

crates/bevy_render/src/diagnostic/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,16 @@ impl Plugin for RenderDiagnosticsPlugin {
5454
app.insert_resource(render_diagnostics_mutex.clone())
5555
.add_systems(PreUpdate, sync_diagnostics);
5656

57-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
58-
render_app.insert_resource(render_diagnostics_mutex);
59-
}
57+
let render_app = app
58+
.get_sub_app_mut(RenderApp)
59+
.expect("RenderPlugin has not been added");
60+
render_app.insert_resource(render_diagnostics_mutex);
6061
}
6162

6263
fn finish(&self, app: &mut App) {
63-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
64-
return;
65-
};
64+
let render_app = app
65+
.get_sub_app_mut(RenderApp)
66+
.expect("RenderPlugin has not been added");
6667

6768
let adapter_info = render_app.world().resource::<RenderAdapterInfo>();
6869
let device = render_app.world().resource::<RenderDevice>();

crates/bevy_render/src/erased_render_asset.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -125,20 +125,21 @@ impl<A: ErasedRenderAsset, AFTER: ErasedRenderAssetDependency + 'static> Plugin
125125
}
126126

127127
fn finish(&self, app: &mut App) {
128-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
129-
render_app
130-
.init_resource::<ExtractedAssets<A>>()
131-
.init_resource::<ErasedRenderAssets<A::ErasedAsset>>()
132-
.init_resource::<PrepareNextFrameAssets<A>>()
133-
.add_systems(
134-
ExtractSchedule,
135-
extract_erased_render_asset::<A>.in_set(AssetExtractionSystems),
136-
);
137-
AFTER::register_system(
138-
render_app,
139-
prepare_erased_assets::<A>.in_set(RenderSystems::PrepareAssets),
128+
let render_app = app
129+
.get_sub_app_mut(RenderApp)
130+
.expect("RenderPlugin has not been added");
131+
render_app
132+
.init_resource::<ExtractedAssets<A>>()
133+
.init_resource::<ErasedRenderAssets<A::ErasedAsset>>()
134+
.init_resource::<PrepareNextFrameAssets<A>>()
135+
.add_systems(
136+
ExtractSchedule,
137+
extract_erased_render_asset::<A>.in_set(AssetExtractionSystems),
140138
);
141-
}
139+
AFTER::register_system(
140+
render_app,
141+
prepare_erased_assets::<A>.in_set(RenderSystems::PrepareAssets),
142+
);
142143
}
143144
}
144145

crates/bevy_render/src/extract_component.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,15 @@ impl<C> Default for UniformComponentPlugin<C> {
8282

8383
impl<C: Component + ShaderType + WriteInto + Clone> Plugin for UniformComponentPlugin<C> {
8484
fn build(&self, app: &mut App) {
85-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
86-
render_app
87-
.insert_resource(ComponentUniforms::<C>::default())
88-
.add_systems(
89-
Render,
90-
prepare_uniform_components::<C>.in_set(RenderSystems::PrepareResources),
91-
);
92-
}
85+
let render_app = app
86+
.get_sub_app_mut(RenderApp)
87+
.expect("RenderPlugin has not been added");
88+
render_app
89+
.insert_resource(ComponentUniforms::<C>::default())
90+
.add_systems(
91+
Render,
92+
prepare_uniform_components::<C>.in_set(RenderSystems::PrepareResources),
93+
);
9394
}
9495
}
9596

@@ -187,12 +188,13 @@ impl<C: ExtractComponent> Plugin for ExtractComponentPlugin<C> {
187188
fn build(&self, app: &mut App) {
188189
app.add_plugins(SyncComponentPlugin::<C>::default());
189190

190-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
191-
if self.only_extract_visible {
192-
render_app.add_systems(ExtractSchedule, extract_visible_components::<C>);
193-
} else {
194-
render_app.add_systems(ExtractSchedule, extract_components::<C>);
195-
}
191+
let render_app = app
192+
.get_sub_app_mut(RenderApp)
193+
.expect("RenderPlugin has not been added");
194+
if self.only_extract_visible {
195+
render_app.add_systems(ExtractSchedule, extract_visible_components::<C>);
196+
} else {
197+
render_app.add_systems(ExtractSchedule, extract_components::<C>);
196198
}
197199
}
198200
}

crates/bevy_render/src/extract_instances.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,14 @@ where
9494
EI: ExtractInstance,
9595
{
9696
fn build(&self, app: &mut App) {
97-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
98-
render_app.init_resource::<ExtractedInstances<EI>>();
99-
if self.only_extract_visible {
100-
render_app.add_systems(ExtractSchedule, extract_visible::<EI>);
101-
} else {
102-
render_app.add_systems(ExtractSchedule, extract_all::<EI>);
103-
}
97+
let render_app = app
98+
.get_sub_app_mut(RenderApp)
99+
.expect("RenderPlugin has not been added");
100+
render_app.init_resource::<ExtractedInstances<EI>>();
101+
if self.only_extract_visible {
102+
render_app.add_systems(ExtractSchedule, extract_visible::<EI>);
103+
} else {
104+
render_app.add_systems(ExtractSchedule, extract_all::<EI>);
104105
}
105106
}
106107
}

crates/bevy_render/src/globals.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,17 @@ impl Plugin for GlobalsPlugin {
1818
load_shader_library!(app, "globals.wgsl");
1919
app.register_type::<GlobalsUniform>();
2020

21-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
22-
render_app
23-
.init_resource::<GlobalsBuffer>()
24-
.init_resource::<Time>()
25-
.add_systems(ExtractSchedule, (extract_frame_count, extract_time))
26-
.add_systems(
27-
Render,
28-
prepare_globals_buffer.in_set(RenderSystems::PrepareResources),
29-
);
30-
}
21+
let render_app = app
22+
.get_sub_app_mut(RenderApp)
23+
.expect("RenderPlugin has not been added");
24+
render_app
25+
.init_resource::<GlobalsBuffer>()
26+
.init_resource::<Time>()
27+
.add_systems(ExtractSchedule, (extract_frame_count, extract_time))
28+
.add_systems(
29+
Render,
30+
prepare_globals_buffer.in_set(RenderSystems::PrepareResources),
31+
);
3132
}
3233
}
3334

crates/bevy_render/src/gpu_component_array_buffer.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,22 @@ pub struct GpuComponentArrayBufferPlugin<C: Component + GpuArrayBufferable>(Phan
1717

1818
impl<C: Component + GpuArrayBufferable> Plugin for GpuComponentArrayBufferPlugin<C> {
1919
fn build(&self, app: &mut App) {
20-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
21-
render_app.add_systems(
22-
Render,
23-
prepare_gpu_component_array_buffers::<C>.in_set(RenderSystems::PrepareResources),
24-
);
25-
}
20+
let render_app = app
21+
.get_sub_app_mut(RenderApp)
22+
.expect("RenderPlugin has not been added");
23+
render_app.add_systems(
24+
Render,
25+
prepare_gpu_component_array_buffers::<C>.in_set(RenderSystems::PrepareResources),
26+
);
2627
}
2728

2829
fn finish(&self, app: &mut App) {
29-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
30-
render_app.insert_resource(GpuArrayBuffer::<C>::new(
31-
render_app.world().resource::<RenderDevice>(),
32-
));
33-
}
30+
let render_app = app
31+
.get_sub_app_mut(RenderApp)
32+
.expect("RenderPlugin has not been added");
33+
render_app.insert_resource(GpuArrayBuffer::<C>::new(
34+
render_app.world().resource::<RenderDevice>(),
35+
));
3436
}
3537
}
3638

crates/bevy_render/src/gpu_readback.rs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,22 +51,23 @@ impl Plugin for GpuReadbackPlugin {
5151
fn build(&self, app: &mut App) {
5252
app.add_plugins(ExtractComponentPlugin::<Readback>::default());
5353

54-
if let Some(render_app) = app.get_sub_app_mut(RenderApp) {
55-
render_app
56-
.init_resource::<GpuReadbackBufferPool>()
57-
.init_resource::<GpuReadbacks>()
58-
.insert_resource(GpuReadbackMaxUnusedFrames(self.max_unused_frames))
59-
.add_systems(ExtractSchedule, sync_readbacks.ambiguous_with_all())
60-
.add_systems(
61-
Render,
62-
(
63-
prepare_buffers.in_set(RenderSystems::PrepareResources),
64-
map_buffers
65-
.after(render_system)
66-
.in_set(RenderSystems::Render),
67-
),
68-
);
69-
}
54+
let render_app = app
55+
.get_sub_app_mut(RenderApp)
56+
.expect("RenderPlugin has not been added");
57+
render_app
58+
.init_resource::<GpuReadbackBufferPool>()
59+
.init_resource::<GpuReadbacks>()
60+
.insert_resource(GpuReadbackMaxUnusedFrames(self.max_unused_frames))
61+
.add_systems(ExtractSchedule, sync_readbacks.ambiguous_with_all())
62+
.add_systems(
63+
Render,
64+
(
65+
prepare_buffers.in_set(RenderSystems::PrepareResources),
66+
map_buffers
67+
.after(render_system)
68+
.in_set(RenderSystems::Render),
69+
),
70+
);
7071
}
7172
}
7273

crates/bevy_render/src/mesh/allocator.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -309,9 +309,9 @@ impl Display for SlabId {
309309

310310
impl Plugin for MeshAllocatorPlugin {
311311
fn build(&self, app: &mut App) {
312-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
313-
return;
314-
};
312+
let render_app = app
313+
.get_sub_app_mut(RenderApp)
314+
.expect("RenderPlugin has not been added");
315315

316316
render_app
317317
.init_resource::<MeshAllocatorSettings>()
@@ -324,9 +324,9 @@ impl Plugin for MeshAllocatorPlugin {
324324
}
325325

326326
fn finish(&self, app: &mut App) {
327-
let Some(render_app) = app.get_sub_app_mut(RenderApp) else {
328-
return;
329-
};
327+
let render_app = app
328+
.get_sub_app_mut(RenderApp)
329+
.expect("RenderPlugin has not been added");
330330

331331
// The `RenderAdapter` isn't available until now, so we can't do this in
332332
// [`Plugin::build`].

0 commit comments

Comments
 (0)