Hi,

I created a simple SDL2 application with the following pseudo code:

1. SDL_Init with SDL_INIT_VIDEO
2. SDL_CreateWindow
3. SDL_CreateRenderer
4. IMG_LoadTexture
5. SDL_QueryTexture

After this, I try to start up my own message loop in the following manner:

for (;;)
{
    while ((1<=SDL_PeepEvents(&e, 1, SDL_GETEVENT, SDL_QUIT, 
SDL_LASTEVENT)))
    {
        //If user closes the window
switch (e.type)
{
    case SDL_QUIT:
    {
        cout << " SDL_QUIT received!!!";
quitApp();
return;
    }
    default:
        break;
}
    }
    emscripten_sleep(10);
}

But when I click on the window, I get the following assert:

Uncaught abort(-12) at Error
    at jsStackTrace 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1325:13)
    at stackTrace 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1342:22)
    at abort 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:33928:44)
    at Array._Emscripten_HandleMouseFocus 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:22365:54)
    at dynCall_iiii 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:31705:40)
    at Object.Runtime.dynCall 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:426:39)
    at Object.handlerFunc 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1943:38)
    at HTMLCanvasElement.jsEventHandler 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1846:24)
This error happened during an emterpreter-async save or load of the stack. 
Was there non-emterpreted code on the stack during save (which is 
unallowed)? You may want to adjust EMTERPRETIFY_BLACKLIST, 
EMTERPRETIFY_WHITELIST, or EMTERPRETIFY_YIELDLIST (to consider certain 
functions ok to run during an emscripten_sleep_with_yield).
This is what the stack looked like when we tried to save it: 1,Error
    at jsStackTrace 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1325:13)
    at stackTrace 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:1342:22)
    at Object.EmterpreterAsync.handle 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:8744:40)
    at _emscripten_sleep 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:8767:24)
    at emterpret 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:13021:6)
    at Object.emterpret 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:12504:4)
    at resume 
(file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:8737:17)
    at 
file:///C:/work/git/SDLPrototypes/EventHandling/src/build/EventHandling.js:8770:11

I find this strange because I am compiling with the following linker flags:
-s NO_EXIT_RUNTIME=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1 -s 
ASSERTIONS=1 --preload-file image.png -O3 -g3

These are my compiler flags:
-s USE_SDL=2 -s USE_SDL_IMAGE=2 -s ASSERTIONS=1 -O3 -g3 -D_DEBUG_ -D_DEBUG

Since I did not specify any whitelist, I presume that all the code in my 
generated javascript should already be emterpreted. But somehow, 
_Emscripten_HandleMouseFocus isn't able to handle async states properly as 
this leads to a -12 abort.

Does this mean that I have to manually add all "handle mouse" functions 
into the white or yield list? Or is there a better way around it? I am on 
emsdk 1.30.0.

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to