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);