sliders now share a vertex buf

This commit is contained in:
MaxOhn
2021-11-06 02:27:51 +01:00
parent ff723a7231
commit 90f809b72b
4 changed files with 28 additions and 18 deletions
+11 -7
View File
@@ -68,6 +68,7 @@ pub fn stars(
}
let mut slider_state = SliderState::new(map);
let mut curve_buf = Vec::new();
let mut ticks_buf = Vec::new();
let mut hit_objects = map
@@ -83,6 +84,7 @@ pub fn stars(
&mut ticks_buf,
&mut diff_attributes,
&mut slider_state,
&mut curve_buf,
)
})
.map(|mut h| {
@@ -239,6 +241,7 @@ pub fn strains(map: &Beatmap, mods: impl Mods) -> Strains {
let mut slider_state = SliderState::new(map);
let mut ticks_buf = Vec::new();
let mut curve_buf = Vec::new();
let mut hit_objects = map.hit_objects.iter().filter_map(|h| {
OsuObject::new(
@@ -249,6 +252,7 @@ pub fn strains(map: &Beatmap, mods: impl Mods) -> Strains {
&mut ticks_buf,
&mut diff_attributes,
&mut slider_state,
&mut curve_buf,
)
});
@@ -367,17 +371,17 @@ fn custom_osu() {
let start = Instant::now();
let result = crate::OsuPP::new(&map).mods(0).calculate();
let iters = 500;
let iters = 100;
let accum = start.elapsed();
// * Tiny benchmark for pp calculation
// let mut accum = accum;
let mut accum = accum;
// for _ in 0..iters {
// let start = Instant::now();
// let _result = crate::OsuPP::new(&map).mods(0).calculate();
// accum += start.elapsed();
// }
for _ in 0..iters {
let start = Instant::now();
let _result = crate::OsuPP::new(&map).mods(0).calculate();
accum += start.elapsed();
}
println!("{:#?}", result);
println!("Calculation average: {:?}", accum / iters);
+2 -1
View File
@@ -35,6 +35,7 @@ impl OsuObject {
ticks: &mut Vec<f32>,
attributes: &mut DifficultyAttributes,
slider_state: &mut SliderState,
slider_buf: &mut Vec<Pos2>,
) -> Option<Self> {
attributes.max_combo += 1; // hitcircle, slider head, or spinner
@@ -67,7 +68,7 @@ impl OsuObject {
}
// Build the curve w.r.t. the curve points
let curve = Curve::new(curve_points, *pixel_len);
let curve = Curve::new(curve_points, *pixel_len, slider_buf);
let velocity =
(BASE_SCORING_DISTANCE * map.slider_mult * slider_state.slider_velocity)