aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Crozet <sebcrozet@dimforge.com>2022-05-31 11:49:36 +0200
committerSébastien Crozet <sebcrozet@dimforge.com>2022-05-31 11:49:36 +0200
commit10ca3474e67d53d3d1ec306dd2973d95043ba666 (patch)
tree73258de799a6904c16d5f027dcd8d3c163387298
parentfb1bfc762c89cd8c5bd745a82998c1662a1bf196 (diff)
downloadrapier-10ca3474e67d53d3d1ec306dd2973d95043ba666.tar.gz
rapier-10ca3474e67d53d3d1ec306dd2973d95043ba666.tar.bz2
rapier-10ca3474e67d53d3d1ec306dd2973d95043ba666.zip
Make the`instant` dependency optional, behind a `profiler` cargo feature
-rw-r--r--crates/rapier2d-f64/Cargo.toml3
-rw-r--r--crates/rapier2d/Cargo.toml3
-rw-r--r--crates/rapier3d-f64/Cargo.toml3
-rw-r--r--crates/rapier3d/Cargo.toml3
-rw-r--r--crates/rapier_testbed2d-f64/Cargo.toml2
-rw-r--r--crates/rapier_testbed2d/Cargo.toml2
-rw-r--r--crates/rapier_testbed3d-f64/Cargo.toml2
-rw-r--r--crates/rapier_testbed3d/Cargo.toml2
-rw-r--r--src/counters/timer.rs22
-rw-r--r--src/pipeline/physics_pipeline.rs2
10 files changed, 29 insertions, 15 deletions
diff --git a/crates/rapier2d-f64/Cargo.toml b/crates/rapier2d-f64/Cargo.toml
index 4a7d502..72d05cc 100644
--- a/crates/rapier2d-f64/Cargo.toml
+++ b/crates/rapier2d-f64/Cargo.toml
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
serde-serialize = [ "nalgebra/serde-serialize", "parry2d-f64/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ]
enhanced-determinism = [ "simba/libm_force", "parry2d-f64/enhanced-determinism", "indexmap" ]
debug-render = [ ]
+profiler = [ "instant" ] # Enables the internal profiler.
# Feature used for debugging only.
debug-disable-legitimate-fe-exceptions = [ ]
@@ -45,7 +46,7 @@ required-features = [ "dim2", "f64" ]
[dependencies]
vec_map = { version = "0.8", optional = true }
-instant = { version = "0.1", features = [ "now" ]}
+instant = { version = "0.1", features = [ "now" ], optional = true }
num-traits = "0.2"
nalgebra = "0.31"
parry2d-f64 = "0.9"
diff --git a/crates/rapier2d/Cargo.toml b/crates/rapier2d/Cargo.toml
index d9eb7e9..df32e54 100644
--- a/crates/rapier2d/Cargo.toml
+++ b/crates/rapier2d/Cargo.toml
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
serde-serialize = [ "nalgebra/serde-serialize", "parry2d/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ]
enhanced-determinism = [ "simba/libm_force", "parry2d/enhanced-determinism", "indexmap" ]
debug-render = [ ]
+profiler = [ "instant" ] # Enables the internal profiler.
# Feature used for debugging only.
debug-disable-legitimate-fe-exceptions = [ ]
@@ -45,7 +46,7 @@ required-features = [ "dim2", "f32" ]
[dependencies]
vec_map = { version = "0.8", optional = true }
-instant = { version = "0.1", features = [ "now" ]}
+instant = { version = "0.1", features = [ "now" ], optional = true }
num-traits = "0.2"
nalgebra = "0.31"
parry2d = "0.9"
diff --git a/crates/rapier3d-f64/Cargo.toml b/crates/rapier3d-f64/Cargo.toml
index 89e0b8b..328682b 100644
--- a/crates/rapier3d-f64/Cargo.toml
+++ b/crates/rapier3d-f64/Cargo.toml
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
serde-serialize = [ "nalgebra/serde-serialize", "parry3d-f64/serde-serialize", "serde", "bit-vec/serde" ]
enhanced-determinism = [ "simba/libm_force", "parry3d-f64/enhanced-determinism" ]
debug-render = []
+profiler = [ "instant" ] # Enables the internal profiler.
# Feature used for debugging only.
debug-disable-legitimate-fe-exceptions = [ ]
@@ -45,7 +46,7 @@ required-features = [ "dim3", "f64" ]
[dependencies]
vec_map = { version = "0.8", optional = true }
-instant = { version = "0.1", features = [ "now" ]}
+instant = { version = "0.1", features = [ "now" ], optional = true }
num-traits = "0.2"
nalgebra = "0.31"
parry3d-f64 = "0.9"
diff --git a/crates/rapier3d/Cargo.toml b/crates/rapier3d/Cargo.toml
index b6364ea..e44f372 100644
--- a/crates/rapier3d/Cargo.toml
+++ b/crates/rapier3d/Cargo.toml
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
serde-serialize = [ "nalgebra/serde-serialize", "parry3d/serde-serialize", "serde", "bit-vec/serde" ]
enhanced-determinism = [ "simba/libm_force", "parry3d/enhanced-determinism" ]
debug-render = [ ]
+profiler = [ "instant" ] # Enables the internal profiler.
# Feature used for debugging only.
debug-disable-legitimate-fe-exceptions = [ ]
@@ -45,7 +46,7 @@ required-features = [ "dim3", "f32" ]
[dependencies]
vec_map = { version = "0.8", optional = true }
-instant = { version = "0.1", features = [ "now" ]}
+instant = { version = "0.1", features = [ "now" ], optional = true }
num-traits = "0.2"
nalgebra = "0.31"
parry3d = "0.9"
diff --git a/crates/rapier_testbed2d-f64/Cargo.toml b/crates/rapier_testbed2d-f64/Cargo.toml
index 882fced..236a1b8 100644
--- a/crates/rapier_testbed2d-f64/Cargo.toml
+++ b/crates/rapier_testbed2d-f64/Cargo.toml
@@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
package = "rapier2d-f64"
path = "../rapier2d-f64"
version = "0.12.0"
-features = [ "serde-serialize", "debug-render" ]
+features = [ "serde-serialize", "debug-render", "profiler" ]
diff --git a/crates/rapier_testbed2d/Cargo.toml b/crates/rapier_testbed2d/Cargo.toml
index 6c36e69..d4d9b71 100644
--- a/crates/rapier_testbed2d/Cargo.toml
+++ b/crates/rapier_testbed2d/Cargo.toml
@@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
package = "rapier2d"
path = "../rapier2d"
version = "0.12.0"
-features = [ "serde-serialize", "debug-render" ]
+features = [ "serde-serialize", "debug-render", "profiler" ]
diff --git a/crates/rapier_testbed3d-f64/Cargo.toml b/crates/rapier_testbed3d-f64/Cargo.toml
index 9d8d6f9..7e5b2f1 100644
--- a/crates/rapier_testbed3d-f64/Cargo.toml
+++ b/crates/rapier_testbed3d-f64/Cargo.toml
@@ -53,4 +53,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
package = "rapier3d-f64"
path = "../rapier3d-f64"
version = "0.12.0"
-features = [ "serde-serialize", "debug-render" ] \ No newline at end of file
+features = [ "serde-serialize", "debug-render", "profiler" ] \ No newline at end of file
diff --git a/crates/rapier_testbed3d/Cargo.toml b/crates/rapier_testbed3d/Cargo.toml
index e24d509..31a78d0 100644
--- a/crates/rapier_testbed3d/Cargo.toml
+++ b/crates/rapier_testbed3d/Cargo.toml
@@ -57,4 +57,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
package = "rapier3d"
path = "../rapier3d"
version = "0.12.0"
-features = [ "serde-serialize", "debug-render" ] \ No newline at end of file
+features = [ "serde-serialize", "debug-render", "profiler" ] \ No newline at end of file
diff --git a/src/counters/timer.rs b/src/counters/timer.rs
index fd25063..bc0397d 100644
--- a/src/counters/timer.rs
+++ b/src/counters/timer.rs
@@ -4,6 +4,7 @@ use std::fmt::{Display, Error, Formatter};
#[derive(Copy, Clone, Debug, Default)]
pub struct Timer {
time: f64,
+ #[allow(dead_code)] // The field isn’t used if the `profiler` feature isn’t enabled.
start: Option<f64>,
}
@@ -23,21 +24,30 @@ impl Timer {
/// Start the timer.
pub fn start(&mut self) {
- self.time = 0.0;
- self.start = Some(instant::now());
+ #[cfg(feature = "profiler")]
+ {
+ self.time = 0.0;
+ self.start = Some(instant::now());
+ }
}
/// Pause the timer.
pub fn pause(&mut self) {
- if let Some(start) = self.start {
- self.time += instant::now() - start;
+ #[cfg(feature = "profiler")]
+ {
+ if let Some(start) = self.start {
+ self.time += instant::now() - start;
+ }
+ self.start = None;
}
- self.start = None;
}
/// Resume the timer.
pub fn resume(&mut self) {
- self.start = Some(instant::now());
+ #[cfg(feature = "profiler")]
+ {
+ self.start = Some(instant::now());
+ }
}
/// The measured time between the last `.start()` and `.pause()` calls.
diff --git a/src/pipeline/physics_pipeline.rs b/src/pipeline/physics_pipeline.rs
index 012f40f..19749be 100644
--- a/src/pipeline/physics_pipeline.rs
+++ b/src/pipeline/physics_pipeline.rs
@@ -54,7 +54,7 @@ impl PhysicsPipeline {
/// Initializes a new physics pipeline.
pub fn new() -> PhysicsPipeline {
PhysicsPipeline {
- counters: Counters::new(false),
+ counters: Counters::new(true),
solvers: Vec::new(),
manifold_indices: Vec::new(),
joint_constraint_indices: Vec::new(),