From afe016594bf82089ae69f29ef1a946ade5ea1758 Mon Sep 17 00:00:00 2001 From: Renato Caldas Date: Wed, 17 Feb 2021 22:18:17 +0000 Subject: [PATCH] Panic when attempting to render with a Camera without Viewport. --- .../src/render_graph/nodes/pass_node.rs | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/crates/bevy_render/src/render_graph/nodes/pass_node.rs b/crates/bevy_render/src/render_graph/nodes/pass_node.rs index 0ed80fb2e96f2..50b34d55c11c6 100644 --- a/crates/bevy_render/src/render_graph/nodes/pass_node.rs +++ b/crates/bevy_render/src/render_graph/nodes/pass_node.rs @@ -223,24 +223,17 @@ where continue; }; + // get camera viewport and apply it + let viewport = world.get::(camera_entity) + .expect("A camera requires a Viewport component."); + let origin = viewport.physical_origin(); + let size = viewport.physical_size(); + let (min_depth, max_depth) = viewport.depth_range().into_inner(); + render_pass.set_viewport(origin.x, origin.y, size.x, size.y, min_depth, max_depth); + // get an ordered list of entities visible to the camera let visible_entities = world.get::(camera_entity).unwrap(); - // get camera viewport and apply it - if let Ok(viewport) = world.get::(camera_entity) { - let origin = viewport.physical_origin(); - let size = viewport.physical_size(); - let (min_depth, max_depth) = viewport.depth_range().into_inner(); - render_pass.set_viewport( - origin.x, origin.y, - size.x, size.y, - min_depth, max_depth, - ); - } else { - // a camera requires a valid viewport - continue; - } - // attempt to draw each visible entity let mut draw_state = DrawState::default(); for visible_entity in visible_entities.iter() {