--- /dev/null
+extern crate sdl2;
+extern crate gl;
+
+//use std::ffi::CString;
+//pub mod draw;
+
+static _WIN_W : u32 = 800;
+static _WIN_H : u32 = 600;
+
+fn main() {
+ let _sdl = sdl2::init().unwrap();
+ let _video = _sdl.video().unwrap();
+ let _win = _video
+ .window("foobar", _WIN_W, _WIN_H)
+ .opengl() // add opengl flag
+ .resizable()
+ .build()
+ .unwrap();
+
+ let _gl_ctx = _win.gl_create_context().unwrap();
+ let _gl = gl::load_with(|s| _video.gl_get_proc_address(s) as
+ *const std::os::raw::c_void);
+
+// let _vsdr = draw::Shader::load_vs_code(&CString::new(include_str!("data/quad.v.glsl").unwrap.unrap();
+// let _fsdr = draw::Shader::load_fs_code(&CString::new(include_str!("data/quad.f.glsl").unwrap.unrap();
+// let sdr_prog = draw::Program::from_shaders(&[vsdr, fsdr]).unwrap();
+
+ unsafe {
+ gl::ClearColor(0.3, 0.1, 0.1, 1.0);
+ }
+
+ let mut event_pump = _sdl.event_pump().unwrap();
+ 'main: loop {
+ for _event in event_pump.poll_iter() {
+ // handle user input here
+ match _event {
+ sdl2::event::Event::Quit {..} |
+ sdl2::event::Event::KeyDown {keycode:
+ Some(sdl2::keyboard::Keycode::Escape), ..} =>
+ break 'main,
+ _ => {},
+ }
+ }
+
+ unsafe {
+ gl::Clear(gl::COLOR_BUFFER_BIT);
+ gl::Viewport(0, 0, _WIN_W as i32, _WIN_H as i32);
+ }
+
+ _win.gl_swap_window();
+ }
+}