mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-10-17 15:21:43 +00:00
render: SDL_RenderPresent now behaves when a render target is currently set.
It'll temporarily unbind it, draw letterboxing if necessary, present, and then rebind the previous render target.
This commit is contained in:
@@ -4949,9 +4949,9 @@ bool SDL_RenderPresent(SDL_Renderer *renderer)
|
||||
|
||||
CHECK_RENDERER_MAGIC(renderer, false);
|
||||
|
||||
// !!! FIXME: fail if using a render target? Or just implicitly set the render target to NULL now?
|
||||
if (renderer->view != &renderer->main_view) {
|
||||
return SDL_SetError("Cannot present a render target");
|
||||
SDL_Texture *target = renderer->target;
|
||||
if (target) {
|
||||
SDL_SetRenderTarget(renderer, NULL);
|
||||
}
|
||||
|
||||
SDL_RenderLogicalPresentation(renderer);
|
||||
@@ -4972,6 +4972,10 @@ 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