From c1fd505f9c5c4d9daf3dad844c1bf5ff8ee6820f Mon Sep 17 00:00:00 2001 From: Nicola Papale Date: Sat, 10 Jun 2023 12:04:50 +0200 Subject: [PATCH] Implement Reflect on NoFrustumCulling (#8801) # Objective `NoFrustumCulling` doesn't implement `Reflect`, while nothing prevents it from implementing it. ## Solution Implement `Reflect` for it. --- ## Changelog - Add `Reflect` derive to `NoFrustrumCulling`. - Add `FromReflect` derive to `Visibility`. --- crates/bevy_render/src/view/mod.rs | 1 + crates/bevy_render/src/view/visibility/mod.rs | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/bevy_render/src/view/mod.rs b/crates/bevy_render/src/view/mod.rs index e3c66a5519..2a8b226050 100644 --- a/crates/bevy_render/src/view/mod.rs +++ b/crates/bevy_render/src/view/mod.rs @@ -43,6 +43,7 @@ impl Plugin for ViewPlugin { app.register_type::() .register_type::() .register_type::() + .register_type::() .register_type::() .register_type::() .register_type::() diff --git a/crates/bevy_render/src/view/visibility/mod.rs b/crates/bevy_render/src/view/visibility/mod.rs index 30e8819a64..4ea61f2fcd 100644 --- a/crates/bevy_render/src/view/visibility/mod.rs +++ b/crates/bevy_render/src/view/visibility/mod.rs @@ -6,10 +6,8 @@ use bevy_app::{Plugin, PostUpdate}; use bevy_asset::{Assets, Handle}; use bevy_ecs::prelude::*; use bevy_hierarchy::{Children, Parent}; -use bevy_reflect::Reflect; -use bevy_reflect::{std_traits::ReflectDefault, FromReflect}; -use bevy_transform::components::GlobalTransform; -use bevy_transform::TransformSystem; +use bevy_reflect::{std_traits::ReflectDefault, FromReflect, Reflect, ReflectFromReflect}; +use bevy_transform::{components::GlobalTransform, TransformSystem}; use std::cell::Cell; use thread_local::ThreadLocal; @@ -30,7 +28,7 @@ use crate::{ /// This is done by the `visibility_propagate_system` which uses the entity hierarchy and /// `Visibility` to set the values of each entity's [`ComputedVisibility`] component. #[derive(Component, Clone, Copy, Reflect, FromReflect, Debug, PartialEq, Eq, Default)] -#[reflect(Component, Default)] +#[reflect(Component, Default, FromReflect)] pub enum Visibility { /// An entity with `Visibility::Inherited` will inherit the Visibility of its [`Parent`]. /// @@ -157,7 +155,8 @@ pub struct VisibilityBundle { } /// Use this component to opt-out of built-in frustum culling for Mesh entities -#[derive(Component)] +#[derive(Component, Default, Reflect, FromReflect)] +#[reflect(Component, Default, FromReflect)] pub struct NoFrustumCulling; /// Collection of entities visible from the current view.