rust_minifb/examples/mouse.rs
2016-01-29 20:16:00 +01:00

39 lines
1 KiB
Rust

extern crate minifb;
use minifb::{MouseButton, MouseMode, Window, Key, Scale};
const WIDTH: usize = 640;
const HEIGHT: usize = 360;
fn main() {
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
let mut window = match Window::new("Mouse Draw - Press ESC to exit", WIDTH, HEIGHT, Scale::X2) {
Ok(win) => win,
Err(err) => {
println!("Unable to create window {}", err);
return;
}
};
while window.is_open() && !window.is_key_down(Key::Escape) {
window.get_mouse_pos(MouseMode::Discard).map(|mouse| {
let screen_pos = ((mouse.1 as usize) * WIDTH) + mouse.0 as usize;
if window.get_mouse_down(MouseButton::Left) {
buffer[screen_pos] = 0x00ffffff;
}
if window.get_mouse_down(MouseButton::Right) {
buffer[screen_pos] = 0;
}
});
window.get_scroll_wheel().map(|scroll| {
println!("Scrolling {} - {}", scroll.0, scroll.1);
});
window.update(&buffer);
}
}