aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/ui.rs
diff options
context:
space:
mode:
authorThierry Berger <contact@thierryberger.com>2024-11-19 16:33:26 +0100
committerGitHub <noreply@github.com>2024-11-19 16:33:26 +0100
commit510237cc29ebc667a8c158ef0340b7d1aa669a72 (patch)
tree772daf3fac2e463eba254900001fce5a659f2f92 /src_testbed/ui.rs
parentff79f4c67478f8c8045464cac22f9e57388cd4a0 (diff)
downloadrapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.tar.gz
rapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.tar.bz2
rapier-510237cc29ebc667a8c158ef0340b7d1aa669a72.zip
Profiling support (#743)
Diffstat (limited to 'src_testbed/ui.rs')
-rw-r--r--src_testbed/ui.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src_testbed/ui.rs b/src_testbed/ui.rs
index b27ea7a..8e543af 100644
--- a/src_testbed/ui.rs
+++ b/src_testbed/ui.rs
@@ -21,6 +21,41 @@ pub fn update_ui(
harness: &mut Harness,
debug_render: &mut DebugRenderPipelineResource,
) {
+ #[cfg(feature = "profiling")]
+ {
+ let window = egui::Window::new("Profiling");
+ let window = window.default_open(false);
+
+ #[cfg(feature = "unstable-puffin-pr-235")]
+ {
+ use std::sync::Once;
+ static START: Once = Once::new();
+
+ fn set_default_rapier_filter() {
+ let mut profile_ui = puffin_egui::PROFILE_UI.lock();
+ profile_ui
+ .profiler_ui
+ .flamegraph_options
+ .scope_name_filter
+ .set_filter("Harness::step_with_graphics".to_string());
+ }
+ START.call_once(|| {
+ set_default_rapier_filter();
+ });
+ window.show(ui_context.ctx_mut(), |ui| {
+ if ui.button("🔍 Rapier filter").clicked() {
+ set_default_rapier_filter();
+ }
+ puffin_egui::profiler_ui(ui);
+ });
+ }
+
+ #[cfg(not(feature = "unstable-puffin-pr-235"))]
+ window.show(ui_context.ctx_mut(), |ui| {
+ puffin_egui::profiler_ui(ui);
+ });
+ }
+
egui::Window::new("Parameters").show(ui_context.ctx_mut(), |ui| {
if state.backend_names.len() > 1 && !state.example_names.is_empty() {
let mut changed = false;