]> git.seodisparate.com - LudumDare45_StartWithNothing/commitdiff
Fix wasm build
authorStephen Seo <seo.disparate@gmail.com>
Thu, 23 Feb 2023 06:09:13 +0000 (15:09 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Thu, 23 Feb 2023 06:09:13 +0000 (15:09 +0900)
src/agnostic_interface/raylib_impl.rs
src/lib.rs
src/original_impl.rs
wasm/Makefile

index 5abaf6bc9a3509a3fef77a3b2fcfb171d58a368a..f65d9d94e9e65a1965ba0f092bfc2681d3410ab3 100644 (file)
@@ -973,8 +973,7 @@ impl GameInterface for RaylibGame {
             let path_str = path
                 .to_str()
                 .ok_or_else(|| format!("Failed to convert \"{path:?}\" to str!"))?;
-            let path_buf: Vec<u8> = path_str.as_bytes().into();
-            let cstring: CString = CString::from_vec_unchecked(path_buf);
+            let cstring: CString = CString::from_vec_unchecked(path_str.as_bytes().into());
             let sound = ffi::LoadSound(cstring.as_ptr());
             let raylib_sound_handler = RaylibSoundHandler {
                 sound: Rc::new(RaylibSound { sound }),
index 554072cd63686a4456c6f228d36c4afe3900888e..ac930c8a788fd5e501d6859ac69e9791ebb8abc6 100644 (file)
@@ -8,8 +8,8 @@ use faux_quicksilver::Window;
 use original_impl::GameState;
 
 pub struct WasmState {
-    pub window: Window,
-    pub game_state: GameState,
+    pub window: Box<Window>,
+    pub game_state: Box<GameState>,
 }
 
 impl WasmState {
@@ -25,8 +25,8 @@ impl WasmState {
 #[no_mangle]
 pub extern "C" fn ld45_initialize() -> *mut ::std::os::raw::c_void {
     let game_interface = RaylibGame::new_boxed(800, 600);
-    let mut window = Window::new(game_interface);
-    let game_state = GameState::new(&mut window).unwrap();
+    let mut window = Box::new(Window::new(game_interface));
+    let game_state = Box::new(GameState::new(&mut window).unwrap());
 
     Box::into_raw(Box::new(WasmState { window, game_state })) as *mut ::std::os::raw::c_void
 }
index 2da4c9bd1ffa71cc2c1df57d536f19c64b588980..969071ea005cc93475e40f32c43a7f56c7b6187d 100644 (file)
@@ -1238,11 +1238,11 @@ impl GameState {
             s_get.clone(),
         )?;
         let s_power_up = String::from("power_up.mp3");
-        window.load_sound(
-            &PathBuf::from_str("static/power_up.mp3")
-                .map_err(|_| String::from("Failed to load \"static/power_up.mp3\""))?,
-            s_power_up.clone(),
-        )?;
+        //window.load_sound(
+        //    &PathBuf::from_str("static/power_up.mp3")
+        //        .map_err(|_| String::from("Failed to load \"static/power_up.mp3\""))?,
+        //    s_power_up.clone(),
+        //)?;
         let s_tap = String::from("tap.mp3");
         window.load_sound(
             &PathBuf::from_str("static/tap.mp3")
@@ -1250,17 +1250,17 @@ impl GameState {
             s_tap.clone(),
         )?;
         let s_speak_m = String::from("speak_m.mp3");
-        window.load_sound(
-            &PathBuf::from_str("static/speak_m.mp3")
-                .map_err(|_| String::from("Failed to load \"static/speak_m.mp3\""))?,
-            s_speak_m.clone(),
-        )?;
+        //window.load_sound(
+        //    &PathBuf::from_str("static/speak_m.mp3")
+        //        .map_err(|_| String::from("Failed to load \"static/speak_m.mp3\""))?,
+        //    s_speak_m.clone(),
+        //)?;
         let s_speak_f = String::from("speak_f.mp3");
-        window.load_sound(
-            &PathBuf::from_str("static/speak_f.mp3")
-                .map_err(|_| String::from("Failed to load \"static/speak_f.mp3\""))?,
-            s_speak_f.clone(),
-        )?;
+        //window.load_sound(
+        //    &PathBuf::from_str("static/speak_f.mp3")
+        //        .map_err(|_| String::from("Failed to load \"static/speak_f.mp3\""))?,
+        //    s_speak_f.clone(),
+        //)?;
 
         let font = String::from("ClearSans-Regular.ttf");
         window.load_font(
index 743349b36b1999c5d08009fd3a5a6483a70f8d5b..b2b898a182ea3083badf6edb90a705e514a6238e 100644 (file)
@@ -1,4 +1,5 @@
-CC = source "${HOME}/git/emsdk/emsdk_env.sh" && emcc
+EM_ENV = "${HOME}/git/emsdk/emsdk_env.sh"
+CC = source ${EM_ENV} && emcc
 
 all: ld45.html
 
@@ -6,10 +7,8 @@ ld45.html: src/main.c ../target/wasm32-unknown-emscripten/release/libld45_lib.a
        ${CC} -o ld45.html -s USE_GLFW=3 -Iinclude \
                -Llib -lraylib \
                -L../target/wasm32-unknown-emscripten/release -lld45_lib \
-               -sTOTAL_MEMORY=1024MB \
-               -sALLOW_MEMORY_GROWTH=1 \
+               -sALLOW_MEMORY_GROWTH \
                -O2 \
--fsanitize=address \
                -sEXPORTED_FUNCTIONS="['_malloc', '_main']" \
                -sEXPORTED_RUNTIME_METHODS=ccall,cwrap \
                --preload-file ../static src/main.c
@@ -19,7 +18,8 @@ ld45.html: src/main.c ../target/wasm32-unknown-emscripten/release/libld45_lib.a
 #-sWARN_UNALIGNED=1 \
 
 ../target/wasm32-unknown-emscripten/release/libld45_lib.a: ../src/lib.rs
-       cd ..; source "${HOME}/git/emsdk/emsdk_env.sh"; cargo build --lib --release --target wasm32-unknown-emscripten
+       cd .. && source ${EM_ENV} && cargo build --lib --release --target wasm32-unknown-emscripten
+#      cd .. && source ${EM_ENV} && cargo rustc --lib --release --target wasm32-unknown-emscripten -- -C link-args=-Wl,-zstack-size=8388608
 
 .PHONY: clean