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),(),)