diff --git a/WASM/basic_template.html b/WASM/basic_template.html new file mode 100644 index 0000000..1b2f8dd --- /dev/null +++ b/WASM/basic_template.html @@ -0,0 +1,77 @@ + + + + + + + + Emscripten-Generated Code + + + + + + + + + + + + diff --git a/WASM/pge2wasm.bat b/WASM/pge2wasm.bat new file mode 100644 index 0000000..6b77424 --- /dev/null +++ b/WASM/pge2wasm.bat @@ -0,0 +1,108 @@ +@echo off +:: Convenience Utility to build projects using olc::PixelGameEngine, using +:: Emscripten, producing WASM based output. +:: +:: OneLoneCoder.com 2021 - Released under OLC-3 license +:: +:: v1.00: Initial Release + +setlocal enabledelayedexpansion enableextensions + +:: Customize here =========================================== + +:: Location of Emscripten SDK +set EMSDK="e:\pge_ems\emsdk\" + +:: Location of olc::PixelGameEngine header file +set OLCPGE=".\" +set OLCPGE="e:\pge_dev\olcPixelGameEngine_dev\Deploy" + +:: ========================================================== + +set WORKINGDIR=%CD% + +if not exist %EMSDK% ( + echo Error: No Emscripten SDK folder found! + goto :fail +) + +if not exist %OLCPGE% ( + echo Error: Invalid PGE Location! + goto :fail +) + +if "%1"=="build" goto :build +if "%1"=="run" goto :run +if "%1"=="clean" goto :clean +goto :error + +:build + :: Configure path variables + cd %EMSDK% + call emsdk_env.bat + + :: Create working folder + cd %WORKINGDIR% + if not exist ".\WASM" ( + echo Creating .\WASM output folder + mkdir ".\WASM" + ) + + :: Grab all cpp files if no specific file is given + if "%~2"=="" goto :graball + set CPP=%~2 + goto :embuild + +:graball + echo Gathering *.cpp files from + echo %CD% + set CPP= + for %%x in (%CD%\*.cpp) do set CPP=!CPP! %%x + set CPP=%CPP:~1% + +:embuild + +echo %CPP% + if exist "./assets" ( + echo Starting Build with assets... + call em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 %CPP% -o .\WASM\pge.html -I %OLCPGE% --preload-file .\assets + ) else ( + echo Starting Build without assets... + call em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 %CPP% -o .\WASM\pge.html -I %OLCPGE% + ) + + echo Build Completed + goto :success + +:run + :: Configure path variables + cd %EMSDK% + call emsdk_env.bat + cd %WORKINGDIR% + emrun .\WASM\pge.html + goto :success + +:clean + if exist ".\WASM" ( + rmdir /s /q .\WASM + ) + goto :success + +:error + echo Error: Incorrect Input + goto :fail + +:success + echo Exit With Success + goto :leave + +:fail + echo Exit with Failure + goto :leave + +:leave + exit + + + + diff --git a/WASM/readme.md b/WASM/readme.md new file mode 100644 index 0000000..6b07475 Binary files /dev/null and b/WASM/readme.md differ