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);
}