6c51ab27dd6e1b41a5c09739cb0d44c9ab6a730c
[mandelwow.git] / benches / shaded_cube.rs
1 #![feature(test)]
2 extern crate test;
3
4 use glium::uniform;
5 use mandelwow_lib::shaded_cube::*;
6 use std::rc::Rc;
7
8 #[bench]
9 fn bench_shaded_cube(b: &mut test::Bencher) {
10     let event_loop = glutin::event_loop::EventLoop::new();
11     let window = glutin::window::WindowBuilder::new();
12     let context = glutin::ContextBuilder::new();
13     let display = glium::Display::new(window, context, &event_loop).unwrap();
14
15     let program = Rc::new(shaded_program(&display));
16     let cube = ShadedCube::new(&display, program);
17     let mut frame = display.draw();
18     b.iter(|| {
19         let model =     [[0.7, 0.5, -0.5, 0.0], [0.0, 0.7, 0.7, 0.0], [0.7, -0.5,  0.5,  0.0], [0., 0., -3.0, 1.0f32]];
20         let perspview = [[0.5, 0.0,  0.0, 0.0], [0.0, 1.0, 0.0, 0.0], [0.0,  0.0, -1.0, -1.0], [0., 0., -0.2, 0.0f32]];
21         let uniforms = uniform! {
22             model: model,
23             perspview: perspview,
24         };
25         cube.draw(&mut frame, &uniforms);
26     });
27     frame.finish().unwrap();
28 }