summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalia Peycheva <galinap@google.com>2021-07-01 14:38:32 +0200
committerGalia Peycheva <galinap@google.com>2021-07-13 18:15:39 +0200
commit5e921389e2321a339ca3c71946937e21b755709b (patch)
treee98307b5b5dd63b58ba38c9db1a089bc18c17d7a
parentb058a604011ab7f98513345cbd4fb9573065c959 (diff)
downloadnative-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.cpp2
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;