Examples: Emscripten: Tweaks for size. (#2494)
diff --git a/examples/.gitignore b/examples/.gitignore
index 54c0a11..d56b94f 100644
--- a/examples/.gitignore
+++ b/examples/.gitignore
@@ -25,6 +25,7 @@
xcuserdata
## Emscripten output
+*.o.tmp
*.out.js
*.out.wasm
example_emscripten/example_emscripten.*
diff --git a/examples/example_emscripten/Makefile b/examples/example_emscripten/Makefile
index 6c9865f..9edfafd 100644
--- a/examples/example_emscripten/Makefile
+++ b/examples/example_emscripten/Makefile
@@ -24,10 +24,12 @@
EMS = -s USE_SDL=2 -s WASM=1
EMS += -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN_TRAP_MODE=clamp
EMS += -s DISABLE_EXCEPTION_CATCHING=1 -s NO_EXIT_RUNTIME=0
-EMS += -s ASSERTIONS=1 -s SAFE_HEAP=1
+EMS += -s ASSERTIONS=1 -s NO_FILESYSTEM=1
+#EMS += -s SAFE_HEAP=1 ## Adds overhead
CPPFLAGS = -I../ -I../../
-CPPFLAGS += -g -Wall -Wformat -O3
+#CPPFLAGS += -g
+CPPFLAGS += -Wall -Wformat -Os
CPPFLAGS += $(EMS)
LIBS = $(EMS)
LDFLAGS = --shell-file shell_minimal.html
diff --git a/examples/example_emscripten/main.cpp b/examples/example_emscripten/main.cpp
index 847b505..fc7017d 100644
--- a/examples/example_emscripten/main.cpp
+++ b/examples/example_emscripten/main.cpp
@@ -14,7 +14,7 @@
#include <SDL.h>
#include <SDL_opengles2.h>
-// Emscripten requires to have full control over the main loop. We're going to store our SDL book-keeping variables globally.
+// Emscripten requires to have full control over the main loop. We're going to store our SDL book-keeping variables globally.
// Having a single function that acts as a loop prevents us to store state in the stack of said function. So we need some location for this.
SDL_Window* g_Window = NULL;
SDL_GLContext g_GLContext = NULL;
@@ -63,6 +63,10 @@
ImGuiIO& io = ImGui::GetIO(); (void)io;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
+ // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
+ // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
+ io.IniFilename = NULL;
+
// Setup Dear ImGui style
ImGui::StyleColorsDark();
//ImGui::StyleColorsClassic();
@@ -90,7 +94,7 @@
emscripten_set_main_loop_arg(main_loop, NULL, 0, true);
}
-void main_loop(void* arg)
+void main_loop(void* arg)
{
ImGuiIO& io = ImGui::GetIO();
IM_UNUSED(arg); // We can pass this argument as the second parameter of emscripten_set_main_loop_arg(), but we don't use that.