From 3676821fb888c55ce580d5a9a4159627c7c8eb62 Mon Sep 17 00:00:00 2001 From: Andre Henriques Date: Sun, 19 Mar 2023 09:50:55 +0000 Subject: [PATCH] prevent to fast updates --- src/render.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/render.rs b/src/render.rs index f2afba2..6aa2369 100644 --- a/src/render.rs +++ b/src/render.rs @@ -43,6 +43,7 @@ pub struct Render { num_leds: u32, last_render: u128, + last_update: u128, ws: Option, last: Vec>, @@ -55,6 +56,7 @@ pub struct Render { struct GetRender { data: Vec>, delta: u128, + time: u128, } fn try_into_usize (input: Option) -> Option { @@ -73,6 +75,7 @@ impl Render { conn, num_leds: 0, last_render: 0, + last_update: 0, ws: None, animations: vec![], local_led_config: vec![], @@ -295,7 +298,8 @@ impl Render { return GetRender { data, - delta + delta, + time }; } @@ -307,6 +311,7 @@ impl Render { let data = get_render.data; let delta = get_render.delta; + let time = get_render.time; if self.last.is_empty() || !self.last.clone().iter().eq(data.clone().iter()) { @@ -314,6 +319,12 @@ impl Render { self.last = data.clone(); } + if self.last_update - time < 500 { + println!("To Fast! Skiping"); + } + + self.last_update = time; + let lerp_data: Vec> = data.iter().zip(&self.last).map(|(d, l)| l.lerp(d, delta as f64)).collect();