diff options
| author | Sébastien Crozet <developer@crozet.re> | 2020-09-28 10:58:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-28 10:58:35 +0200 |
| commit | 90dffc59ed45e5b95c2a40699cb91d285a206e0e (patch) | |
| tree | fa25c9c94bf4cd18a84f1a8c2bea327cd875af5f /src_testbed | |
| parent | 3080c6e7d2e7bad0ac55095ccc24b1ac8bd5449a (diff) | |
| parent | e7466e2f6923d24e987a34f8ebaf839346af8d4e (diff) | |
| download | rapier-90dffc59ed45e5b95c2a40699cb91d285a206e0e.tar.gz rapier-90dffc59ed45e5b95c2a40699cb91d285a206e0e.tar.bz2 rapier-90dffc59ed45e5b95c2a40699cb91d285a206e0e.zip | |
Merge pull request #20 from dimforge/benchbot
Split benchmarks from examples
Diffstat (limited to 'src_testbed')
| -rw-r--r-- | src_testbed/testbed.rs | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 450170e..92aea5a 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -230,7 +230,6 @@ pub struct Testbed { gravity: Vector<f32>, integration_parameters: IntegrationParameters, physics: PhysicsState, - window: Option<Box<Window>>, graphics: GraphicsManager, nsteps: usize, camera_locked: bool, // Used so that the camera can remain the same before and after we change backend or press the restart button. @@ -244,7 +243,7 @@ pub struct Testbed { // cursor_pos: Point2<f32>, events: PhysicsEvents, event_handler: ChannelEventCollector, - ui: TestbedUi, + ui: Option<TestbedUi>, state: TestbedState, #[cfg(all(feature = "dim2", feature = "other-backends"))] box2d: Option<Box2dWorld>, @@ -274,17 +273,8 @@ type CallbacksFluids = Vec< impl Testbed { pub fn new_empty() -> Testbed { let graphics = GraphicsManager::new(); - - #[cfg(feature = "dim3")] - let mut window = Box::new(Window::new("rapier: 3d demo")); - #[cfg(feature = "dim2")] - let mut window = Box::new(Window::new("rapier: 2d demo")); - window.set_background_color(0.85, 0.85, 0.85); - window.set_framerate_limit(Some(60)); - window.set_light(Light::StickToCamera); - let flags = TestbedStateFlags::SLEEP; - let ui = TestbedUi::new(&mut window); + let ui = None; #[allow(unused_mut)] let mut backend_names = vec!["rapier"]; @@ -352,7 +342,6 @@ impl Testbed { callbacks: Vec::new(), #[cfg(feature = "fluids")] callbacks_fluids: Vec::new(), - window: Some(window), graphics, nsteps: 1, camera_locked: false, @@ -754,7 +743,8 @@ impl Testbed { } // Write the result as a csv file. - let filename = format!("{}.csv", builder.0); + use inflector::Inflector; + let filename = format!("{}.csv", builder.0.to_camel_case()); let mut file = BufWriter::new(File::create(filename).unwrap()); write!(file, "{}", backend_names[0]).unwrap(); @@ -772,7 +762,14 @@ impl Testbed { } } } else { - let window = mem::replace(&mut self.window, None).unwrap(); + #[cfg(feature = "dim3")] + let mut window = Window::new("rapier: 3d demo"); + #[cfg(feature = "dim2")] + let mut window = Window::new("rapier: 2d demo"); + window.set_background_color(0.85, 0.85, 0.85); + window.set_framerate_limit(Some(60)); + window.set_light(Light::StickToCamera); + self.ui = Some(TestbedUi::new(&mut window)); window.render_loop(self); } } @@ -1206,8 +1203,9 @@ impl State for Testbed { } fn step(&mut self, window: &mut Window) { - self.ui - .update(window, &mut self.integration_parameters, &mut self.state); + if let Some(ui) = &mut self.ui { + ui.update(window, &mut self.integration_parameters, &mut self.state); + } // Handle UI actions. { |
