From 0306a6731cf535ecd0b25d986aab5877302716a8 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 12 Oct 2012 02:56:41 -0700 Subject: [PATCH] The logical size set for a render target is temporary and shouldn't conflict with the logical size set for a window. --- src/render/SDL_render.c | 6 ++++++ src/render/SDL_sysrender.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 247db6ecc..01b4aa13b 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -926,6 +926,8 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) /* Make a backup of the viewport */ renderer->viewport_backup = renderer->viewport; renderer->scale_backup = renderer->scale; + renderer->logical_w_backup = renderer->logical_w; + renderer->logical_h_backup = renderer->logical_h; } renderer->target = texture; @@ -940,9 +942,13 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) renderer->viewport.h = texture->h; renderer->scale.x = 1.0f; renderer->scale.y = 1.0f; + renderer->logical_w = 0; + renderer->logical_h = 0; } else { renderer->viewport = renderer->viewport_backup; renderer->scale = renderer->scale_backup; + renderer->logical_w = renderer->logical_w_backup; + renderer->logical_h = renderer->logical_h_backup; } if (renderer->UpdateViewport(renderer) < 0) { return -1; diff --git a/src/render/SDL_sysrender.h b/src/render/SDL_sysrender.h index e3c99d3c9..dff297f5e 100644 --- a/src/render/SDL_sysrender.h +++ b/src/render/SDL_sysrender.h @@ -126,6 +126,8 @@ struct SDL_Renderer /* The logical resolution for rendering */ int logical_w; int logical_h; + int logical_w_backup; + int logical_h_backup; /* The drawable area within the window */ SDL_Rect viewport;