2018-02-23 15:22:48 +01:00
|
|
|
extern crate glium;
|
|
|
|
|
|
|
|
use glium::Display;
|
|
|
|
use glium::glutin;
|
|
|
|
use glium::glutin::{
|
|
|
|
EventsLoop,
|
|
|
|
WindowBuilder,
|
|
|
|
ContextBuilder,
|
|
|
|
};
|
|
|
|
|
|
|
|
use glium::glutin::Event;
|
|
|
|
use glium::glutin::WindowEvent;
|
|
|
|
use glium::glutin::VirtualKeyCode;
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
2018-02-23 17:35:39 +01:00
|
|
|
let program = glium::Program::from_source(
|
|
|
|
&display,
|
|
|
|
include_str!("../../assets/shaders/shader.vert"),
|
|
|
|
include_str!("../../assets/shaders/shader.frag"),
|
|
|
|
None
|
|
|
|
).unwrap();
|
|
|
|
|
2018-02-23 15:22:48 +01:00
|
|
|
let mut closed = false;
|
|
|
|
|
|
|
|
while !closed {
|
|
|
|
let mut target = display.draw();
|
|
|
|
|
|
|
|
use glium::Surface;
|
|
|
|
target.clear_color(0.0, 0.0, 1.0, 1.0);
|
|
|
|
|
|
|
|
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,
|
|
|
|
|
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|