aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/fullscreen.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/examples/fullscreen.rs b/examples/fullscreen.rs
new file mode 100644
index 0000000..cfbc35c
--- /dev/null
+++ b/examples/fullscreen.rs
@@ -0,0 +1,48 @@
+extern crate init = "gl-init-rs";
+extern crate libc;
+extern crate gl;
+
+use std::io::stdio::stdin;
+
+fn main() {
+ use std::default::Default;
+
+ // enumerating monitors
+ let monitor = {
+ for (num, monitor) in init::get_available_monitors().enumerate() {
+ println!("Monitor #{}: {}", num, monitor.get_name());
+ }
+
+ print!("Please write the number of the monitor to use: ");
+ let num = from_str(stdin().read_line().unwrap().as_slice()).unwrap();
+ let monitor = init::get_available_monitors().nth(num).unwrap();
+
+ println!("Using {}", monitor.get_name());
+
+ monitor
+ };
+
+ let window = init::Window::new(None, "Hello world!", &Default::default(),
+ Some(monitor)).unwrap();
+
+ unsafe { window.make_current() };
+
+ gl::load_with(|symbol| window.get_proc_address(symbol) as *const libc::c_void);
+
+ 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());
+
+ gl::ClearColor(0.0, 1.0, 0.0, 1.0);
+
+ while !window.is_closed() {
+ println!("{}", window.wait_events());
+
+ gl::Clear(gl::COLOR_BUFFER_BIT);
+
+ window.swap_buffers();
+ }
+}