Improve testgles2 exit behavior (useful on Android)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
diff --git a/test/testgles2.c b/test/testgles2.c
index 6e99827..ef9f38d 100644
--- a/test/testgles2.c
+++ b/test/testgles2.c
@@ -629,7 +629,7 @@ main(int argc, char *argv[])
while (!done) {
/* Check for events */
++frames;
- while (SDL_PollEvent(&event)) {
+ while (SDL_PollEvent(&event) && !done) {
switch (event.type) {
case SDL_WINDOWEVENT:
switch (event.window.event) {
@@ -654,16 +654,18 @@ main(int argc, char *argv[])
}
SDLTest_CommonEvent(state, &event, &done);
}
- for (i = 0; i < state->num_windows; ++i) {
- status = SDL_GL_MakeCurrent(state->windows[i], context[i]);
- if (status) {
- SDL_Log("SDL_GL_MakeCurrent(): %s\n", SDL_GetError());
-
- /* Continue for next window */
- continue;
- }
- Render(state->window_w, state->window_h, &datas[i]);
- SDL_GL_SwapWindow(state->windows[i]);
+ if (!done) {
+ for (i = 0; i < state->num_windows; ++i) {
+ status = SDL_GL_MakeCurrent(state->windows[i], context[i]);
+ if (status) {
+ SDL_Log("SDL_GL_MakeCurrent(): %s\n", SDL_GetError());
+
+ /* Continue for next window */
+ continue;
+ }
+ Render(state->window_w, state->window_h, &datas[i]);
+ SDL_GL_SwapWindow(state->windows[i]);
+ }
}
}