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:
1 parent
debbe1cf75
commit
5d20bbf348
2 files changed
+3
-9
No files matched your search
@@ -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