#![feature(test)]
extern crate blit;
extern crate image;
extern crate test;
use test::Bencher;
use blit::*;
const SIZE: i32 = 1000;
const ITERATIONS: i32 = 100;
#[bench]
fn blit_buffer(b: &mut Bencher) {
let mut buffer: Vec<u32> = vec![0; (SIZE * SIZE) as usize];
let img = image::open("examples/smiley.png").unwrap();
let rgb = img.as_rgb8().unwrap();
let blit = rgb.as_blit_buffer(0xFF00FF);
b.iter(|| {
for x in 0..ITERATIONS {
blit.blit(&mut buffer, (SIZE, SIZE), (x, 0));
}
});
}
#[bench]
fn blit_buffer_rect(b: &mut Bencher) {
let mut buffer: Vec<u32> = vec![0; (SIZE * SIZE) as usize];
let img = image::open("examples/smiley.png").unwrap();
let rgb = img.as_rgb8().unwrap();
let blit = rgb.as_blit_buffer(0xFF00FF);
let size = blit.size();
b.iter(|| {
for x in 0..ITERATIONS {
blit.blit_rect(&mut buffer, (SIZE, SIZE), (x, 0), (0, 0, size.0, size.1));
}
});
}
#[bench]
fn blit_buffer_exact_fit(b: &mut Bencher) {
let img = image::open("examples/smiley.png").unwrap();
let rgb = img.as_rgb8().unwrap();
let blit = rgb.as_blit_buffer(0xFF00FF);
let size = blit.size();
let mut buffer: Vec<u32> = vec![0; (size.0 * size.1) as usize];
b.iter(|| {
for _ in 0..ITERATIONS {
blit.blit(&mut buffer, size, (0, 0));
}
});
}
#[bench]
fn blit_img(b: &mut Bencher) {
let mut buffer: Vec<u32> = vec![0; (SIZE * SIZE) as usize];
let img = image::open("examples/smiley.png").unwrap();
let rgb = img.as_rgb8().unwrap();
b.iter(|| {
for x in 0..ITERATIONS {
rgb.blit_with_mask_color(&mut buffer, (SIZE, SIZE), (x, 0), 0xFF00FF);
}
});
}