From d898dbfe502a12fdfa9c7b4b9dad313b04d5c3bc Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" 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 166ab0dbc9..5c2fe45316 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);