diff --git a/crates/bevy_core/src/lib.rs b/crates/bevy_core/src/lib.rs index 8390cb37e99ee..ee21feb2ec9ef 100644 --- a/crates/bevy_core/src/lib.rs +++ b/crates/bevy_core/src/lib.rs @@ -6,7 +6,7 @@ mod name; mod serde; mod task_pool_options; -use bevy_ecs::system::Resource; +use bevy_ecs::system::{ResMut, Resource}; pub use bytemuck::{bytes_of, cast_slice, Pod, Zeroable}; pub use name::*; pub use task_pool_options::*; @@ -55,6 +55,7 @@ impl Plugin for CorePlugin { register_math_types(app); app.init_resource::(); + app.add_system(update_frame_count); } } @@ -112,6 +113,10 @@ fn register_math_types(app: &mut App) { #[derive(Default, Resource, Clone, Copy)] pub struct FrameCount(pub u32); +fn update_frame_count(mut frame_count: ResMut) { + frame_count.0 = frame_count.0.wrapping_add(1); +} + #[cfg(test)] mod tests { use super::*; @@ -149,4 +154,14 @@ mod tests { compute_rx.try_recv().unwrap(); io_rx.try_recv().unwrap(); } + + #[test] + fn frame_counter_update() { + let mut app = App::new(); + app.add_plugin(CorePlugin::default()); + app.update(); + + let frame_count = app.world.resource::(); + assert_eq!(1, frame_count.0); + } } diff --git a/crates/bevy_render/src/globals.rs b/crates/bevy_render/src/globals.rs index f5fa30482f850..a0b160dd4b27d 100644 --- a/crates/bevy_render/src/globals.rs +++ b/crates/bevy_render/src/globals.rs @@ -19,12 +19,17 @@ impl Plugin for GlobalsPlugin { render_app .init_resource::() .init_resource::