diff options
| author | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-09-12 08:50:54 +0200 | 
|---|---|---|
| committer | Tomaka17 <pierre.krieger1708@gmail.com> | 2014-09-12 08:53:31 +0200 | 
| commit | 3cad622ee846600bbb5bd38992113198fd9737d7 (patch) | |
| tree | af516ec70ce011ed1b806864cd13150c5f59d127 /examples | |
| parent | 6b834baedaab6086438e3a84ca72b809b9f7740f (diff) | |
| download | glutin-3cad622ee846600bbb5bd38992113198fd9737d7.tar.gz glutin-3cad622ee846600bbb5bd38992113198fd9737d7.zip  | |
Examples now using a support module to draw
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/fullscreen.rs | 22 | ||||
| -rw-r--r-- | examples/multiwindow.rs | 16 | ||||
| -rw-r--r-- | examples/support/mod.rs | 32 | ||||
| -rw-r--r-- | examples/window.rs | 23 | 
4 files changed, 47 insertions, 46 deletions
diff --git a/examples/fullscreen.rs b/examples/fullscreen.rs index f0aab47..1df5124 100644 --- a/examples/fullscreen.rs +++ b/examples/fullscreen.rs @@ -1,15 +1,16 @@  #![feature(phase)] +#![feature(tuple_indexing)]  #[cfg(target_os = "android")]  #[phase(plugin, link)]  extern crate android_glue; -extern crate gl;  extern crate gl_init; -extern crate libc;  use std::io::stdio::stdin; +mod support; +  #[cfg(target_os = "android")]  android_start!(main) @@ -38,24 +39,11 @@ fn main() {      unsafe { window.make_current() }; -    gl::load_with(|symbol| window.get_proc_address(symbol)); - -    let version = { -        use std::c_str::CString; -        unsafe { CString::new(gl::GetString(gl::VERSION) as *const i8, false) } -    }; - -    println!("OpenGL version {}", version.as_str().unwrap()); -    { -        let win_size = window.get_inner_size().unwrap(); -        gl::Viewport(0, 0, win_size.val0() as libc::c_int, win_size.val1() as libc::c_int); -    } - -    gl::ClearColor(0.0, 1.0, 0.0, 1.0); +    let context = support::load(&window);      while !window.is_closed() { -        gl::Clear(gl::COLOR_BUFFER_BIT); +        context.draw_frame((0.0, 1.0, 0.0, 1.0));          window.swap_buffers();          println!("{}", window.wait_events().collect::<Vec<gl_init::Event>>()); diff --git a/examples/multiwindow.rs b/examples/multiwindow.rs index df52ab2..84af061 100644 --- a/examples/multiwindow.rs +++ b/examples/multiwindow.rs @@ -1,12 +1,13 @@  #![feature(phase)] +#![feature(tuple_indexing)]  #[cfg(target_os = "android")]  #[phase(plugin, link)]  extern crate android_glue; -extern crate gl;  extern crate gl_init; -extern crate libc; + +mod support;  #[cfg(target_os = "android")]  android_start!(main) @@ -32,17 +33,10 @@ fn main() {  fn run(window: gl_init::Window, color: (f32, f32, f32, f32)) {      unsafe { window.make_current() }; -    gl::load_with(|symbol| window.get_proc_address(symbol)); -     -    { -        let win_size = window.get_inner_size().unwrap(); -        gl::Viewport(0, 0, win_size.val0() as libc::c_int, win_size.val1() as libc::c_int); -    } - -    gl::ClearColor(color.val0(), color.val1(), color.val2(), color.val3()); +    let context = support::load(&window);      while !window.is_closed() { -        gl::Clear(gl::COLOR_BUFFER_BIT); +        context.draw_frame(color);          window.swap_buffers();          window.wait_events().collect::<Vec<gl_init::Event>>(); diff --git a/examples/support/mod.rs b/examples/support/mod.rs new file mode 100644 index 0000000..4495f17 --- /dev/null +++ b/examples/support/mod.rs @@ -0,0 +1,32 @@ +#[phase(plugin)] +extern crate gl_generator; + +use gl_init; + +mod gl { +    generate_gl_bindings!("gl", "core", "4.5", "struct") +} + +pub struct Context { +    gl: gl::Gl +} + +pub fn load(window: &gl_init::Window) -> Context { +    let gl = gl::Gl::load_with(|symbol| window.get_proc_address(symbol)); + +    let version = { +        use std::c_str::CString; +        unsafe { CString::new(gl.GetString(gl::VERSION) as *const i8, false) } +    }; + +    println!("OpenGL version {}", version.as_str().unwrap()); + +    Context { gl: gl } +} + +impl Context { +    pub fn draw_frame(&self, color: (f32, f32, f32, f32)) { +        self.gl.ClearColor(color.0, color.1, color.2, color.3); +        self.gl.Clear(gl::COLOR_BUFFER_BIT); +    } +} diff --git a/examples/window.rs b/examples/window.rs index 5621b3c..66ca7ca 100644 --- a/examples/window.rs +++ b/examples/window.rs @@ -1,12 +1,13 @@  #![feature(phase)] +#![feature(tuple_indexing)]  #[cfg(target_os = "android")]  #[phase(plugin, link)]  extern crate android_glue; -extern crate gl;  extern crate gl_init; -extern crate libc; + +mod support;  #[cfg(target_os = "android")]  android_start!(main) @@ -16,24 +17,10 @@ fn main() {      unsafe { window.make_current() }; -    gl::load_with(|symbol| window.get_proc_address(symbol)); - -    let version = { -        use std::c_str::CString; -        unsafe { CString::new(gl::GetString(gl::VERSION) as *const i8, false) } -    }; - -    println!("OpenGL version {}", version.as_str().unwrap()); - -    { -        let win_size = window.get_inner_size().unwrap(); -        gl::Viewport(0, 0, win_size.val0() as libc::c_int, win_size.val1() as libc::c_int); -    } - -    gl::ClearColor(0.0, 1.0, 0.0, 1.0); +    let context = support::load(&window);      while !window.is_closed() { -        gl::Clear(gl::COLOR_BUFFER_BIT); +        context.draw_frame((0.0, 1.0, 0.0, 1.0));          window.swap_buffers();          println!("{}", window.wait_events().collect::<Vec<gl_init::Event>>());  | 
