X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=main.rs;h=bd75e428df4b225cef9576fe13f51043f2ab7a59;hb=8f5b525e37e82d260601e7052a49a6515b6100d8;hp=9d89c2c4acc6108c7fd64b469d4eba4c7b4d72d5;hpb=7babb28c6782e473dd4302c930880cb147f0ceb8;p=mandelwow.git diff --git a/main.rs b/main.rs index 9d89c2c..bd75e42 100644 --- a/main.rs +++ b/main.rs @@ -5,9 +5,6 @@ extern crate cgmath; extern crate glium; extern crate glutin; -#[cfg(feature = "rust-rocket")] -extern crate rust_rocket; - use cgmath::{Euler, Matrix4, Rad, SquareMatrix, Vector3, Vector4, Zero}; use cgmath::conv::array4x4; use glium::{DisplayBuild, Surface}; @@ -68,12 +65,6 @@ pub fn set_main_loop_callback(callback : F) where F : FnMut() -> support::Act fn main() { let mut soundplayer = sound::start(); - let mut rocket = rust_rocket::Rocket::new().unwrap(); - rocket.get_track_mut("test"); - rocket.get_track_mut("test2"); - rocket.get_track_mut("a:test2"); - let mut current_row = 0; - let display = glutin::WindowBuilder::new() .with_dimensions(1280, 720) .with_gl_profile(glutin::GlProfile::Core) @@ -88,7 +79,7 @@ fn main() { gl_info(&display); - let text = text::Text::new(&display); + let mut text = text::Text::new(&display, 'A'); let mandelwow_program = mandelwow::program(&display); let bounding_box_program = bounding_box::solid_fill_program(&display); let shaded_program = shaded_cube::shaded_program(&display); @@ -110,15 +101,16 @@ fn main() { let mandelwow_bbox = bounding_box::BoundingBox::new(&display, &bounds, &bounding_box_program); let shaded_cube = ShadedCube::new(&display, &shaded_program); - const SEA_XSIZE: usize = 24; - const SEA_ZSIZE: usize = 20; - let sea_xmin = -14.0f32; - let sea_xmax = 14.0f32; + const SEA_XSIZE: usize = 40; + const SEA_ZSIZE: usize = 25; + let sea_xmin = -20.0f32; + let sea_xmax = 20.0f32; let sea_y = -2.5; let sea_zmin = -2.0f32; - let sea_zmax = -26.0f32; + let sea_zmax = -27.0f32; let sea_xstep = (sea_xmax - sea_xmin) / (SEA_XSIZE as f32); let sea_zstep = (sea_zmax - sea_zmin) / (SEA_ZSIZE as f32); + println!("xstep={} ystep={:?}", sea_xstep, sea_zstep); let mut sea = [[Vector3::zero(); SEA_ZSIZE]; SEA_XSIZE]; for x in 0..SEA_XSIZE { @@ -177,24 +169,28 @@ fn main() { mandelwow_bbox.draw(&mut frame, &uniforms); } + let text_rot = Matrix4::from_angle_x(cgmath::Deg(-90.0f32)); + let text_pos = Matrix4::from_translation(Vector3 { x: 0.0, y: 0.501, z: 0.0f32}) * text_rot; for x in 0..SEA_XSIZE { for z in 0..SEA_ZSIZE { let wave = ((x as f32 / SEA_XSIZE as f32 * PI * 5.0 + t * 2.0).sin() + (z as f32 / SEA_ZSIZE as f32 * PI * 3.0 + t * 3.0).sin()) * 0.3; - let model = Matrix4::from_translation(sea[x][z] + Vector3 {x: 0., y: wave, z: 0.}); + let model = Matrix4::from_translation( + sea[x][z] + Vector3 {x: 0., y: wave, z: 0.}); let uniforms = uniform! { model: array4x4(model), perspview: perspview, col: [0., (1. - wave).abs() * 0.5, wave.abs()], }; shaded_cube.draw(&mut frame, &uniforms); + text.model = model * text_pos; + text.character = (x + z * SEA_XSIZE) as u8 as char; + text.draw(&mut frame, &perspview); } } mandelwow::draw(&display, &mut frame, &mandelwow_program, model, &camera, &bounds, wow); - text.draw(&mut frame, &perspview); - frame.finish().unwrap(); for ev in display.poll_events() { @@ -236,21 +232,6 @@ fn main() { } } - if let Some(event) = rocket.poll_events() { - match event { - rust_rocket::Event::SetRow(row) => { - println!("SetRow (row: {:?})", row); - current_row = row; - } - rust_rocket::Event::Pause(_) => { - let track1 = rocket.get_track("test").unwrap(); - println!("Pause (value: {:?}) (row: {:?})", track1.get_value(current_row as f32), current_row); - } - _ => (), - } - println!("{:?}", event); - } - timer.update(); support::Action::Continue