2018-02-23 15:22:48 +01:00
|
|
|
extern crate glium;
|
2018-02-26 11:45:53 +01:00
|
|
|
extern crate model_converter;
|
2018-02-23 15:22:48 +01:00
|
|
|
|
|
|
|
use glium::Display;
|
|
|
|
use glium::glutin;
|
|
|
|
use glium::glutin::{
|
|
|
|
EventsLoop,
|
|
|
|
WindowBuilder,
|
|
|
|
ContextBuilder,
|
|
|
|
};
|
|
|
|
|
|
|
|
use glium::glutin::Event;
|
|
|
|
use glium::glutin::WindowEvent;
|
|
|
|
use glium::glutin::VirtualKeyCode;
|
|
|
|
|
2018-02-26 11:45:53 +01:00
|
|
|
use model_converter::parser::parse;
|
|
|
|
use model_converter::renderer::Renderer;
|
|
|
|
|
2018-02-23 15:22:48 +01:00
|
|
|
fn main() {
|
|
|
|
|
|
|
|
let mut events_loop = EventsLoop::new();
|
|
|
|
let window = WindowBuilder::new();
|
|
|
|
let context = ContextBuilder::new();
|
|
|
|
let display = Display::new(window, context, &events_loop).unwrap();
|
|
|
|
|
|
|
|
let mut closed = false;
|
|
|
|
|
2018-02-26 11:45:53 +01:00
|
|
|
let model = parse("./assets/models/toonlink/link.obj").unwrap();
|
|
|
|
let mut renderer = Renderer::new(display);
|
|
|
|
renderer.add_model(&model);
|
|
|
|
|
2018-02-23 15:22:48 +01:00
|
|
|
while !closed {
|
|
|
|
|
2018-02-26 11:45:53 +01:00
|
|
|
let mut target = renderer.draw();
|
|
|
|
renderer.render(&mut target);
|
2018-02-23 15:22:48 +01:00
|
|
|
|
|
|
|
target.finish().unwrap();
|
|
|
|
|
|
|
|
events_loop.poll_events(|ev| {
|
|
|
|
match ev {
|
|
|
|
// Close window
|
|
|
|
Event::WindowEvent {
|
|
|
|
event: WindowEvent::Closed, ..
|
|
|
|
} => closed = true,
|
|
|
|
|
|
|
|
// Escape key
|
|
|
|
Event::WindowEvent {
|
|
|
|
event: WindowEvent::KeyboardInput {
|
|
|
|
input: glutin::KeyboardInput {
|
|
|
|
virtual_keycode: Some(VirtualKeyCode::Escape), ..
|
|
|
|
}, ..
|
|
|
|
}, ..
|
|
|
|
} => closed = true,
|
|
|
|
|
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|