Go to file
2016-01-29 20:56:26 +01:00
examples Merge from mouse-support 2016-01-29 20:16:00 +01:00
src MouseMode::Clamp now clamps to [(0,0) (w-1,h-1)] 2016-01-29 20:56:26 +01:00
.gitignore Initial version 2015-11-22 18:55:38 +01:00
.travis.yml Added travis config 2016-01-04 22:44:24 +01:00
appveyor.yml Merge from mouse-support 2016-01-29 20:16:00 +01:00
appveyor_rust_install.ps1 Merge from mouse-support 2016-01-29 20:16:00 +01:00
build.rs Removed Windows part as it's fully in Rust now 2016-01-02 12:00:19 +01:00
Cargo.toml MouseMode::Clamp now clamps to [(0,0) (w-1,h-1)] 2016-01-29 20:56:26 +01:00
CHANGELOG.md MouseMode::Clamp now clamps to [(0,0) (w-1,h-1)] 2016-01-29 20:56:26 +01:00
LICENSE Initial version 2015-11-22 18:55:38 +01:00
LICENSE-APACHE Re-licence under MIT/Apache-2.0 2016-01-10 18:36:57 +01:00
LICENSE-MIT Re-licence under MIT/Apache-2.0 2016-01-10 18:36:57 +01:00
README.md MouseMode::Clamp now clamps to [(0,0) (w-1,h-1)] 2016-01-29 20:56:26 +01:00

Crates.io Build Status Build Status

minifb (Mini FrameBuffer) is a small cross platform library written in Rust and that makes it easy to render (32-bit) pixels in a window. An example is the best way to show how it works:

Documentation

Usage

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

Example

extern crate minifb;

use minifb::{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 minifb::Window::new("Test - ESC to exit", WIDTH, HEIGHT, Scale::X1) {
        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(&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.