mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-25 20:48:29 +00:00
Presenting while drawing to a render target should fail.
People are adding present calls while rendering to render targets, not understanding that this doesn't make sense, and wondering why they get flicker on some systems. If there are programs that relied on the previous behavior we can add a hint to control this. Fixes https://github.com/libsdl-org/SDL/issues/12432
This commit is contained in:
@@ -5276,9 +5276,8 @@ bool SDL_RenderPresent(SDL_Renderer *renderer)
|
||||
|
||||
CHECK_RENDERER_MAGIC(renderer, false);
|
||||
|
||||
SDL_Texture *target = renderer->target;
|
||||
if (target) {
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
if (renderer->target) {
|
||||
return SDL_SetError("You can't present on a render target");
|
||||
}
|
||||
|
||||
SDL_RenderLogicalPresentation(renderer);
|
||||
@@ -5299,10 +5298,6 @@ bool SDL_RenderPresent(SDL_Renderer *renderer)
|
||||
presented = false;
|
||||
}
|
||||
|
||||
if (target) {
|
||||
SDL_SetRenderTarget(renderer, target);
|
||||
}
|
||||
|
||||
if (renderer->simulate_vsync ||
|
||||
(!presented && renderer->wanted_vsync)) {
|
||||
SDL_SimulateRenderVSync(renderer);
|
||||
|
Reference in New Issue
Block a user