# sdl2-compat: Set SDL2 default GL attribtue to 3320

**URL:** <https://discourse.libsdl.org/t/sdl2-compat-set-sdl2-default-gl-attribtue-to-3320/43157>\
**Category:** SDL Commits\
**Created:** [March 17, 2023, 8:22am UTC](https://discourse.libsdl.org/t/sdl2-compat-set-sdl2-default-gl-attribtue-to-3320/43157 "2023-03-17T08:22:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SDLPushPostBot](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/sdlpushpostbot/32/4370_2.png) [@SDLPushPostBot](https://discourse.libsdl.org/u/SDLPushPostBot)\
**Post date:** [March 17, 2023, 8:22am UTC](https://discourse.libsdl.org/t/sdl2-compat-set-sdl2-default-gl-attribtue-to-3320/43157/1 "2023-03-17T08:22:02Z")

</div>

> <https://github.com/libsdl-org/sdl2-compat/commit/a445d8b63aea6313431d1191b790b905bb663c84>

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

```
