@@ -19,14 +19,14 @@ int EventHandler(void *userdata, SDL_Event *event) {
19
19
break ;
20
20
case SDL_KEYDOWN :
21
21
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 ;
27
27
default : {
28
28
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 ;
30
30
}
31
31
printf ("unknown key: sym %d scancode %d\n" , event -> key .keysym .sym , event -> key .keysym .scancode );
32
32
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) {
35
35
}
36
36
break ;
37
37
case SDL_TEXTINPUT :
38
+ printf ("TEXTINPUT: %c\n" , event -> text .text [0 ]);
38
39
if (event -> text .text [0 ] == 'A' ) {
39
- printf ( "a\n" ); result *= 5 ;
40
+ result *= 5 ;
40
41
}
41
42
break ;
42
43
default : /* Report an unhandled event */
@@ -45,13 +46,11 @@ int EventHandler(void *userdata, SDL_Event *event) {
45
46
return 0 ;
46
47
}
47
48
48
- void one () {
49
- #ifndef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
49
+ void pump_events () {
50
50
SDL_Event event ;
51
51
while (SDL_PollEvent (& event )) {
52
52
EventHandler (0 , & event );
53
53
}
54
- #endif
55
54
}
56
55
57
56
int main (int argc , char * * argv ) {
@@ -61,12 +60,6 @@ int main(int argc, char **argv) {
61
60
SDL_WINDOWPOS_CENTERED , SDL_WINDOWPOS_CENTERED ,
62
61
640 , 480 , 0 );
63
62
64
- #ifdef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER
65
- emscripten_SDL_SetEventHandler (EventHandler , 0 );
66
- #else
67
- one ();
68
- #endif
69
-
70
63
SDL_StartTextInput ();
71
64
72
65
emscripten_run_script ("keydown(38);keyup(38)" ); // up
@@ -77,7 +70,7 @@ int main(int argc, char **argv) {
77
70
emscripten_run_script ("keydown(66);keyup(66);" ); // b
78
71
emscripten_run_script ("keydown(100);keyup(100);" ); // trigger the end
79
72
80
- emscripten_exit_with_live_runtime ( );
73
+ emscripten_set_main_loop ( pump_events , 3 , 0 );
81
74
return 99 ;
82
75
}
83
76
0 commit comments