diff --git a/include/SDL_video.h b/include/SDL_video.h index a0e4039419492..e6efb7ab0ea1c 100644 --- a/include/SDL_video.h +++ b/include/SDL_video.h @@ -126,6 +126,7 @@ typedef enum SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000, /**< window has grabbed keyboard input */ SDL_WINDOW_WIIU_GAMEPAD_ONLY = 0x01000000, /**< Wii U: window must be drawn only on the Gamepad */ SDL_WINDOW_WIIU_TV_ONLY = 0x02000000, /**< Wii U: window must be drawn only on the TV */ + SDL_WINDOW_WIIU_PREVENT_SWAP = 0x04000000, /**< Wii U: window will not swap scanbuffers on present */ SDL_WINDOW_VULKAN = 0x10000000, /**< window usable for Vulkan surface */ SDL_WINDOW_METAL = 0x20000000, /**< window usable for Metal view */ diff --git a/src/render/wiiu/SDL_rpresent_wiiu.c b/src/render/wiiu/SDL_rpresent_wiiu.c index c0ac7a1cc5b8a..29403fcc3ad54 100644 --- a/src/render/wiiu/SDL_rpresent_wiiu.c +++ b/src/render/wiiu/SDL_rpresent_wiiu.c @@ -63,8 +63,11 @@ int WIIU_SDL_RenderPresent(SDL_Renderer * renderer) GX2CopyColorBufferToScanBuffer(&tdata->cbuf, GX2_SCAN_TARGET_DRC); } - /* Swap buffers */ - GX2SwapScanBuffers(); + /* Swap buffers if the window doesn't prevent it */ + if (!(flags & SDL_WINDOW_WIIU_PREVENT_SWAP)) { + GX2SwapScanBuffers(); + } + GX2Flush(); /* Restore SDL context state */ diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 929fd231a62a1..701327b4b3d6a 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1517,7 +1517,7 @@ static int SDL_UpdateFullscreenMode(SDL_Window *window, SDL_bool fullscreen) } #define CREATE_FLAGS \ - (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_ALWAYS_ON_TOP | SDL_WINDOW_SKIP_TASKBAR | SDL_WINDOW_POPUP_MENU | SDL_WINDOW_UTILITY | SDL_WINDOW_TOOLTIP | SDL_WINDOW_VULKAN | SDL_WINDOW_MINIMIZED | SDL_WINDOW_METAL | SDL_WINDOW_WIIU_GAMEPAD_ONLY | SDL_WINDOW_WIIU_TV_ONLY) + (SDL_WINDOW_OPENGL | SDL_WINDOW_BORDERLESS | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_ALWAYS_ON_TOP | SDL_WINDOW_SKIP_TASKBAR | SDL_WINDOW_POPUP_MENU | SDL_WINDOW_UTILITY | SDL_WINDOW_TOOLTIP | SDL_WINDOW_VULKAN | SDL_WINDOW_MINIMIZED | SDL_WINDOW_METAL | SDL_WINDOW_WIIU_GAMEPAD_ONLY | SDL_WINDOW_WIIU_TV_ONLY | SDL_WINDOW_WIIU_PREVENT_SWAP) static SDL_INLINE SDL_bool IsAcceptingDragAndDrop(void) {