summaryrefslogtreecommitdiff
path: root/packer/src/bin/benchmark.rs
diff options
context:
space:
mode:
Diffstat (limited to 'packer/src/bin/benchmark.rs')
-rw-r--r--packer/src/bin/benchmark.rs26
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(())
+}