render: Make sure logical_target is bound when presenting.

Fixes black screen on macOS.

Fixes #7320.
This commit is contained in:
Ryan C. Gordon
2023-03-08 22:55:44 -05:00
parent b8bc4a234b
commit d898dbfe50

View File

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