Skip to content

Commit 0ac2851

Browse files
authored
Fix benchmarks (#125)
1 parent 63ea415 commit 0ac2851

File tree

3 files changed

+49
-8
lines changed

3 files changed

+49
-8
lines changed

benchmarks/benches/lens.rs

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#[macro_use]
22
extern crate criterion;
33

4-
use bevy::prelude::*;
5-
use bevy_tweening::lens::*;
4+
use bevy::{ecs::component::Tick, prelude::*};
5+
use bevy_tweening::{lens::*, ComponentTarget};
66
use criterion::{black_box, Criterion};
77

88
fn text_color_lens(c: &mut Criterion) {
@@ -20,8 +20,17 @@ fn text_color_lens(c: &mut Criterion) {
2020
},
2121
)
2222
.with_justify(JustifyText::Center);
23+
let mut added = Tick::new(0);
24+
let mut last_changed = Tick::new(0);
25+
let mut target = ComponentTarget::new(Mut::new(
26+
&mut text,
27+
&mut added,
28+
&mut last_changed,
29+
Tick::new(0),
30+
Tick::new(0),
31+
));
2332
c.bench_function("TextColorLens", |b| {
24-
b.iter(|| lens.lerp(&mut text, black_box(0.3)))
33+
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
2534
});
2635
}
2736

@@ -31,8 +40,17 @@ fn transform_position_lens(c: &mut Criterion) {
3140
end: Vec3::ONE,
3241
};
3342
let mut transform = Transform::IDENTITY;
43+
let mut added = Tick::new(0);
44+
let mut last_changed = Tick::new(0);
45+
let mut target = ComponentTarget::new(Mut::new(
46+
&mut transform,
47+
&mut added,
48+
&mut last_changed,
49+
Tick::new(0),
50+
Tick::new(0),
51+
));
3452
c.bench_function("TransformPositionLens", |b| {
35-
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
53+
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
3654
});
3755
}
3856

@@ -42,8 +60,17 @@ fn transform_rotation_lens(c: &mut Criterion) {
4260
end: Quat::from_rotation_x(72.0_f32.to_radians()),
4361
};
4462
let mut transform = Transform::IDENTITY;
63+
let mut added = Tick::new(0);
64+
let mut last_changed = Tick::new(0);
65+
let mut target = ComponentTarget::new(Mut::new(
66+
&mut transform,
67+
&mut added,
68+
&mut last_changed,
69+
Tick::new(0),
70+
Tick::new(0),
71+
));
4572
c.bench_function("TransformRotationLens", |b| {
46-
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
73+
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
4774
});
4875
}
4976

@@ -53,8 +80,17 @@ fn transform_scale_lens(c: &mut Criterion) {
5380
end: Vec3::new(1.5, 2.0, 3.0),
5481
};
5582
let mut transform = Transform::IDENTITY;
83+
let mut added = Tick::new(0);
84+
let mut last_changed = Tick::new(0);
85+
let mut target = ComponentTarget::new(Mut::new(
86+
&mut transform,
87+
&mut added,
88+
&mut last_changed,
89+
Tick::new(0),
90+
Tick::new(0),
91+
));
5692
c.bench_function("TransformScaleLens", |b| {
57-
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
93+
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
5894
});
5995
}
6096

src/lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,11 @@ pub use lens::Lens;
214214
#[cfg(feature = "bevy_asset")]
215215
pub use plugin::asset_animator_system;
216216
pub use plugin::{component_animator_system, AnimationSystem, TweeningPlugin};
217+
#[cfg(feature = "bevy_asset")]
218+
pub use tweenable::AssetTarget;
217219
pub use tweenable::{
218-
BoxedTweenable, Delay, Sequence, Targetable, TotalDuration, Tracks, Tween, TweenCompleted,
219-
TweenState, Tweenable,
220+
BoxedTweenable, ComponentTarget, Delay, Sequence, Targetable, TotalDuration, Tracks, Tween,
221+
TweenCompleted, TweenState, Tweenable,
220222
};
221223

222224
pub mod lens;

src/tweenable.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ impl<'a, T: 'a> DerefMut for dyn Targetable<T> + 'a {
224224
}
225225
}
226226

227+
/// Implementation of [`Targetable`] for a [`Component`].
227228
pub struct ComponentTarget<'a, T: Component> {
228229
target: Mut<'a, T>,
229230
}
@@ -251,9 +252,11 @@ impl<'a, T: Component> Targetable<T> for ComponentTarget<'a, T> {
251252
}
252253
}
253254

255+
/// Implementation of [`Targetable`] for an [`Asset`].
254256
#[cfg(feature = "bevy_asset")]
255257
pub struct AssetTarget<'a, T: Asset> {
256258
assets: Mut<'a, Assets<T>>,
259+
/// Handle to the asset to mutate.
257260
pub handle: Handle<T>,
258261
}
259262

0 commit comments

Comments
 (0)