sdl2-compat: init: Quit before reinitializing in SDL_(Audio|Video)Init

From 4a8b71811eece362b94c82b5b79e994b191574df Mon Sep 17 00:00:00 2001
From: Cameron Gutman <[EMAIL REDACTED]>
Date: Thu, 27 Feb 2025 19:20:56 -0600
Subject: [PATCH] init: Quit before reinitializing in SDL_(Audio|Video)Init

---
 src/sdl2_compat.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/sdl2_compat.c b/src/sdl2_compat.c
index 8ba2e9b..ed6a5f2 100644
--- a/src/sdl2_compat.c
+++ b/src/sdl2_compat.c
@@ -6183,6 +6183,11 @@ SDL_AudioInit(const char *driver_name)
 {
     SynchronizeEnvironmentVariables();
 
+    if (SDL3_GetCurrentAudioDriver()) {
+        /* Shutdown the current driver before starting again */
+        SDL_AudioQuit();
+    }
+
     if (driver_name) {
         SDL3_SetHintWithPriority(SDL_HINT_AUDIO_DRIVER, driver_name, SDL_HINT_OVERRIDE);
     }
@@ -6394,6 +6399,11 @@ SDL_VideoInit(const char *driver_name)
 {
     SynchronizeEnvironmentVariables();
 
+    if (SDL3_GetCurrentVideoDriver()) {
+        /* Shutdown the current driver before starting again */
+        SDL_VideoQuit();
+    }
+
     if (driver_name) {
         SDL3_SetHintWithPriority(SDL_HINT_VIDEO_DRIVER, driver_name, SDL_HINT_OVERRIDE);
     }