summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs76
1 files changed, 45 insertions, 31 deletions
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();
}