Skip to content

emoon/rust_minifb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5d9ca9e · Mar 4, 2016
Mar 4, 2016
Mar 4, 2016
Nov 22, 2015
Jan 4, 2016
Mar 4, 2016
Mar 4, 2016
Nov 22, 2015
Jan 10, 2016
Jan 10, 2016
Mar 4, 2016
Jan 29, 2016
Jan 29, 2016
Jan 2, 2016

Repository files navigation

Crates.io Build Status Build Status

minifb is a cross platform library written in Rust and that makes it easy to setup a window and to (optional) display 32-bit a pixel buffer. It also makes it easy to get input from keyboard and mouse. An example is the best way to show how it works:

Documentation Changelog

Usage

# Cargo.toml
[dependencies]
minifb = "0.5.0"

Example

extern crate minifb;

use minifb::{Key, Scale, WindowOptions};

const WIDTH: usize = 640;
const HEIGHT: usize = 360;

fn main() {
    let mut buffer: Vec<u32> = vec![0; WIDTH * HEIGHT];

    let mut window = match minifb::Window::new("Test - ESC to exit", WIDTH, HEIGHT,
    										   WindowOptions::default()) {
        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() {
            *i = 0; // write something more funny here!
        }

        window.update_with_buffer(&buffer);
    }
}

Status

Currently Mac, Linux and Windows (64-bit and 32-bit) are the current supported platforms. X11 (Linux/FreeBSD/etc) support has been tested on Ubuntu (x64). Bug report(s) for other OSes/CPUs are welcome!

Build instructions

cargo build
cargo run --example noise

This will run the noise example which should look something like this (Mac screenshot)

mac_screenshot

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.