@@ -19,14 +19,14 @@ int EventHandler(void *userdata, SDL_Event *event) {
1919 break ;
2020 case SDL_KEYDOWN :
2121 switch (event -> key .keysym .sym ) {
22- case SDLK_RIGHT : printf ("right\n" ); result *= 7 ; break ;
23- case SDLK_LEFT : printf ("left\n" ); result *= 11 ; break ;
24- case SDLK_DOWN : printf ("down\n" ); result *= 13 ; break ;
25- case SDLK_UP : printf ("up\n" ); result *= 17 ; break ;
26- case SDLK_a : printf ("a\n" ); result *= 19 ; break ;
22+ case SDLK_RIGHT : printf ("KEYDOWN: right\n" ); result *= 7 ; break ;
23+ case SDLK_LEFT : printf ("KEYDOWN: left\n" ); result *= 11 ; break ;
24+ case SDLK_DOWN : printf ("KEYDOWN: down\n" ); result *= 13 ; break ;
25+ case SDLK_UP : printf ("KEYDOWN: up\n" ); result *= 17 ; break ;
26+ case SDLK_a : printf ("KEYDOWN: a\n" ); result *= 19 ; break ;
2727 default : {
2828 if (event -> key .keysym .scancode == SDL_SCANCODE_B ) {
29- printf ("b scancode\n" ); result *= 23 ; break ;
29+ printf ("KEYDOWN: b scancode\n" ); result *= 23 ; break ;
3030 }
3131 printf ("unknown key: sym %d scancode %d\n" , event -> key .keysym .sym , event -> key .keysym .scancode );
3232 emscripten_force_exit (result ); // comment this out to leave event handling active. Use the following to log DOM keys:
@@ -35,8 +35,9 @@ int EventHandler(void *userdata, SDL_Event *event) {
3535 }
3636 break ;
3737 case SDL_TEXTINPUT :
38+ printf ("TEXTINPUT: %c\n" , event -> text .text [0 ]);
3839 if (event -> text .text [0 ] == 'A' ) {
39- printf ( "a\n" ); result *= 5 ;
40+ result *= 5 ;
4041 }
4142 break ;
4243 default : /* Report an unhandled event */
@@ -45,13 +46,11 @@ int EventHandler(void *userdata, SDL_Event *event) {
4546 return 0 ;
4647}
4748
48- void one () {
49- #ifndef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
49+ void pump_events () {
5050 SDL_Event event ;
5151 while (SDL_PollEvent (& event )) {
5252 EventHandler (0 , & event );
5353 }
54- #endif
5554}
5655
5756int main (int argc , char * * argv ) {
@@ -61,12 +60,6 @@ int main(int argc, char **argv) {
6160 SDL_WINDOWPOS_CENTERED , SDL_WINDOWPOS_CENTERED ,
6261 640 , 480 , 0 );
6362
64- #ifdef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
65- emscripten_SDL_SetEventHandler (EventHandler , 0 );
66- #else
67- one ();
68- #endif
69-
7063 SDL_StartTextInput ();
7164
7265 emscripten_run_script ("keydown(38);keyup(38)" ); // up
@@ -77,7 +70,7 @@ int main(int argc, char **argv) {
7770 emscripten_run_script ("keydown(66);keyup(66);" ); // b
7871 emscripten_run_script ("keydown(100);keyup(100);" ); // trigger the end
7972
80- emscripten_exit_with_live_runtime ( );
73+ emscripten_set_main_loop ( pump_events , 3 , 0 );
8174 return 99 ;
8275}
8376
0 commit comments