Skip to content

Commit

Permalink
Fix benchmarks (#125)
Browse files Browse the repository at this point in the history
  • Loading branch information
djeedai authored Apr 27, 2024
1 parent 63ea415 commit 0ac2851
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 8 deletions.
48 changes: 42 additions & 6 deletions benchmarks/benches/lens.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#[macro_use]
extern crate criterion;

use bevy::prelude::*;
use bevy_tweening::lens::*;
use bevy::{ecs::component::Tick, prelude::*};
use bevy_tweening::{lens::*, ComponentTarget};
use criterion::{black_box, Criterion};

fn text_color_lens(c: &mut Criterion) {
Expand All @@ -20,8 +20,17 @@ fn text_color_lens(c: &mut Criterion) {
},
)
.with_justify(JustifyText::Center);
let mut added = Tick::new(0);
let mut last_changed = Tick::new(0);
let mut target = ComponentTarget::new(Mut::new(
&mut text,
&mut added,
&mut last_changed,
Tick::new(0),
Tick::new(0),
));
c.bench_function("TextColorLens", |b| {
b.iter(|| lens.lerp(&mut text, black_box(0.3)))
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
});
}

Expand All @@ -31,8 +40,17 @@ fn transform_position_lens(c: &mut Criterion) {
end: Vec3::ONE,
};
let mut transform = Transform::IDENTITY;
let mut added = Tick::new(0);
let mut last_changed = Tick::new(0);
let mut target = ComponentTarget::new(Mut::new(
&mut transform,
&mut added,
&mut last_changed,
Tick::new(0),
Tick::new(0),
));
c.bench_function("TransformPositionLens", |b| {
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
});
}

Expand All @@ -42,8 +60,17 @@ fn transform_rotation_lens(c: &mut Criterion) {
end: Quat::from_rotation_x(72.0_f32.to_radians()),
};
let mut transform = Transform::IDENTITY;
let mut added = Tick::new(0);
let mut last_changed = Tick::new(0);
let mut target = ComponentTarget::new(Mut::new(
&mut transform,
&mut added,
&mut last_changed,
Tick::new(0),
Tick::new(0),
));
c.bench_function("TransformRotationLens", |b| {
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
});
}

Expand All @@ -53,8 +80,17 @@ fn transform_scale_lens(c: &mut Criterion) {
end: Vec3::new(1.5, 2.0, 3.0),
};
let mut transform = Transform::IDENTITY;
let mut added = Tick::new(0);
let mut last_changed = Tick::new(0);
let mut target = ComponentTarget::new(Mut::new(
&mut transform,
&mut added,
&mut last_changed,
Tick::new(0),
Tick::new(0),
));
c.bench_function("TransformScaleLens", |b| {
b.iter(|| lens.lerp(&mut transform, black_box(0.3)))
b.iter(|| lens.lerp(&mut target, black_box(0.3)))
});
}

Expand Down
6 changes: 4 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,9 +214,11 @@ pub use lens::Lens;
#[cfg(feature = "bevy_asset")]
pub use plugin::asset_animator_system;
pub use plugin::{component_animator_system, AnimationSystem, TweeningPlugin};
#[cfg(feature = "bevy_asset")]
pub use tweenable::AssetTarget;
pub use tweenable::{
BoxedTweenable, Delay, Sequence, Targetable, TotalDuration, Tracks, Tween, TweenCompleted,
TweenState, Tweenable,
BoxedTweenable, ComponentTarget, Delay, Sequence, Targetable, TotalDuration, Tracks, Tween,
TweenCompleted, TweenState, Tweenable,
};

pub mod lens;
Expand Down
3 changes: 3 additions & 0 deletions src/tweenable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ impl<'a, T: 'a> DerefMut for dyn Targetable<T> + 'a {
}
}

/// Implementation of [`Targetable`] for a [`Component`].
pub struct ComponentTarget<'a, T: Component> {
target: Mut<'a, T>,
}
Expand Down Expand Up @@ -251,9 +252,11 @@ impl<'a, T: Component> Targetable<T> for ComponentTarget<'a, T> {
}
}

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

Expand Down

0 comments on commit 0ac2851

Please sign in to comment.