diff options
Diffstat (limited to 'packer/src/bin/benchmark.rs')
| -rw-r--r-- | packer/src/bin/benchmark.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packer/src/bin/benchmark.rs b/packer/src/bin/benchmark.rs new file mode 100644 index 0000000..bb83992 --- /dev/null +++ b/packer/src/bin/benchmark.rs @@ -0,0 +1,26 @@ +use std::{fs::File, sync::Arc, time::Instant}; + +use image::{io::Reader as ImageReader, ImageOutputFormat}; +use packer::RectanglePacker; + +fn main() -> Result<(), exun::RawUnexpected> { + let img1 = ImageReader::open("src/bin/res/gator.bmp")?.decode()?; + let img2 = ImageReader::open("src/bin/res/bunny.ff")?.decode()?; + let img3 = ImageReader::open("src/bin/res/ghost.ico")?.decode()?; + + let start = Instant::now(); + let mut packer = RectanglePacker::new(); + packer.add_texture("gator".into(), Arc::new(img1.to_rgb8())); + packer.add_texture("bunny".into(), Arc::new(img2.to_rgb8())); + packer.add_texture("ghost".into(), Arc::new(img3.to_rgb8())); + println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0); + + let start = Instant::now(); + let packed = packer.output(); + println!("{} milliseconds", start.elapsed().as_secs_f32() * 1000.0); + + let mut file = File::create("packed.png")?; + packed?.0.write_to(&mut file, ImageOutputFormat::Bmp)?; + + Ok(()) +} |
