Create mandelwow_lib.
[mandelwow.git] / main.rs
diff --git a/main.rs b/main.rs
index e0d2ad2df089ae64fe881c29b3341118d6c18d79..c58cf5510201cae4949df756f3ed4ac4e6f2f869 100644 (file)
--- a/main.rs
+++ b/main.rs
@@ -1,25 +1,20 @@
+extern crate mandelwow_lib;
+
 extern crate cgmath;
-#[macro_use(uniform,program,implement_vertex)]
+#[macro_use(uniform)]
 extern crate glium;
 extern crate glutin;
 extern crate image;
-extern crate libxm;
-extern crate sdl2;
 
-//use cgmath::prelude::*;
 use cgmath::{Euler, Matrix4, Rad, Vector3};
-use cube::Cube;
 use glium::{DisplayBuild, Surface};
 use glutin::ElementState::Pressed;
 use glutin::Event::KeyboardInput;
 use glutin::VirtualKeyCode;
-use std::os::raw::{c_int, c_void};
+use mandelwow_lib::*;
 
-mod bounding_box;
-mod cube;
-mod mandelwow;
-mod sound;
-mod support;
+#[cfg(target_os = "emscripten")]
+use std::os::raw::{c_int, c_void};
 
 fn screenshot(display : &glium::Display) {
     let image: glium::texture::RawImage2d<u8> = display.read_front_buffer();
@@ -103,6 +98,7 @@ fn main() {
         zmin: -1.1,
         zmax:  1.1,
     };
+    let mandelwow_bbox = bounding_box::BoundingBox::new(&display, &bounds, &bounding_box_program);
 
     set_main_loop_callback(|| {
         camera.update();
@@ -123,8 +119,8 @@ fn main() {
         let mut frame = display.draw();
         frame.clear_color_and_depth((0.0, 0.0, 0.0, 1.0), 1.0);
 
-        let rotation = cgmath::Matrix4::from(
-            Euler { x: Rad(t.sin() / 3.), y: Rad(t.sin() / 2.), z: Rad(t)});
+        let rotation = Matrix4::from(
+            Euler { x: Rad(t.sin() / 3.), y: Rad(t.sin() / 2.), z: Rad(t / 1.5)});
         let z_trans = -2.0;  // Send the model back a little bit so it fits the screen.
         let model2 =
             Matrix4::from_translation(Vector3::unit_z() * z_trans) * rotation;
@@ -138,7 +134,7 @@ fn main() {
                 view:  camera.get_view(),
                 perspective: camera.get_perspective(),
             };
-            bounding_box::draw(&display, &mut frame, &bounding_box_program, &uniforms, &bounds);
+            mandelwow_bbox.draw(&mut frame, &uniforms);
         }
 
         mandelwow::draw(&display, &mut frame, &mandelwow_program, model, &camera, &bounds, wow);