aboutsummaryrefslogtreecommitdiffstats
path: root/examples/support/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/support/mod.rs')
-rw-r--r--examples/support/mod.rs32
1 files changed, 32 insertions, 0 deletions
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);
+ }
+}