Crate blit [] [src]

Draw sprites quickly using bitwise operations and a masking color.

Usage

This crate is on crates.io and can be used by adding blit to the dependencies in your project's Cargo.toml.

[dependencies]
blit = "0.4"

and this to your crate root:

extern crate blit;

Examples

Be careful when using this code, it's not being tested!
extern crate image;

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

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

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

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

// Blit by creating a special blitting buffer first, this has some initial
// overhead but is a lot faster after multiple calls
let blit_buffer = img_rgb.to_blit_buffer(Color::from_u32(MASK_COLOR));

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

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

Modules

image_feature

Structs

BlitBuffer

A data structure holding a color and a mask buffer to make blitting on a buffer real fast.

Color

A newtype representing the color in a buffer.

Traits

BlitExt

A trait adding blitting functions to image types.