video: Make the mode switching function a NOP if mode switching is disabled Instead of wrapping individual calls to SDL_SetDisplayModeForDisplay(), just check the flag in the function itself and make it a NOP that cannot fail if the flag is set. Silences some errant "SDL video driver doesn't support changing display mode" log errors.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index b4f3c1e..3f4cfd7 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1030,6 +1030,11 @@ SDL_SetDisplayModeForDisplay(SDL_VideoDisplay * display, const SDL_DisplayMode *
SDL_DisplayMode current_mode;
int result;
+ /* Mode switching disabled via driver quirk flag, nothing to do and cannot fail. */
+ if (DisableDisplayModeSwitching(_this)) {
+ return 0;
+ }
+
if (mode) {
display_mode = *mode;
@@ -1430,17 +1435,14 @@ SDL_UpdateFullscreenMode(SDL_Window * window, SDL_bool fullscreen)
resized = SDL_FALSE;
}
- /* Don't try to change the display mode if the driver doesn't want it. */
- if (DisableDisplayModeSwitching(_this) == SDL_FALSE) {
- /* only do the mode change if we want exclusive fullscreen */
- if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
- if (SDL_SetDisplayModeForDisplay(display, &fullscreen_mode) < 0) {
- return -1;
- }
- } else {
- if (SDL_SetDisplayModeForDisplay(display, NULL) < 0) {
- return -1;
- }
+ /* only do the mode change if we want exclusive fullscreen */
+ if ((window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) != SDL_WINDOW_FULLSCREEN_DESKTOP) {
+ if (SDL_SetDisplayModeForDisplay(display, &fullscreen_mode) < 0) {
+ return -1;
+ }
+ } else {
+ if (SDL_SetDisplayModeForDisplay(display, NULL) < 0) {
+ return -1;
}
}