diff options
author | Galia Peycheva <galinap@google.com> | 2021-07-01 14:38:32 +0200 |
---|---|---|
committer | Galia Peycheva <galinap@google.com> | 2021-07-13 18:15:39 +0200 |
commit | 5e921389e2321a339ca3c71946937e21b755709b (patch) | |
tree | e98307b5b5dd63b58ba38c9db1a089bc18c17d7a | |
parent | b058a604011ab7f98513345cbd4fb9573065c959 (diff) | |
download | native-5e921389e2321a339ca3c71946937e21b755709b.tar.gz |
Fix SF blur to be as blurry as Gaussian blur
The current SF blur is using an approximation of Gaussian blur. The
blur radius has to be 3.2 times higher in order the create the same
effect that Gaussian blur would.
This CL corrects that, making the SF blur as blurry as a Gaussian blur.
This way, the effect that a certain blur radius creates with Android
cross-window blur resembles closely what Gaussian blur would do with the
same radius.
This also aligns the effect created by in-app blurs and cross-app
blurs with the same blur radius.
Bug: 192241610
Test: atest BlurTests
Test: manual, comparing in-app blur and cross-app blur
Change-Id: I5fe428ddf01dbe3d2bd6df18957165588848235e
-rw-r--r-- | libs/renderengine/skia/filters/BlurFilter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/renderengine/skia/filters/BlurFilter.cpp b/libs/renderengine/skia/filters/BlurFilter.cpp index 4ad6e94edf..7c5bee9450 100644 --- a/libs/renderengine/skia/filters/BlurFilter.cpp +++ b/libs/renderengine/skia/filters/BlurFilter.cpp @@ -81,7 +81,7 @@ sk_sp<SkImage> BlurFilter::generate(GrRecordingContext* context, const uint32_t // Kawase is an approximation of Gaussian, but it behaves differently from it. // A radius transformation is required for approximating them, and also to introduce // non-integer steps, necessary to smoothly interpolate large radii. - float tmpRadius = (float)blurRadius / 6.0f; + float tmpRadius = (float)blurRadius / 2.0f; float numberOfPasses = std::min(kMaxPasses, (uint32_t)ceil(tmpRadius)); float radiusByPasses = tmpRadius / (float)numberOfPasses; |