sdl: try to reduce init mode changes yet more
authornotaz <notasas@gmail.com>
Fri, 23 May 2025 19:32:43 +0000 (22:32 +0300)
committeririxxxx <31696370+irixxxx@users.noreply.github.com>
Sun, 25 May 2025 20:52:34 +0000 (22:52 +0200)
plat_sdl.c

index a9a56e8..031e162 100644 (file)
@@ -255,15 +255,15 @@ int plat_sdl_init(void)
       g_menuscreen_h = h;
   }
 
-  plat_sdl_screen = SDL_SetVideoMode(g_menuscreen_w, g_menuscreen_h, 16,
+  plat_sdl_screen = SDL_SetVideoMode(g_menuscreen_w, g_menuscreen_h, 0,
       (flags = get_screen_flags()));
   if (plat_sdl_screen == NULL) {
     fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
-    plat_sdl_screen = SDL_SetVideoMode(0, 0, 16, (flags = get_screen_flags()));
+    plat_sdl_screen = SDL_SetVideoMode(0, 0, 0, (flags = get_screen_flags()));
     if (plat_sdl_screen == NULL) {
       fprintf(stderr, "attempting SDL_SWSURFACE fallback\n");
       screen_flags = SDL_SWSURFACE;
-      plat_sdl_screen = SDL_SetVideoMode(0, 0, 16, (flags = get_screen_flags()));
+      plat_sdl_screen = SDL_SetVideoMode(0, 0, 0, (flags = get_screen_flags()));
       if (plat_sdl_screen == NULL) {
         fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
         goto fail;
@@ -279,14 +279,6 @@ int plat_sdl_init(void)
   g_menuscreen_w = plat_sdl_screen->w;
   g_menuscreen_h = plat_sdl_screen->h;
   g_menuscreen_pp = g_menuscreen_w;
-
-  // overlay/gl require native bpp in some cases...
-  plat_sdl_screen = SDL_SetVideoMode(g_menuscreen_w, g_menuscreen_h,
-    0, (flags = get_screen_flags()));
-  if (plat_sdl_screen == NULL) {
-    fprintf(stderr, "SDL_SetVideoMode failed: %s\n", SDL_GetError());
-    goto fail;
-  }
   screen_flags = flags;
   window_w = plat_sdl_screen->w;
   window_h = plat_sdl_screen->h;
@@ -298,6 +290,7 @@ int plat_sdl_init(void)
       plat_sdl_overlay->format, plat_sdl_overlay->planes, *plat_sdl_overlay->pitches,
       plat_sdl_overlay->hw_overlay);
 
+    // some platforms require "native" bpp for this to work
     if (plat_sdl_overlay->hw_overlay)
       overlay_works = 1;
     else