rust_minifb/examples/noise.rs
Daniel Collin 49eba1bc05 Heap allocate drawing buffer
On some system it seems that the stack is quite small so now we heap
allocate the buffer instead. Also updated the docs and examples using
that instead of being on the stack. Bumped version to 0.2.4

Closes #8
2016-01-05 21:29:52 +01:00

48 lines
1.2 KiB
Rust

extern crate minifb;
use minifb::{Window, Key, Scale};
const WIDTH: usize = 640;
const HEIGHT: usize = 360;
fn main() {
let mut noise;
let mut carry;
let mut seed = 0xbeefu32;
let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];
let mut window = match Window::new("Noise Test - 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) {
for i in buffer.iter_mut() {
noise = seed;
noise >>= 3;
noise ^= seed;
carry = noise & 1;
noise >>= 1;
seed >>= 1;
seed |= carry << 30;
noise &= 0xFF;
*i = (noise << 16) | (noise << 8) | noise;
}
window.get_keys().map(|keys| {
for t in keys {
match t {
Key::W => println!("holding w!"),
Key::T => println!("holding t!"),
_ => (),
}
}
});
window.update(&buffer);
}
}