model-converter/src/programs/viewer.rs

60 lines
1.5 KiB
Rust
Raw Normal View History

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,
_ => (),
}
});
}
}