diff --git a/src/SDL.c b/src/SDL.c index facb204108..cf5ff5b2c1 100644 --- a/src/SDL.c +++ b/src/SDL.c @@ -326,6 +326,14 @@ bool SDL_InitSubSystem(SDL_InitFlags flags) return SDL_SetError("Application didn't initialize properly, did you include SDL_main.h in the file containing your main() function?"); } +#ifdef SDL_PLATFORM_EMSCRIPTEN + MAIN_THREAD_EM_ASM({ + if (typeof(Module['SDL3']) === 'undefined') { + Module['SDL3'] = {}; + } + }); +#endif + SDL_InitMainThread(); #ifdef SDL_USE_LIBDBUS diff --git a/src/audio/dummy/SDL_dummyaudio.c b/src/audio/dummy/SDL_dummyaudio.c index a23dc049a4..b325acb7fb 100644 --- a/src/audio/dummy/SDL_dummyaudio.c +++ b/src/audio/dummy/SDL_dummyaudio.c @@ -116,9 +116,6 @@ static bool DUMMYAUDIO_Init(SDL_AudioDriverImpl *impl) // on Emscripten without threads, we just fire a repeating timer to consume audio. #if defined(SDL_PLATFORM_EMSCRIPTEN) && !defined(__EMSCRIPTEN_PTHREADS__) MAIN_THREAD_EM_ASM({ - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } Module['SDL3'].dummy_audio = {}; Module['SDL3'].dummy_audio.timers = []; Module['SDL3'].dummy_audio.timers[0] = undefined; diff --git a/src/audio/emscripten/SDL_emscriptenaudio.c b/src/audio/emscripten/SDL_emscriptenaudio.c index bc1b877ec4..3eaa8e05e0 100644 --- a/src/audio/emscripten/SDL_emscriptenaudio.c +++ b/src/audio/emscripten/SDL_emscriptenaudio.c @@ -151,9 +151,6 @@ static bool EMSCRIPTENAUDIO_OpenDevice(SDL_AudioDevice *device) // create context const bool result = MAIN_THREAD_EM_ASM_INT({ - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } var SDL3 = Module['SDL3']; if (typeof(SDL3.audio_playback) === 'undefined') { SDL3.audio_playback = {}; diff --git a/src/camera/emscripten/SDL_camera_emscripten.c b/src/camera/emscripten/SDL_camera_emscripten.c index 6a13c3a43d..85ff587d3d 100644 --- a/src/camera/emscripten/SDL_camera_emscripten.c +++ b/src/camera/emscripten/SDL_camera_emscripten.c @@ -247,9 +247,6 @@ static void EMSCRIPTENCAMERA_DetectDevices(void) static bool EMSCRIPTENCAMERA_Init(SDL_CameraDriverImpl *impl) { MAIN_THREAD_EM_ASM({ - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } Module['SDL3'].camera = {}; }); diff --git a/src/video/emscripten/SDL_emscriptenevents.c b/src/video/emscripten/SDL_emscriptenevents.c index cfaeea898e..28e686a66f 100644 --- a/src/video/emscripten/SDL_emscriptenevents.c +++ b/src/video/emscripten/SDL_emscriptenevents.c @@ -957,9 +957,6 @@ EMSCRIPTEN_KEEPALIVE void Emscripten_HandlePointerGeneric(SDL_WindowData *window static void Emscripten_prep_pointer_event_callbacks(void) { MAIN_THREAD_EM_ASM({ - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } var SDL3 = Module['SDL3']; if (SDL3.makePointerEventCStruct === undefined) { @@ -1166,10 +1163,6 @@ static void Emscripten_set_drag_event_callbacks(SDL_WindowData *data) var target = document.querySelector(UTF8ToString($1)); if (target) { var data = $0; - - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } var SDL3 = Module['SDL3']; var makeDropEventCStruct = function(event) { diff --git a/src/video/emscripten/SDL_emscriptenframebuffer.c b/src/video/emscripten/SDL_emscriptenframebuffer.c index 0253237339..87e00bbeb3 100644 --- a/src/video/emscripten/SDL_emscriptenframebuffer.c +++ b/src/video/emscripten/SDL_emscriptenframebuffer.c @@ -75,7 +75,6 @@ bool Emscripten_UpdateWindowFramebuffer(SDL_VideoDevice *_this, SDL_Window *wind var canvas = document.querySelector(canvasId); //TODO: this should store a context per canvas - if (!Module['SDL3']) Module['SDL3'] = {}; var SDL3 = Module['SDL3']; if (SDL3.ctxCanvas !== canvas) { SDL3.ctx = Browser.createContext(canvas, false, true); diff --git a/src/video/emscripten/SDL_emscriptenmouse.c b/src/video/emscripten/SDL_emscriptenmouse.c index 099bbacbd1..c2f4b817a3 100644 --- a/src/video/emscripten/SDL_emscriptenmouse.c +++ b/src/video/emscripten/SDL_emscriptenmouse.c @@ -228,9 +228,6 @@ void Emscripten_InitMouse(void) // Add event listeners to track mouse events on the document MAIN_THREAD_EM_ASM({ - if (!Module['SDL3']) { - Module['SDL3'] = {}; - } var SDL3 = Module['SDL3']; SDL3['mouse_x'] = 0; SDL3['mouse_y'] = 0; diff --git a/src/video/emscripten/SDL_emscriptenvideo.c b/src/video/emscripten/SDL_emscriptenvideo.c index d440a2ff77..942809c4a2 100644 --- a/src/video/emscripten/SDL_emscriptenvideo.c +++ b/src/video/emscripten/SDL_emscriptenvideo.c @@ -101,10 +101,6 @@ static void Emscripten_ListenSystemTheme(void) { MAIN_THREAD_EM_ASM({ if (window.matchMedia) { - if (typeof(Module['SDL3']) === 'undefined') { - Module['SDL3'] = {}; - } - var SDL3 = Module['SDL3']; SDL3.eventHandlerThemeChanged = function(event) {