From 8f4c5e15f1f6d3a0886f2be78e8555f42fa7e455 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 20 Feb 2025 08:49:47 -0800 Subject: [PATCH] Finish any drawing when destroying a software renderer Fixes the SDL3 version of https://github.com/libsdl-org/sdl2-compat/issues/373 --- src/render/SDL_render.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 33cc29fa5f..47470d1cff 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -5214,7 +5214,12 @@ void SDL_DestroyRendererWithoutFreeing(SDL_Renderer *renderer) SDL_RemoveWindowRenderer(renderer->window, renderer); } - SDL_DiscardAllCommands(renderer); + if (renderer->software) { + // Make sure all drawing to a surface is complete + FlushRenderCommands(renderer); + } else { + SDL_DiscardAllCommands(renderer); + } if (renderer->debug_char_texture_atlas) { SDL_DestroyTexture(renderer->debug_char_texture_atlas);