Make sure you clean up the associated renderer when destroying a window.

This commit is contained in:
Sam Lantinga 2014-01-18 11:47:03 -08:00
parent 129640af7a
commit 9e90acdfcf
1 changed files with 9 additions and 1 deletions

View File

@ -1281,9 +1281,17 @@ SDLTest_CommonEvent(SDLTest_CommonState * state, SDL_Event * event, int *done)
{ {
SDL_Window *window = SDL_GetWindowFromID(event->window.windowID); SDL_Window *window = SDL_GetWindowFromID(event->window.windowID);
if (window) { if (window) {
SDL_DestroyWindow(window);
for (i = 0; i < state->num_windows; ++i) { for (i = 0; i < state->num_windows; ++i) {
if (window == state->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; state->windows[i] = NULL;
break; break;
} }