Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Objective
Fixes #3493.
The issue was that
extracted_uinode.rect
is scaled according to the window's scale factor whenextracted_uinode.atlas_size
isNone
, but it's not scaled whenextracted_uinode.atlas_size
isSome
.Solution
I changed one condition to avoid relying on
extracted_uinode.rect
, extracted the window's scale factor into the render app, and applied it as necessary when calculating the clipped UVs.To be honest, I can't properly explain why it works this way, and I'm not confident I covered all cases. In #3460, the similar fields
extracted_sprite.rect
andextracted_sprite.atlas_size
are changed to cleanly separate what affects position/size and what affects UVs. I hope to port to UI the sprite improvements of that PR after it's accepted, but meanwhile this smaller PR can fix the issue.