aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/testbed.rs
diff options
context:
space:
mode:
authorrezural <rezural@protonmail.com>2021-01-02 16:45:55 +1100
committerrezural <rezural@protonmail.com>2021-01-02 16:46:52 +1100
commit34e79e9afc21ff0202d8a0338d0e8e038402a159 (patch)
tree8d1486aa5de2488caa265f658dcb3ab10d7c7b11 /src_testbed/testbed.rs
parented76291fbfdc93290754cb0be500775fb9c5f48c (diff)
downloadrapier-34e79e9afc21ff0202d8a0338d0e8e038402a159.tar.gz
rapier-34e79e9afc21ff0202d8a0338d0e8e038402a159.tar.bz2
rapier-34e79e9afc21ff0202d8a0338d0e8e038402a159.zip
unify callbacks with & without graphics & window
Diffstat (limited to 'src_testbed/testbed.rs')
-rw-r--r--src_testbed/testbed.rs23
1 files changed, 20 insertions, 3 deletions
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs
index bb3d8ee..fd6b9a0 100644
--- a/src_testbed/testbed.rs
+++ b/src_testbed/testbed.rs
@@ -3,10 +3,10 @@ use std::mem;
use std::path::Path;
use std::rc::Rc;
-use crate::engine::GraphicsManager;
-use crate::physics::{PhysicsSnapshot, PhysicsState};
+use crate::physics::{PhysicsEvents, PhysicsSnapshot, PhysicsState};
use crate::plugin::TestbedPlugin;
use crate::ui::TestbedUi;
+use crate::{engine::GraphicsManager, harness::RunState};
use kiss3d::camera::Camera;
use kiss3d::event::Event;
@@ -392,6 +392,21 @@ impl Testbed {
self.plugins.clear();
}
+ pub fn add_callback<
+ F: FnMut(
+ Option<&mut Window>,
+ Option<&mut GraphicsManager>,
+ &mut PhysicsState,
+ &PhysicsEvents,
+ &RunState,
+ ) + 'static,
+ >(
+ &mut self,
+ callback: F,
+ ) {
+ self.harness.add_callback(callback);
+ }
+
pub fn add_plugin(&mut self, plugin: impl TestbedPlugin + 'static) {
self.plugins.push(Box::new(plugin));
}
@@ -1221,7 +1236,9 @@ impl State for Testbed {
if self.state.running != RunMode::Stop {
for _ in 0..self.nsteps {
if self.state.selected_backend == RAPIER_BACKEND {
- self.harness.step();
+ let graphics = &mut self.graphics;
+ self.harness
+ .step_with_graphics(Some(window), Some(graphics));
for plugin in &mut self.plugins {
plugin.step(&mut self.harness.physics)