aboutsummaryrefslogtreecommitdiffstats
path: root/src/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/state.rs')
-rw-r--r--src/state.rs31
1 files changed, 4 insertions, 27 deletions
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<web_sys::HtmlCanvasElement, JsValue> {
- let x = document()
- .query_selector("canvas")?
- .expect("canvas element");
- Ok(x.dyn_into::<web_sys::HtmlCanvasElement>()?)
-}
-
#[derive(Debug)]
pub struct State {
canvas: HtmlCanvasElement,
ctx: CanvasRenderingContext2d,
fps: HtmlElement,
points: Vec<Point>,
- pub paused: bool,
last_time: Option<f64>,
inter_count: u16,
}
impl State {
- pub fn new() -> Result<Self, JsValue> {
+ pub fn new(canvas: HtmlCanvasElement, fps: HtmlElement) -> Result<Self, JsValue> {
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::<HtmlElement>()
- .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,