Add API for monitors
This commit is contained in:
parent
8911e162ce
commit
db8955a9d8
4 changed files with 95 additions and 0 deletions
48
examples/fullscreen.rs
Normal file
48
examples/fullscreen.rs
Normal file
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue