Просмотр исходного кода

Fix switching modes on RISC OS

(cherry picked from commit 7071efb6a3a4b3a63d6a1a46516d846ae088ee2c)
Cameron Cawley 1 день назад
Родитель
Сommit
08c33bb861
2 измененных файлов с 5 добавлено и 1 удалено
  1. 4 0
      src/video/SDL_video.c
  2. 1 1
      src/video/riscos/SDL_riscosmodes.c

+ 4 - 0
src/video/SDL_video.c

@@ -1529,9 +1529,13 @@ bool SDL_SetDisplayModeForDisplay(SDL_VideoDisplay *display, SDL_DisplayMode *mo
         mode = &display->desktop_mode;
     }
 
+    // On RISC OS, it's necessary to switch from the desktop to single-tasking
+    // fullscreen so that it can handle switching back to the desktop correctly.
+#ifndef SDL_PLATFORM_RISCOS
     if (mode == display->current_mode) {
         return true;
     }
+#endif
 
     // Actually change the display mode
     if (_this->SetDisplayMode) {

+ 1 - 1
src/video/riscos/SDL_riscosmodes.c

@@ -96,7 +96,7 @@ static size_t measure_mode_block(const int *block)
     return blockSize * 4;
 }
 
-static bool read_mode_variable(int *block, int var)
+static int read_mode_variable(int *block, int var)
 {
     _kernel_swi_regs regs;
     regs.r[0] = (int)block;