From fdc957cae7f5efca792b40df7ff90ec4f512269b Mon Sep 17 00:00:00 2001 From: brian cully Date: Sat, 27 Dec 2025 16:53:11 -0500 Subject: get wasm go button working --- src/state.rs | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) (limited to 'src/state.rs') diff --git a/src/state.rs b/src/state.rs index 4adb952..f5435f5 100644 --- a/src/state.rs +++ b/src/state.rs @@ -10,49 +10,27 @@ use crate::point::Point; pub const TAU: f64 = PI * 2.0; pub const MAX_SPEED: f64 = 0.01; -const NUM_POINTS: usize = 40; +const NUM_POINTS: usize = 10; const VELVEC_SCALE: f64 = 3.0; -fn window() -> web_sys::Window { - web_sys::window().expect("no window") -} - -fn document() -> web_sys::Document { - window().document().expect("no document") -} - -fn canvas() -> Result { - let x = document() - .query_selector("canvas")? - .expect("canvas element"); - Ok(x.dyn_into::()?) -} - #[derive(Debug)] pub struct State { canvas: HtmlCanvasElement, ctx: CanvasRenderingContext2d, fps: HtmlElement, points: Vec, - pub paused: bool, last_time: Option, inter_count: u16, } impl State { - pub fn new() -> Result { + pub fn new(canvas: HtmlCanvasElement, fps: HtmlElement) -> Result { debug!("State::new()"); - let canvas = canvas()?; let ctx: CanvasRenderingContext2d = canvas .get_context("2d")? .expect("2d context on canvas") .dyn_into()?; ctx.scale(canvas.width().into(), canvas.height().into())?; - let fps = document() - .query_selector("#fps")? - .expect("fps counter exists") - .dyn_into::() - .expect("is html element"); let points = (0..NUM_POINTS) .map(|_| Point::new(fastrand::f64(), fastrand::f64())) @@ -63,8 +41,7 @@ impl State { ctx, fps, points, - paused: false, - last_time: document().timeline().current_time(), + last_time: None, inter_count: 1, }) } @@ -75,12 +52,12 @@ impl State { let ic: f64 = self.inter_count.into(); let val: f64 = (1_000.0 * ic / (t - last_time)).trunc(); self.fps.set_text_content(Some(val.to_string().as_str())); - self.last_time = Some(t); self.inter_count = 1; } else { self.inter_count += 1; } } + self.last_time = Some(t); self.ctx.clear_rect( 0.0, -- cgit v1.3