Browse Source

haiku: update modelist logic

erysdren 2 months ago
parent
commit
dc6775ae0b
1 changed files with 12 additions and 8 deletions
  1. 12 8
      src/video/haiku/SDL_bmodes.cc

+ 12 - 8
src/video/haiku/SDL_bmodes.cc

@@ -243,22 +243,26 @@ bool HAIKU_GetDisplayModes(SDL_VideoDevice *_this, SDL_VideoDisplay *display)
     display_mode this_bmode;
     display_mode this_bmode;
     display_mode *bmodes;
     display_mode *bmodes;
     uint32 count, i;
     uint32 count, i;
+    bool r = false;
 
 
     // Get graphics-hardware supported modes
     // Get graphics-hardware supported modes
-    if (bscreen.GetModeList(&bmodes, &count) == B_OK && bscreen.GetMode(&this_bmode) == B_OK)
+    if (bscreen.GetModeList(&bmodes, &count) == B_OK)
     {
     {
-        for (i = 0; i < count; ++i) {
-            // FIXME: Apparently there are errors with colorspace changes
-            if (bmodes[i].space == this_bmode.space) {
-                _BDisplayModeToSdlDisplayMode(&bmodes[i], &mode);
-                SDL_AddFullscreenDisplayMode(display, &mode);
+        if (bscreen.GetMode(&this_bmode) == B_OK)
+        {
+            for (i = 0; i < count; ++i) {
+                // FIXME: Apparently there are errors with colorspace changes
+                if (bmodes[i].space == this_bmode.space) {
+                    _BDisplayModeToSdlDisplayMode(&bmodes[i], &mode);
+                    SDL_AddFullscreenDisplayMode(display, &mode);
+                }
             }
             }
+            r = true;
         }
         }
         free(bmodes); // This should NOT be SDL_free()
         free(bmodes); // This should NOT be SDL_free()
-        return true;
     }
     }
 
 
-    return false;
+    return r;
 }
 }