mirror of
https://github.com/italicsjenga/rust_minifb.git
synced 2025-01-27 02:56:33 +11:00
49eba1bc05
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
48 lines
1.2 KiB
Rust
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);
|
|
}
|
|
}
|