Go to file
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
examples Heap allocate drawing buffer 2016-01-05 21:29:52 +01:00
src Heap allocate drawing buffer 2016-01-05 21:29:52 +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 Fixed appveyor config 2016-01-04 23:38:44 +01:00
build.rs Removed Windows part as it's fully in Rust now 2016-01-02 12:00:19 +01:00
Cargo.toml Mac fixes 2016-01-04 21:14:06 +01:00
LICENSE Initial version 2015-11-22 18:55:38 +01:00
README.md Heap allocate drawing buffer 2016-01-05 21:29:52 +01:00

Crates.io Build Status Build Status

rust_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.2.4"

Example

extern crate minifb;

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