diff --git a/crates/bevy_diagnostic/src/frame_time_diagnostics_plugin.rs b/crates/bevy_diagnostic/src/frame_time_diagnostics_plugin.rs index 2f48fe200b035..4d979bbee1d42 100644 --- a/crates/bevy_diagnostic/src/frame_time_diagnostics_plugin.rs +++ b/crates/bevy_diagnostic/src/frame_time_diagnostics_plugin.rs @@ -3,28 +3,43 @@ use bevy_app::prelude::*; use bevy_core::Time; use bevy_ecs::{IntoQuerySystem, Res, ResMut}; -/// Adds "frame time" diagnostic to an App, specifically "frame time" and "fps" +/// Adds "frame time" diagnostic to an App, specifically "frame time", "fps" and "frame count" #[derive(Default)] pub struct FrameTimeDiagnosticsPlugin; +pub struct FrameTimeDiagnosticsState { + frame_count: f64, +} + impl Plugin for FrameTimeDiagnosticsPlugin { fn build(&self, app: &mut bevy_app::AppBuilder) { app.add_startup_system(Self::setup_system.system()) + .add_resource(FrameTimeDiagnosticsState { frame_count: 0.0 }) .add_system(Self::diagnostic_system.system()); } } impl FrameTimeDiagnosticsPlugin { pub const FPS: DiagnosticId = DiagnosticId::from_u128(288146834822086093791974408528866909483); + pub const FRAME_COUNT: DiagnosticId = + DiagnosticId::from_u128(54021991829115352065418785002088010277); pub const FRAME_TIME: DiagnosticId = - DiagnosticId::from_u128(54021991829115352065418785002088010276); + DiagnosticId::from_u128(73441630925388532774622109383099159699); pub fn setup_system(mut diagnostics: ResMut) { diagnostics.add(Diagnostic::new(Self::FRAME_TIME, "frame_time", 20)); diagnostics.add(Diagnostic::new(Self::FPS, "fps", 20)); + diagnostics.add(Diagnostic::new(Self::FRAME_COUNT, "frame_count", 1)); } - pub fn diagnostic_system(mut diagnostics: ResMut, time: Res