-
Notifications
You must be signed in to change notification settings - Fork 6k
render BackdropFilter layers directly to DisplayListBuilder #34146
render BackdropFilter layers directly to DisplayListBuilder #34146
Conversation
|
I've found at least one bug while writing a more specific test case. Working on expanding the test cases to check for more bugs. (For those wondering, one if the negative value tests in the abs_finite() method didn't negate the value upon discovery.) |
knopp
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The diff part looks good to me.
| // return a pointer to it with the result filled in, or it will return a | ||
| // nullptr if it cannot determine the results. | ||
| // return a pointer to it with the result filled in, or it will set it to | ||
| // a copy of the |output_bounds| and return a nullptr if it cannot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|output_bounds| -> |input_bounds|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
| // return a pointer to it with the result filled in, or it will return a | ||
| // nullptr if it cannot determine the results. | ||
| // return a pointer to it with the result filled in, or it will set it to | ||
| // a copy of the |output_bounds| and return a nullptr if it cannot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|output_bounds| -> |input_bounds|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
|
I filed flutter/flutter#106587 to improve the bounds under a perspective transform. Until then, the bounds calculations in DlImageFilter should be at least as "correct" as those computed by the associated Skia objects. |
|
Now that the bounds computations are updated (fixed), this PR is no longer a WIP and is ready for final review. |
|
Now fixes flutter/flutter#106587 |
The Impeller code to render backdrop filters was hampered by the fact that we rendered them through calls to a Skia recorder which obfuscated the type of filter. This change will render the filters/saveLayers directly to the underlying DisplayListBuilder when using Impeller.