SDL: render: Make sure logical_target is bound when presenting.

From d898dbfe502a12fdfa9c7b4b9dad313b04d5c3bc Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Wed, 8 Mar 2023 22:55:44 -0500
Subject: [PATCH] render: Make sure logical_target is bound when presenting.

Fixes black screen on macOS.

Fixes #7320.
---
 src/render/SDL_render.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c
index 166ab0dbc94a..5c2fe45316c0 100644
--- a/src/render/SDL_render.c
+++ b/src/render/SDL_render.c
@@ -4011,7 +4011,6 @@ int SDL_RenderPresent(SDL_Renderer *renderer)
         SDL_SetRenderScale(renderer, 1.0f, 1.0f);
         SDL_RenderLogicalBorders(renderer);
         SDL_RenderTexture(renderer, renderer->logical_target, &renderer->logical_src_rect, &renderer->logical_dst_rect);
-        SDL_SetRenderTargetInternal(renderer, renderer->logical_target);
     }
 
     FlushRenderCommands(renderer); /* time to send everything to the GPU! */
@@ -4026,6 +4025,10 @@ int SDL_RenderPresent(SDL_Renderer *renderer)
         presented = SDL_FALSE;
     }
 
+    if (renderer->logical_target) {
+        SDL_SetRenderTargetInternal(renderer, renderer->logical_target);
+    }
+
     if (renderer->simulate_vsync ||
         (!presented && renderer->wanted_vsync)) {
         SDL_SimulateRenderVSync(renderer);