Skip to content

Commit 249fd08

Browse files
committed
do not reset is_visible for each view_query
1 parent 32cd989 commit 249fd08

File tree

1 file changed

+17
-12
lines changed
  • crates/bevy_render/src/view/visibility

1 file changed

+17
-12
lines changed

crates/bevy_render/src/view/visibility/mod.rs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -149,21 +149,29 @@ pub fn update_frusta<T: Component + CameraProjection + Send + Sync + 'static>(
149149

150150
pub fn check_visibility(
151151
mut view_query: Query<(&mut VisibleEntities, &Frustum, Option<&RenderLayers>), With<Camera>>,
152-
mut visible_entity_query: Query<(
153-
Entity,
154-
&Visibility,
155-
&mut ComputedVisibility,
156-
Option<&RenderLayers>,
157-
Option<&Aabb>,
158-
Option<&NoFrustumCulling>,
159-
Option<&GlobalTransform>,
152+
mut visible_entity_query: ParamSet<(
153+
Query<&mut ComputedVisibility>,
154+
Query<(
155+
Entity,
156+
&Visibility,
157+
&mut ComputedVisibility,
158+
Option<&RenderLayers>,
159+
Option<&Aabb>,
160+
Option<&NoFrustumCulling>,
161+
Option<&GlobalTransform>,
162+
)>,
160163
)>,
161164
) {
165+
// Reset the computed visibility to false
166+
for mut computed_visibility in visible_entity_query.p0().iter_mut() {
167+
computed_visibility.is_visible = false;
168+
}
169+
162170
for (mut visible_entities, frustum, maybe_view_mask) in view_query.iter_mut() {
163171
let view_mask = maybe_view_mask.copied().unwrap_or_default();
164172
let (visible_entity_sender, visible_entity_receiver) = crossbeam_channel::unbounded();
165173

166-
visible_entity_query.par_for_each_mut(
174+
visible_entity_query.p1().par_for_each_mut(
167175
1024,
168176
|(
169177
entity,
@@ -174,9 +182,6 @@ pub fn check_visibility(
174182
maybe_no_frustum_culling,
175183
maybe_transform,
176184
)| {
177-
// Reset visibility
178-
computed_visibility.is_visible = false;
179-
180185
if !visibility.is_visible {
181186
return;
182187
}

0 commit comments

Comments
 (0)