Explorar o código

Make sure the current resolution is in the fullscreen mode list

Custom resolutions don't enumerate normally, but make sure the current resolution is in the mode list.

Fixes https://github.com/libsdl-org/SDL/issues/11551

(cherry picked from commit b1c2dd8433ff1c0acec21db998dc85615d96a6db)
Sam Lantinga hai 8 meses
pai
achega
d69f658835
Modificáronse 1 ficheiros con 2 adicións e 1 borrados
  1. 2 1
      src/video/windows/SDL_windowsmodes.c

+ 2 - 1
src/video/windows/SDL_windowsmodes.c

@@ -770,7 +770,8 @@ bool WIN_GetDisplayModes(SDL_VideoDevice *_this, SDL_VideoDisplay *display)
 
 
     dxgi_output = WIN_GetDXGIOutput(_this, data->DeviceName);
     dxgi_output = WIN_GetDXGIOutput(_this, data->DeviceName);
 
 
-    for (i = 0;; ++i) {
+    // Make sure we add the current mode to the list in case it's a custom mode that doesn't enumerate
+    for (i = ENUM_CURRENT_SETTINGS; ; ++i) {
         if (!WIN_GetDisplayMode(_this, dxgi_output, data->MonitorHandle, data->DeviceName, i, &mode, NULL, NULL)) {
         if (!WIN_GetDisplayMode(_this, dxgi_output, data->MonitorHandle, data->DeviceName, i, &mode, NULL, NULL)) {
             break;
             break;
         }
         }