Fix rendering transform of Y-sorted branch-root #90749
Merged
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.
Fixes #90739.
When Y-sorting a branch like:
it is flattened like:
where
B_copy
,C
,D
are ordered/sorted according to their Y position withinB
's coordinate space.The issue was
B_copy.ysort_xform
was set to inverse ofB
's final transform, henceB_copy
would always end up being rendered atB
'sxform_curr
as the whole final transform would be cancelled out (and because inRendererCanvasCull::_cull_canvas_item
called forB_copy
theB
'sxform_curr
would be applied again). What needs to be cancelled out is onlyB
'sxform_curr
.