Merge branch 'master' of ssh://codewiz.org/~/public_git/mandelwow
authorBernie Innocenti <bernie@codewiz.org>
Fri, 29 Sep 2017 22:57:59 +0000 (18:57 -0400)
committerBernie Innocenti <bernie@codewiz.org>
Fri, 29 Sep 2017 22:57:59 +0000 (18:57 -0400)
Cargo.toml
README.md
lib.rs
release_asmjs.sh
screenshot.png [new file with mode: 0644]
support/mod.rs

index 9c1bd7f403b2a2749f6bc1169d9323f868466027..c7f4875da4cd470264b255096c9bfe8de5e21d31 100644 (file)
@@ -14,10 +14,8 @@ opt-level = 3
 cgmath = "*"
 glium = "0.17.0"
 glutin = "0.9"
-genmesh = "0.4.1"
 image = { version = "0.14.0", features = ["png_codec"], optional = true }
 libxm = "1.0.0"
-obj = { version = "0.5", features = ["usegenmesh"] }
 rust-rocket = { path = "rust-rocket", optional = true }
 rand = "*"
 sdl2 = "*"
index 20c75c05e70e9ed2d4dff847aea4e9262d92fb33..56986a6720ae3a8689895ed153fd78e4abb26e4b 100644 (file)
--- a/README.md
+++ b/README.md
@@ -69,9 +69,10 @@ Install emsdk:
 cd ~
 curl -O https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
 tar xf emsdk-portable.tar.gz
-source emsdk-portable/emsdk_env.sh
-emsdk install emscripten-1.37.9 --build=MinSizeRel
-emsdk activate emscripten-1.37.9 --build=MinSizeRel
+cd emsdk-portable
+source ./emsdk-portable/emsdk_env.sh
+emsdk install latest --build=MinSizeRel
+emsdk activate latest --build=MinSizeRel
 ```
 
 Install rustc:
diff --git a/lib.rs b/lib.rs
index 98797f372eb1af0485144d2c6d2395b978bc70c3..21e7a4cb5da748a70ff29479742999f38d626466 100644 (file)
--- a/lib.rs
+++ b/lib.rs
@@ -26,7 +26,8 @@ pub use shaded_cube::ShadedCube;
 pub fn screenshot(display : &glium::Display) {
     let image: glium::texture::RawImage2d<u8> = display.read_front_buffer();
     let image = image::ImageBuffer::from_raw(image.width, image.height, image.data.into_owned()).unwrap();
-    let image = image::DynamicImage::ImageRgba8(image).flipv();
+    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.save(&mut output, image::ImageFormat::PNG).unwrap();
 }
index d03a92dad51d22ad25f3945a74ae0d90d71b6de1..84641012b65aa80199d3dabbf5829b9bb0f79322 100755 (executable)
@@ -1,4 +1,4 @@
 set -e
-cargo rustc --target asmjs-unknown-emscripten --release -- -C link-args='-s USE_SDL=2'
+cargo rustc --target asmjs-unknown-emscripten --release --no-default-features --bin mandelwow -- -C link-args='-s USE_SDL=2'
 cp -a target/asmjs-unknown-emscripten/release/mandelwow.js .
 emrun .
diff --git a/screenshot.png b/screenshot.png
new file mode 100644 (file)
index 0000000..fdd12a0
Binary files /dev/null and b/screenshot.png differ
index b71f50d7c50a2f84c18b4bfb2702771087623f82..add172f33632c53ebec10cc9947c561fb34fe67a 100644 (file)
@@ -1,8 +1,5 @@
 #![allow(dead_code)]
 
-extern crate genmesh;
-extern crate obj;
-
 use glium::{self, Display};
 use glium::vertex::VertexBufferAny;
 
@@ -22,46 +19,3 @@ pub fn start_loop<F>(mut callback: F) where F: FnMut() -> Action {
         };
     }
 }
-
-/// Returns a vertex buffer that should be rendered as `TrianglesList`.
-pub fn load_wavefront(display: &Display, data: &[u8]) -> VertexBufferAny {
-    #[derive(Copy, Clone)]
-    struct Vertex {
-        position: [f32; 3],
-        normal: [f32; 3],
-        texture: [f32; 2],
-    }
-
-    implement_vertex!(Vertex, position, normal, texture);
-
-    let mut data = ::std::io::BufReader::new(data);
-    let data = obj::Obj::load(&mut data);
-
-    let mut vertex_data = Vec::new();
-
-    for object in data.object_iter() {
-        for shape in object.group_iter().flat_map(|g| g.indices().iter()) {
-            match shape {
-                &genmesh::Polygon::PolyTri(genmesh::Triangle { x: v1, y: v2, z: v3 }) => {
-                    for v in [v1, v2, v3].iter() {
-                        let position = data.position()[v.0];
-                        let texture = v.1.map(|index| data.texture()[index]);
-                        let normal = v.2.map(|index| data.normal()[index]);
-
-                        let texture = texture.unwrap_or([0.0, 0.0]);
-                        let normal = normal.unwrap_or([0.0, 0.0, 0.0]);
-
-                        vertex_data.push(Vertex {
-                            position: position,
-                            normal: normal,
-                            texture: texture,
-                        })
-                    }
-                },
-                _ => unimplemented!()
-            }
-        }
-    }
-
-    glium::vertex::VertexBuffer::new(display, &vertex_data).unwrap().into_vertex_buffer_any()
-}