gaaclarke 12ccf1ee1c [Impeller] moved blur to unrotated local space, started respecting respect_ctm flag (flutter/engine#53377)
Resolves https://github.com/flutter/flutter/issues/142014
Resolves https://github.com/flutter/flutter/issues/150114

A previous patch made the blur operate in source space. This doesn't
work for text since it jumbles up the characters. We probably want the
text crisp when scaled anyways so it would make sense not to render
those is source space. Instead I moved the blur to "scaled source space"
or "unrotated local space", if you will.

This is more closely what we had previously but it handles rotation
correctly.

Also, brandon fixed a problem where we weren't minding a flag on how the
ctm should be used when rendering mask blurs. That was important to this
fix too.

## new golden results before patch
<img width="966" alt="Screenshot 2024-06-13 at 3 32 29 PM"
src="https://github.com/flutter/engine/assets/30870216/097ef2d3-26a6-45fc-b1a5-e0b699d31dfd">

<img width="962" alt="Screenshot 2024-06-13 at 3 32 36 PM"
src="https://github.com/flutter/engine/assets/30870216/3b6c03fd-bf88-47eb-a0eb-c362dcaecd63">

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat

---------

Co-authored-by: Brandon DeRosier <bdero@google.com>
2024-06-14 15:17:28 -07:00
..