blit

A Rust library for blitting 2D sprites

CI Cargo License: GPL-3.0 Downloads

Documentation

Usage

Add this to your Cargo.toml:

toml [dependencies] blit = "0.5"

And this to your crate root:

rust extern crate blit;

Run the example

On Linux you need the xorg-dev package as required by minifb. sudo apt install xorg-dev

cargo run --example smiley

This should produce the following window:

Example

Examples

```rust extern crate image;

use blit::*;

const WIDTH: usize = 180; const HEIGHT: usize = 180; const MASK_COLOR: u32 = 0xFF00FF;

let mut buffer: Vec = vec![0xFFFFFFFF; WIDTH * HEIGHT];

let img = image::open("examples/smiley.png").unwrap(); let imgrgb = img.asrgb8().unwrap();

// Blit directly to the buffer let pos = (0, 0); imgrgb.blit(&mut buffer, WIDTH, pos, Color::fromu32(MASK_COLOR));

// Blit by creating a special blitting buffer first, this has some initial // overhead but is a lot faster after multiple calls let blitbuffer = imgrgb.toblitbuffer(Color::fromu32(MASKCOLOR));

let pos = (10, 10); blitbuffer.blit(&mut buffer, WIDTH, pos); let pos = (20, 20); blitbuffer.blit(&mut buffer, WIDTH, pos);

// Save the blit buffer to a file blit_buffer.save("smiley.blit"); ```