Revert changeset 14590 544ac819e8b3 , does not fully fix

This commit is contained in:
Sylvain Becker 2020-12-28 18:17:25 +01:00
parent 9efdafd43d
commit 5dabc4d72f
1 changed files with 9 additions and 10 deletions

View File

@ -2999,25 +2999,24 @@ SDL_RenderCopyF(SDL_Renderer * renderer, SDL_Texture * texture,
SDL_RenderGetViewport(renderer, &r); SDL_RenderGetViewport(renderer, &r);
real_dstrect.x = 0.0f; real_dstrect.x = 0.0f;
real_dstrect.y = 0.0f; real_dstrect.y = 0.0f;
real_dstrect.w = (float) r.w * renderer->scale.x; real_dstrect.w = (float) r.w;
real_dstrect.h = (float) r.h * renderer->scale.y; real_dstrect.h = (float) r.h;
if (dstrect) { if (dstrect) {
SDL_FRect dstrect_scaled; if (!SDL_HasIntersectionF(dstrect, &real_dstrect)) {
dstrect_scaled.x = dstrect->x * renderer->scale.x;
dstrect_scaled.y = dstrect->y * renderer->scale.y;
dstrect_scaled.w = dstrect->w * renderer->scale.x;
dstrect_scaled.h = dstrect->h * renderer->scale.y;
if (!SDL_HasIntersectionF(&dstrect_scaled, &real_dstrect)) {
return 0; return 0;
} }
real_dstrect = dstrect_scaled; real_dstrect = *dstrect;
} }
if (texture->native) { if (texture->native) {
texture = texture->native; texture = texture->native;
} }
real_dstrect.x *= renderer->scale.x;
real_dstrect.y *= renderer->scale.y;
real_dstrect.w *= renderer->scale.x;
real_dstrect.h *= renderer->scale.y;
texture->last_command_generation = renderer->render_command_generation; texture->last_command_generation = renderer->render_command_generation;
retval = QueueCmdCopy(renderer, texture, &real_srcrect, &real_dstrect); retval = QueueCmdCopy(renderer, texture, &real_srcrect, &real_dstrect);