diff options
| author | rezural <rezural@protonmail.com> | 2021-01-02 16:45:55 +1100 |
|---|---|---|
| committer | rezural <rezural@protonmail.com> | 2021-01-02 16:46:52 +1100 |
| commit | 34e79e9afc21ff0202d8a0338d0e8e038402a159 (patch) | |
| tree | 8d1486aa5de2488caa265f658dcb3ab10d7c7b11 /src_testbed/testbed.rs | |
| parent | ed76291fbfdc93290754cb0be500775fb9c5f48c (diff) | |
| download | rapier-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.rs | 23 |
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) |
