From 57fcb4a13d437f7f49f3a804e5b063d14e4e0036 Mon Sep 17 00:00:00 2001 From: Nicola Papale Date: Fri, 9 Jun 2023 22:02:51 +0200 Subject: [PATCH 1/2] Implement Reflect on NoFrustumCulling --- crates/bevy_render/src/view/mod.rs | 1 + crates/bevy_render/src/view/visibility/mod.rs | 9 ++++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/bevy_render/src/view/mod.rs b/crates/bevy_render/src/view/mod.rs index e3c66a5519a5f..2a8b226050cb1 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 30e8819a641d9..a87c5c426199f 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}; +use bevy_transform::{components::GlobalTransform, TransformSystem}; use std::cell::Cell; use thread_local::ThreadLocal; @@ -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, Reflect, Default)] +#[reflect(Component, Default)] pub struct NoFrustumCulling; /// Collection of entities visible from the current view. From 66ec8fd50cf6705710d202a3458a3e5388333f07 Mon Sep 17 00:00:00 2001 From: Nicola Papale Date: Fri, 9 Jun 2023 22:22:39 +0200 Subject: [PATCH 2/2] Add FromReflect registrations --- crates/bevy_render/src/view/visibility/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/bevy_render/src/view/visibility/mod.rs b/crates/bevy_render/src/view/visibility/mod.rs index a87c5c426199f..4ea61f2fcdc63 100644 --- a/crates/bevy_render/src/view/visibility/mod.rs +++ b/crates/bevy_render/src/view/visibility/mod.rs @@ -6,7 +6,7 @@ use bevy_app::{Plugin, PostUpdate}; use bevy_asset::{Assets, Handle}; use bevy_ecs::prelude::*; use bevy_hierarchy::{Children, Parent}; -use bevy_reflect::{std_traits::ReflectDefault, FromReflect, Reflect}; +use bevy_reflect::{std_traits::ReflectDefault, FromReflect, Reflect, ReflectFromReflect}; use bevy_transform::{components::GlobalTransform, TransformSystem}; use std::cell::Cell; use thread_local::ThreadLocal; @@ -28,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`]. /// @@ -155,8 +155,8 @@ pub struct VisibilityBundle { } /// Use this component to opt-out of built-in frustum culling for Mesh entities -#[derive(Component, Reflect, Default)] -#[reflect(Component, Default)] +#[derive(Component, Default, Reflect, FromReflect)] +#[reflect(Component, Default, FromReflect)] pub struct NoFrustumCulling; /// Collection of entities visible from the current view.