Make theinstant dependency optional, behind a profiler cargo feature
This commit is contained in:
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
|
|||||||
serde-serialize = [ "nalgebra/serde-serialize", "parry2d-f64/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ]
|
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" ]
|
enhanced-determinism = [ "simba/libm_force", "parry2d-f64/enhanced-determinism", "indexmap" ]
|
||||||
debug-render = [ ]
|
debug-render = [ ]
|
||||||
|
profiler = [ "instant" ] # Enables the internal profiler.
|
||||||
|
|
||||||
# Feature used for debugging only.
|
# Feature used for debugging only.
|
||||||
debug-disable-legitimate-fe-exceptions = [ ]
|
debug-disable-legitimate-fe-exceptions = [ ]
|
||||||
@@ -45,7 +46,7 @@ required-features = [ "dim2", "f64" ]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
vec_map = { version = "0.8", optional = true }
|
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"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.31"
|
nalgebra = "0.31"
|
||||||
parry2d-f64 = "0.9"
|
parry2d-f64 = "0.9"
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
|
|||||||
serde-serialize = [ "nalgebra/serde-serialize", "parry2d/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ]
|
serde-serialize = [ "nalgebra/serde-serialize", "parry2d/serde-serialize", "serde", "bit-vec/serde", "arrayvec/serde" ]
|
||||||
enhanced-determinism = [ "simba/libm_force", "parry2d/enhanced-determinism", "indexmap" ]
|
enhanced-determinism = [ "simba/libm_force", "parry2d/enhanced-determinism", "indexmap" ]
|
||||||
debug-render = [ ]
|
debug-render = [ ]
|
||||||
|
profiler = [ "instant" ] # Enables the internal profiler.
|
||||||
|
|
||||||
# Feature used for debugging only.
|
# Feature used for debugging only.
|
||||||
debug-disable-legitimate-fe-exceptions = [ ]
|
debug-disable-legitimate-fe-exceptions = [ ]
|
||||||
@@ -45,7 +46,7 @@ required-features = [ "dim2", "f32" ]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
vec_map = { version = "0.8", optional = true }
|
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"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.31"
|
nalgebra = "0.31"
|
||||||
parry2d = "0.9"
|
parry2d = "0.9"
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
|
|||||||
serde-serialize = [ "nalgebra/serde-serialize", "parry3d-f64/serde-serialize", "serde", "bit-vec/serde" ]
|
serde-serialize = [ "nalgebra/serde-serialize", "parry3d-f64/serde-serialize", "serde", "bit-vec/serde" ]
|
||||||
enhanced-determinism = [ "simba/libm_force", "parry3d-f64/enhanced-determinism" ]
|
enhanced-determinism = [ "simba/libm_force", "parry3d-f64/enhanced-determinism" ]
|
||||||
debug-render = []
|
debug-render = []
|
||||||
|
profiler = [ "instant" ] # Enables the internal profiler.
|
||||||
|
|
||||||
# Feature used for debugging only.
|
# Feature used for debugging only.
|
||||||
debug-disable-legitimate-fe-exceptions = [ ]
|
debug-disable-legitimate-fe-exceptions = [ ]
|
||||||
@@ -45,7 +46,7 @@ required-features = [ "dim3", "f64" ]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
vec_map = { version = "0.8", optional = true }
|
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"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.31"
|
nalgebra = "0.31"
|
||||||
parry3d-f64 = "0.9"
|
parry3d-f64 = "0.9"
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ wasm-bindgen = [ "instant/wasm-bindgen" ]
|
|||||||
serde-serialize = [ "nalgebra/serde-serialize", "parry3d/serde-serialize", "serde", "bit-vec/serde" ]
|
serde-serialize = [ "nalgebra/serde-serialize", "parry3d/serde-serialize", "serde", "bit-vec/serde" ]
|
||||||
enhanced-determinism = [ "simba/libm_force", "parry3d/enhanced-determinism" ]
|
enhanced-determinism = [ "simba/libm_force", "parry3d/enhanced-determinism" ]
|
||||||
debug-render = [ ]
|
debug-render = [ ]
|
||||||
|
profiler = [ "instant" ] # Enables the internal profiler.
|
||||||
|
|
||||||
# Feature used for debugging only.
|
# Feature used for debugging only.
|
||||||
debug-disable-legitimate-fe-exceptions = [ ]
|
debug-disable-legitimate-fe-exceptions = [ ]
|
||||||
@@ -45,7 +46,7 @@ required-features = [ "dim3", "f32" ]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
vec_map = { version = "0.8", optional = true }
|
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"
|
num-traits = "0.2"
|
||||||
nalgebra = "0.31"
|
nalgebra = "0.31"
|
||||||
parry3d = "0.9"
|
parry3d = "0.9"
|
||||||
|
|||||||
@@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
|
|||||||
package = "rapier2d-f64"
|
package = "rapier2d-f64"
|
||||||
path = "../rapier2d-f64"
|
path = "../rapier2d-f64"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
features = [ "serde-serialize", "debug-render" ]
|
features = [ "serde-serialize", "debug-render", "profiler" ]
|
||||||
|
|||||||
@@ -55,4 +55,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
|
|||||||
package = "rapier2d"
|
package = "rapier2d"
|
||||||
path = "../rapier2d"
|
path = "../rapier2d"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
features = [ "serde-serialize", "debug-render" ]
|
features = [ "serde-serialize", "debug-render", "profiler" ]
|
||||||
|
|||||||
@@ -53,4 +53,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
|
|||||||
package = "rapier3d-f64"
|
package = "rapier3d-f64"
|
||||||
path = "../rapier3d-f64"
|
path = "../rapier3d-f64"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
features = [ "serde-serialize", "debug-render" ]
|
features = [ "serde-serialize", "debug-render", "profiler" ]
|
||||||
@@ -57,4 +57,4 @@ bevy = {version = "0.7", default-features = false, features = ["bevy_winit", "re
|
|||||||
package = "rapier3d"
|
package = "rapier3d"
|
||||||
path = "../rapier3d"
|
path = "../rapier3d"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
features = [ "serde-serialize", "debug-render" ]
|
features = [ "serde-serialize", "debug-render", "profiler" ]
|
||||||
@@ -4,6 +4,7 @@ use std::fmt::{Display, Error, Formatter};
|
|||||||
#[derive(Copy, Clone, Debug, Default)]
|
#[derive(Copy, Clone, Debug, Default)]
|
||||||
pub struct Timer {
|
pub struct Timer {
|
||||||
time: f64,
|
time: f64,
|
||||||
|
#[allow(dead_code)] // The field isn’t used if the `profiler` feature isn’t enabled.
|
||||||
start: Option<f64>,
|
start: Option<f64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,21 +24,30 @@ impl Timer {
|
|||||||
|
|
||||||
/// Start the timer.
|
/// Start the timer.
|
||||||
pub fn start(&mut self) {
|
pub fn start(&mut self) {
|
||||||
self.time = 0.0;
|
#[cfg(feature = "profiler")]
|
||||||
self.start = Some(instant::now());
|
{
|
||||||
|
self.time = 0.0;
|
||||||
|
self.start = Some(instant::now());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Pause the timer.
|
/// Pause the timer.
|
||||||
pub fn pause(&mut self) {
|
pub fn pause(&mut self) {
|
||||||
if let Some(start) = self.start {
|
#[cfg(feature = "profiler")]
|
||||||
self.time += instant::now() - start;
|
{
|
||||||
|
if let Some(start) = self.start {
|
||||||
|
self.time += instant::now() - start;
|
||||||
|
}
|
||||||
|
self.start = None;
|
||||||
}
|
}
|
||||||
self.start = None;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Resume the timer.
|
/// Resume the timer.
|
||||||
pub fn resume(&mut self) {
|
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.
|
/// The measured time between the last `.start()` and `.pause()` calls.
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ impl PhysicsPipeline {
|
|||||||
/// Initializes a new physics pipeline.
|
/// Initializes a new physics pipeline.
|
||||||
pub fn new() -> PhysicsPipeline {
|
pub fn new() -> PhysicsPipeline {
|
||||||
PhysicsPipeline {
|
PhysicsPipeline {
|
||||||
counters: Counters::new(false),
|
counters: Counters::new(true),
|
||||||
solvers: Vec::new(),
|
solvers: Vec::new(),
|
||||||
manifold_indices: Vec::new(),
|
manifold_indices: Vec::new(),
|
||||||
joint_constraint_indices: Vec::new(),
|
joint_constraint_indices: Vec::new(),
|
||||||
|
|||||||
Reference in New Issue
Block a user