Add a benchmark for ShadedCube.
[mandelwow.git] / benches / shaded_cube.rs
1 #![feature(test)]
2
3 extern crate mandelwow_lib;
4 #[macro_use(uniform)]
5 extern crate glium;
6 extern crate glutin;
7 extern crate test;
8
9 use glium::DisplayBuild;
10 use mandelwow_lib::Cube;
11 use mandelwow_lib::shaded_cube::*;
12
13 #[bench]
14 fn bench_shaded_cube(b: &mut test::Bencher) {
15     let display = glutin::WindowBuilder::new().build_glium().unwrap();
16     let program = shaded_program(&display);
17     let bounds = Cube { xmin: -2., xmax: 0.7, ymin: -1., ymax:  1., zmin: -1.1, zmax:  1.1 };
18     let cube = ShadedCube::new(&display, &bounds, &program);
19     let mut frame = display.draw();
20     b.iter(|| {
21         let mat = [[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.0f32]];
22         let uniforms = uniform! {
23             model: mat,
24             viewpersp: mat,
25         };
26         cube.draw(&mut frame, &uniforms);
27     });
28     frame.finish().unwrap();
29 }