Make sure you clean up the associated renderer when destroying a window.
diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c
index 38b093a..f07a0c0 100644
--- a/src/test/SDL_test_common.c
+++ b/src/test/SDL_test_common.c
@@ -1281,9 +1281,17 @@ SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done)
{
SDL_Window *window = SDL_GetWindowFromID(event->window.windowID);
if (window) {
- SDL_DestroyWindow(window);
for (i = 0; i < state->num_windows; ++i) {
if (window == state->windows[i]) {
+ if (state->targets[i]) {
+ SDL_DestroyTexture(state->targets[i]);
+ state->targets[i] = NULL;
+ }
+ if (state->renderers[i]) {
+ SDL_DestroyRenderer(state->renderers[i]);
+ state->renderers[i] = NULL;
+ }
+ SDL_DestroyWindow(state->windows[i]);
state->windows[i] = NULL;
break;
}