Re-enable fullscreen toggling
[mandelwow.git] / lib.rs
diff --git a/lib.rs b/lib.rs
index 8fd85f419be5ad221d0347cde5b668f28aba6f6b..24ef697840c82b47f266cf512ed8310939f7f831 100644 (file)
--- a/lib.rs
+++ b/lib.rs
@@ -1,14 +1,28 @@
-extern crate cgmath;
-#[macro_use(uniform,program,implement_vertex)]
-extern crate glium;
-extern crate glutin;
-extern crate libxm;
-extern crate sdl2;
-
 pub mod bounding_box;
 pub mod cube;
 pub mod mandelwow;
+pub mod shaded_cube;
 pub mod sound;
 pub mod support;
+pub mod text;
+pub mod timer;
+
+pub use crate::bounding_box::BoundingBox;
+pub use crate::cube::Cube;
+pub use crate::shaded_cube::ShadedCube;
+pub use crate::text::Text;
+pub use crate::timer::Timer;
+
+#[cfg(feature = "image")]
+pub fn screenshot(display : &glium::Display) {
+    let image: glium::texture::RawImage2d<'_, u8> = display.read_front_buffer().unwrap();
+    let image = image::ImageBuffer::from_raw(image.width, image.height, image.data.into_owned()).unwrap();
+    let image = image::DynamicImage::ImageRgba8(image).flipv().to_rgb();
+    let image = image::DynamicImage::ImageRgb8(image);
+    let mut output = std::fs::File::create(&std::path::Path::new("screenshot.png")).unwrap();
+    image.write_to(&mut output, image::ImageFormat::PNG).unwrap();
+}
 
-pub use cube::Cube;
+#[cfg(not(feature = "image"))]
+pub fn screenshot(_ : &glium::Display) {
+}