extern crate minifb; use minifb::{MouseButton, MouseMode, Window, Key, Scale, WindowOptions}; const WIDTH: usize = 640; const HEIGHT: usize = 360; fn main() { let mut buffer: Vec = vec![0; WIDTH * HEIGHT]; let mut window = match Window::new("Mouse Draw - Press ESC to exit", WIDTH, HEIGHT, WindowOptions { scale: Scale::X2, ..WindowOptions::default() }) { 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; println!("{:?}", window.get_unscaled_mouse_pos(MouseMode::Discard).unwrap()); 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); }); // We unwrap here as we want this code to exit if it fails window.update_with_buffer(&buffer).unwrap(); } }