SDL: Destroy the window surface if we've created it for the software renderer

From 521bbcc15e8ccc541a14e870159345ff616db90c Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 7 Nov 2023 21:44:18 -0800
Subject: [PATCH] Destroy the window surface if we've created it for the
 software renderer

Fixes https://github.com/libsdl-org/SDL/issues/8011
---
 src/render/software/SDL_render_sw.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c
index 762680f219a7..24e15c3e34b8 100644
--- a/src/render/software/SDL_render_sw.c
+++ b/src/render/software/SDL_render_sw.c
@@ -990,8 +990,12 @@ static void SW_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture)
 
 static void SW_DestroyRenderer(SDL_Renderer *renderer)
 {
+    SDL_Window *window = renderer->window;
     SW_RenderData *data = (SW_RenderData *)renderer->driverdata;
 
+    if (window) {
+        SDL_DestroyWindowSurface(window);
+    }
     SDL_free(data);
     SDL_free(renderer);
 }
@@ -1140,8 +1144,6 @@ SDL_Renderer *SW_CreateRendererForSurface(SDL_Surface *surface)
 
     SW_SelectBestFormats(renderer, surface->format->format);
 
-    SW_ActivateRenderer(renderer);
-
     return renderer;
 }