The logical size set for a render target is temporary and shouldn't conflict with the logical size set for a window.

This commit is contained in:
Sam Lantinga 2012-10-12 02:56:41 -07:00
parent ea15505815
commit b1a587fdf7
2 changed files with 8 additions and 0 deletions

View file

@ -926,6 +926,8 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture)
/* Make a backup of the viewport */ /* Make a backup of the viewport */
renderer->viewport_backup = renderer->viewport; renderer->viewport_backup = renderer->viewport;
renderer->scale_backup = renderer->scale; renderer->scale_backup = renderer->scale;
renderer->logical_w_backup = renderer->logical_w;
renderer->logical_h_backup = renderer->logical_h;
} }
renderer->target = texture; renderer->target = texture;
@ -940,9 +942,13 @@ SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture)
renderer->viewport.h = texture->h; renderer->viewport.h = texture->h;
renderer->scale.x = 1.0f; renderer->scale.x = 1.0f;
renderer->scale.y = 1.0f; renderer->scale.y = 1.0f;
renderer->logical_w = 0;
renderer->logical_h = 0;
} else { } else {
renderer->viewport = renderer->viewport_backup; renderer->viewport = renderer->viewport_backup;
renderer->scale = renderer->scale_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) { if (renderer->UpdateViewport(renderer) < 0) {
return -1; return -1;

View file

@ -126,6 +126,8 @@ struct SDL_Renderer
/* The logical resolution for rendering */ /* The logical resolution for rendering */
int logical_w; int logical_w;
int logical_h; int logical_h;
int logical_w_backup;
int logical_h_backup;
/* The drawable area within the window */ /* The drawable area within the window */
SDL_Rect viewport; SDL_Rect viewport;