sdl2-compat: Set SDL2 default GL attribtue to 3320

From a445d8b63aea6313431d1191b790b905bb663c84 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Fri, 17 Mar 2023 09:18:32 +0100
Subject: [PATCH] Set SDL2 default GL attribtue to 3320

---
 src/sdl2_compat.c | 49 ++++++++++++++++++++++++++++++++++++++++++++---
 src/sdl3_syms.h   |  4 ++--
 2 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/src/sdl2_compat.c b/src/sdl2_compat.c
index cb220e3..e33ac6a 100644
--- a/src/sdl2_compat.c
+++ b/src/sdl2_compat.c
@@ -3198,7 +3198,7 @@ SDL_AudioInit(const char *driver_name)
     if (driver_name) {
         SDL3_SetHint("SDL_AUDIO_DRIVER", driver_name);
     }
-    return SDL_InitSubSystem(SDL_INIT_AUDIO);
+    return SDL3_InitSubSystem(SDL_INIT_AUDIO);
 }
 
 DECLSPEC void SDLCALL
@@ -3210,10 +3210,20 @@ SDL_AudioQuit(void)
 DECLSPEC int SDLCALL
 SDL_VideoInit(const char *driver_name)
 {
+    int ret;
     if (driver_name) {
         SDL3_SetHint("SDL_VIDEO_DRIVER", driver_name);
     }
-    return SDL_InitSubSystem(SDL_INIT_VIDEO);
+
+    ret = SDL3_InitSubSystem(SDL_INIT_VIDEO);
+        
+    /* default SDL2 GL attributes */
+    SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 3);
+    SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 3);
+    SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 2);
+    SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
+
+    return ret;
 }
 
 DECLSPEC void SDLCALL
@@ -3222,6 +3232,39 @@ SDL_VideoQuit(void)
     SDL_QuitSubSystem(SDL_INIT_VIDEO);
 }
 
+DECLSPEC int SDLCALL
+SDL_Init(Uint32 flags)
+{
+    int ret;
+
+    ret = SDL3_Init(flags);
+    if (flags & SDL_INIT_VIDEO) {
+        /* default SDL2 GL attributes */
+        SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 3);
+        SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 3);
+        SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 2);
+        SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
+    }
+
+    return ret;
+}
+
+DECLSPEC int SDLCALL
+SDL_InitSubSystem(Uint32 flags)
+{
+    int ret;
+
+    ret = SDL3_InitSubSystem(flags);
+    if (flags & SDL_INIT_VIDEO) {
+        /* default SDL2 GL attributes */
+        SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 3);
+        SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 3);
+        SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 2);
+        SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
+    }
+    return ret;
+}
+
 DECLSPEC int SDLCALL
 SDL_GL_GetSwapInterval(void)
 {
@@ -3262,7 +3305,7 @@ SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained)
 
     /* Start up the audio driver, if necessary. This is legacy behaviour! */
     if (!SDL_WasInit(SDL_INIT_AUDIO)) {
-        if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) {
+        if (SDL3_InitSubSystem(SDL_INIT_AUDIO) < 0) {
             return -1;
         }
     }
diff --git a/src/sdl3_syms.h b/src/sdl3_syms.h
index a866edd..aad9858 100644
--- a/src/sdl3_syms.h
+++ b/src/sdl3_syms.h
@@ -78,8 +78,8 @@ SDL3_SYM(int,AndroidGetExternalStorageState,(Uint32 *a),(a),return)
 SDL3_SYM_PASSTHROUGH(const char*,AndroidGetExternalStoragePath,(void),(),return)
 #endif
 
-SDL3_SYM_PASSTHROUGH(int,Init,(Uint32 a),(a),return)
-SDL3_SYM_PASSTHROUGH(int,InitSubSystem,(Uint32 a),(a),return)
+SDL3_SYM(int,Init,(Uint32 a),(a),return)
+SDL3_SYM(int,InitSubSystem,(Uint32 a),(a),return)
 SDL3_SYM_PASSTHROUGH(void,QuitSubSystem,(Uint32 a),(a),)
 SDL3_SYM_PASSTHROUGH(Uint32,WasInit,(Uint32 a),(a),return)
 SDL3_SYM_PASSTHROUGH(void,Quit,(void),(),)