Skip to content

Commit

Permalink
Add example demonstrating how to enable / disable diagnostics (#14741)
Browse files Browse the repository at this point in the history
# Objective

fixes #14569

## Solution

added an example to the diagnostic examples and linked the code to the
docs of the diagnostic library itself.

## Testing

I tested locally on my laptop in a web browser. Looked fine. You are
able to collapse the whole "intro" part of the doc to get to the links
sooner (for those who may think that including the example code here is
annoying to scroll through)

I would like people to run ```cargo doc``` and go the bevy_diagnostic
page to see if they have any issues or suggestions.

---

## Showcase

<img width="1067" alt="Screenshot 2024-08-14 at 12 52 16"
src="https://github.com/user-attachments/assets/70b6c18a-0bb9-4656-ba53-c416f62c6116">

---------

Co-authored-by: dpeke <dpekelis@funstage.com>
  • Loading branch information
Nihilistas and dpeke authored Aug 15, 2024
1 parent 5243fe6 commit eec3800
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
11 changes: 11 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1604,6 +1604,17 @@ description = "Shows how to create a custom diagnostic"
category = "Diagnostics"
wasm = true

[[example]]
name = "enabling_disabling_diagnostic"
path = "examples/diagnostics/enabling_disabling_diagnostic.rs"
doc-scrape-examples = true

[package.metadata.example.enabling_disabling_diagnostic]
name = "Enabling/disabling diagnostic"
description = "Shows how to disable/re-enable a Diagnostic during runtime"
category = "Diagnostics"
wasm = true

# ECS (Entity Component System)
[[example]]
name = "ecs_guide"
Expand Down
1 change: 1 addition & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ Example | Description
Example | Description
--- | ---
[Custom Diagnostic](../examples/diagnostics/custom_diagnostic.rs) | Shows how to create a custom diagnostic
[Enabling/disabling diagnostic](../examples/diagnostics/enabling_disabling_diagnostic.rs) | Shows how to disable/re-enable a Diagnostic during runtime
[Log Diagnostics](../examples/diagnostics/log_diagnostics.rs) | Add a plugin that logs diagnostics, like frames per second (FPS), to the console

## ECS (Entity Component System)
Expand Down
30 changes: 30 additions & 0 deletions examples/diagnostics/enabling_disabling_diagnostic.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
//! Shows how to disable/re-enable a Diagnostic during runtime

use std::time::Duration;

use bevy::{
diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin},
prelude::*,
time::common_conditions::on_timer,
};

fn main() {
App::new()
.add_plugins((
DefaultPlugins,
FrameTimeDiagnosticsPlugin,
LogDiagnosticsPlugin::default(),
))
.add_systems(
Update,
toggle.run_if(on_timer(Duration::from_secs_f32(10.0))),
)
.run();
}

fn toggle(mut store: ResMut<DiagnosticsStore>) {
for diag in store.iter_mut() {
info!("toggling diagnostic {}", diag.path());
diag.is_enabled = !diag.is_enabled;
}
}

0 comments on commit eec3800

Please sign in to comment.