From da762c2f051c05b6185272ad798d34ea97b3dff4 Mon Sep 17 00:00:00 2001 From: Ash Logan Date: Thu, 7 Mar 2019 21:59:49 +1100 Subject: [PATCH] video/wiiu: Add support for DRC/TV only windows (#1) --- src/render/wiiu/SDL_rpresent_wiiu.c | 21 ++++++++++++--------- src/video/wiiu/SDL_wiiuvideo.h | 7 +++++++ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/render/wiiu/SDL_rpresent_wiiu.c b/src/render/wiiu/SDL_rpresent_wiiu.c index 111dd3025..421abd30a 100644 --- a/src/render/wiiu/SDL_rpresent_wiiu.c +++ b/src/render/wiiu/SDL_rpresent_wiiu.c @@ -101,19 +101,22 @@ static void render_scene(SDL_Renderer * renderer) { void WIIU_SDL_RenderPresent(SDL_Renderer * renderer) { WIIU_RenderData *data = (WIIU_RenderData *) renderer->driverdata; - //SDL_Window *window = renderer->window; - - //GX2Flush(); + Uint32 flags = SDL_GetWindowFlags(renderer->window); WHBGfxBeginRender(); - WHBGfxBeginRenderTV(); - render_scene(renderer); - WHBGfxFinishRenderTV(); +/* Only render to TV if the window is *not* drc-only */ + if (!(flags & SDL_WINDOW_WIIU_GAMEPAD_ONLY)) { + WHBGfxBeginRenderTV(); + render_scene(renderer); + WHBGfxFinishRenderTV(); + } - WHBGfxBeginRenderDRC(); - render_scene(renderer); - WHBGfxFinishRenderDRC(); + if (!(flags & SDL_WINDOW_WIIU_TV_ONLY)) { + WHBGfxBeginRenderDRC(); + render_scene(renderer); + WHBGfxFinishRenderDRC(); + } WHBGfxFinishRender(); diff --git a/src/video/wiiu/SDL_wiiuvideo.h b/src/video/wiiu/SDL_wiiuvideo.h index bf5e1a9f7..3cbf3df4c 100644 --- a/src/video/wiiu/SDL_wiiuvideo.h +++ b/src/video/wiiu/SDL_wiiuvideo.h @@ -35,4 +35,11 @@ typedef struct GX2Texture texture; } WIIU_WindowData; +typedef struct +{ + SDL_bool tv_window_exists; + SDL_bool drc_window_exists; + SDL_bool mirrored_window_exists; +} WIIU_VideoDeviceData; + #endif //SDL_wiiuvideo_h