From 02231403df6241d08ea61600713fc1565bb22956 Mon Sep 17 00:00:00 2001 From: Tom Barrett Date: Mon, 27 Jul 2020 13:31:53 +0200 Subject: emscripten stuff --- src/main.rs | 76 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 31 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 51a6ed9..edf6f2e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,9 @@ use sdl2::event::Event; use sdl2::gfx::primitives::DrawRenderer; use sdl2::pixels::Color; +#[cfg(target_os = "emscripten")] +pub mod emscripten; + fn find_origin() -> (i16, i16) { let mut rng = rand::thread_rng(); (rng.gen_range(100, 400), rng.gen_range(100, 400)) @@ -71,8 +74,8 @@ fn main() { let mut rng = rand::thread_rng(); lines.shuffle(&mut rng); - let a = rng.gen_range(-5.0, 5.0); - let b = rng.gen_range(-5.0, 5.0); + let a = rng.gen_range(-7.0, 7.0); + let b = rng.gen_range(-7.0, 7.0); let mut pixels = Vec::new(); for i in (1000..200000).step_by(10) { @@ -85,36 +88,47 @@ fn main() { }); } - let mut i = 0; - let mut run = true; - while run { - for event in events.poll_iter() { - if let Event::Quit { .. } = event { - run = false - }; - } + let mut main_loop = || { + let mut i = 0; + let mut run = true; + while run { + for event in events.poll_iter() { + if let Event::Quit { .. } = event { + run = false + }; + } - if i < lines.len() { - let line = &lines[i]; - canvas - .line( - line.x1, - line.y1, - line.x2, - line.y2, - Color::RGB(255, 255, 255), - ) - .unwrap(); - } - if i < pixels.len() { - let pixel = &pixels[i]; - canvas - .pixel(pixel.x, pixel.y, Color::RGB(255, 255, 255)) - .unwrap(); + if i < lines.len() { + let line = &lines[i]; + canvas + .line( + line.x1, + line.y1, + line.x2, + line.y2, + Color::RGB(255, 255, 255), + ) + .unwrap(); + } + if i < pixels.len() { + let pixel = &pixels[i]; + canvas + .pixel(pixel.x, pixel.y, Color::RGB(255, 255, 255)) + .unwrap(); + } + + canvas.present(); + thread::sleep(Duration::from_millis(10)); + i += 1; } + }; - canvas.present(); - thread::sleep(Duration::from_millis(10)); - i += 1; - } + #[cfg(target_os = "emscripten")] + use emscripten::emscripten; + + #[cfg(target_os = "emscripten")] + emscripten::set_main_loop_callback(main_loop); + + #[cfg(not(target_os = "emscripten"))] + main_loop(); } -- cgit v1.2.3