Kaynağa Gözat

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

Sam Lantinga 11 yıl önce
ebeveyn
işleme
9e90acdfcf
1 değiştirilmiş dosya ile 9 ekleme ve 1 silme
  1. 9 1
      src/test/SDL_test_common.c

+ 9 - 1
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;
                         }