2020-04-05 21:12:14 +00:00
|
|
|
mod diagnostic;
|
2020-04-04 19:43:16 +00:00
|
|
|
pub mod diagnostics;
|
2020-05-04 20:21:14 +00:00
|
|
|
mod frame_time_diagnostics_plugin;
|
2020-04-05 21:12:14 +00:00
|
|
|
pub use diagnostic::*;
|
2020-05-04 20:21:14 +00:00
|
|
|
pub use frame_time_diagnostics_plugin::FrameTimeDiagnosticsPlugin;
|
2020-03-27 22:03:47 +00:00
|
|
|
|
2020-04-06 23:15:59 +00:00
|
|
|
use bevy_app::{AppBuilder, AppPlugin};
|
2020-05-04 20:21:14 +00:00
|
|
|
use diagnostics::{print_diagnostics_system, PrintDiagnosticsState};
|
2020-04-30 23:13:21 +00:00
|
|
|
use legion::prelude::IntoSystem;
|
2020-04-05 21:12:14 +00:00
|
|
|
use std::time::Duration;
|
2020-03-27 22:03:47 +00:00
|
|
|
|
2020-05-04 18:43:21 +00:00
|
|
|
pub struct PrintDiagnostics {
|
|
|
|
pub wait_duration: Duration,
|
|
|
|
pub filter: Option<Vec<DiagnosticId>>,
|
|
|
|
}
|
|
|
|
|
2020-04-05 21:12:14 +00:00
|
|
|
pub struct DiagnosticsPlugin {
|
2020-05-04 18:43:21 +00:00
|
|
|
pub print_diagnostics: Option<PrintDiagnostics>,
|
2020-03-27 22:03:47 +00:00
|
|
|
}
|
|
|
|
|
2020-04-05 21:12:14 +00:00
|
|
|
impl Default for DiagnosticsPlugin {
|
|
|
|
fn default() -> Self {
|
|
|
|
DiagnosticsPlugin {
|
2020-05-04 18:43:21 +00:00
|
|
|
print_diagnostics: Some(PrintDiagnostics {
|
|
|
|
wait_duration: Duration::from_secs_f64(1.0),
|
|
|
|
filter: None,
|
|
|
|
}),
|
2020-03-27 22:03:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-05 21:12:14 +00:00
|
|
|
impl AppPlugin for DiagnosticsPlugin {
|
2020-04-06 03:19:02 +00:00
|
|
|
fn build(&self, app: &mut AppBuilder) {
|
2020-05-01 20:12:47 +00:00
|
|
|
app.init_resource::<Diagnostics>();
|
2020-05-04 18:43:21 +00:00
|
|
|
if let Some(ref print_diagnostics) = self.print_diagnostics {
|
|
|
|
app.add_resource(PrintDiagnosticsState::new(print_diagnostics.wait_duration))
|
2020-04-30 23:13:21 +00:00
|
|
|
.add_system(print_diagnostics_system.system());
|
2020-03-27 22:03:47 +00:00
|
|
|
}
|
|
|
|
}
|
2020-04-04 19:43:16 +00:00
|
|
|
}
|