summaryrefslogtreecommitdiff
path: root/libs/gui/LayerState.cpp
diff options
context:
space:
mode:
author Lucas Dupin <dupin@google.com> 2019-11-25 17:55:44 -0800
committer Lucas Dupin <dupin@google.com> 2020-01-20 12:32:18 -0800
commit19c8f0e4fe37ffa86a7cbc879c23e4da2ff97e1c (patch)
tree47645400d625fa71de468c6ef510780056da8bcf /libs/gui/LayerState.cpp
parentfbb86a6baec5b0e91a94413a629d7a49f000d28b (diff)
Add support for background blurs
Bug: 141640413 Fixes: 146384234 Test: adb shell setprop debug.sf.disableBlurs 1 Test: adb shell setprop debug.sf.gaussianBlur 0 Test: adb shell setprop ro.surface_flinger.supports_background_blur 1 Test: ./SurfaceFlinger_test --gtest_filter=Layer*Tests/Layer*Test.SetBackgroundBlur* Test: ./librenderengine_test --gtest_filter=*BlurBackground*" Test: atest SurfaceFlinger_test:SurfaceInterceptorTest#InterceptBackgroundBlurRadiusUpdateWorks Change-Id: I5194c910fe7062f33e70943867012539e6c6626a
Diffstat (limited to 'libs/gui/LayerState.cpp')
-rw-r--r--libs/gui/LayerState.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
index 39b4d4bbb6..5547efc3ad 100644
--- a/libs/gui/LayerState.cpp
+++ b/libs/gui/LayerState.cpp
@@ -86,6 +86,7 @@ status_t layer_state_t::write(Parcel& output) const
memcpy(output.writeInplace(16 * sizeof(float)),
colorTransform.asArray(), 16 * sizeof(float));
output.writeFloat(cornerRadius);
+ output.writeUint32(backgroundBlurRadius);
output.writeStrongBinder(cachedBuffer.token.promote());
output.writeUint64(cachedBuffer.id);
output.writeParcelable(metadata);
@@ -173,6 +174,7 @@ status_t layer_state_t::read(const Parcel& input)
colorTransform = mat4(static_cast<const float*>(input.readInplace(16 * sizeof(float))));
cornerRadius = input.readFloat();
+ backgroundBlurRadius = input.readUint32();
cachedBuffer.token = input.readStrongBinder();
cachedBuffer.id = input.readUint64();
input.readParcelable(&metadata);
@@ -307,6 +309,10 @@ void layer_state_t::merge(const layer_state_t& other) {
what |= eCornerRadiusChanged;
cornerRadius = other.cornerRadius;
}
+ if (other.what & eBackgroundBlurRadiusChanged) {
+ what |= eBackgroundBlurRadiusChanged;
+ backgroundBlurRadius = other.backgroundBlurRadius;
+ }
if (other.what & eDeferTransaction_legacy) {
what |= eDeferTransaction_legacy;
barrierHandle_legacy = other.barrierHandle_legacy;