summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/EffectLayer.cpp
diff options
context:
space:
mode:
author Xin Li <delphij@google.com> 2022-06-29 21:21:49 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-06-29 21:21:49 +0000
commit618c76e5c04f99f2e295fcd2ffcb896476a68f38 (patch)
treedb84b827307260c3e1e05d5d30a08c08d427e158 /services/surfaceflinger/EffectLayer.cpp
parent31afdea9a497881604f2395b7a870d4ee21497c6 (diff)
parent552bdbb3f7e423c4047ed209917a12f8cadf86e9 (diff)
Merge "Merge tm-dev-plus-aosp-without-vendor@8763363" into stage-aosp-master
Diffstat (limited to 'services/surfaceflinger/EffectLayer.cpp')
-rw-r--r--services/surfaceflinger/EffectLayer.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/services/surfaceflinger/EffectLayer.cpp b/services/surfaceflinger/EffectLayer.cpp
index 86c6b2161c..e8c590e3c4 100644
--- a/services/surfaceflinger/EffectLayer.cpp
+++ b/services/surfaceflinger/EffectLayer.cpp
@@ -109,11 +109,18 @@ void EffectLayer::preparePerFrameCompositionState() {
auto* compositionState = editCompositionState();
compositionState->color = getColor();
- compositionState->compositionType = Hwc2::IComposerClient::Composition::SOLID_COLOR;
+ compositionState->compositionType =
+ aidl::android::hardware::graphics::composer3::Composition::SOLID_COLOR;
}
sp<compositionengine::LayerFE> EffectLayer::getCompositionEngineLayerFE() const {
- return asLayerFE();
+ // There's no need to get a CE Layer if the EffectLayer isn't going to draw anything. In that
+ // case, it acts more like a ContainerLayer so returning a null CE Layer makes more sense
+ if (hasSomethingToDraw()) {
+ return asLayerFE();
+ } else {
+ return nullptr;
+ }
}
compositionengine::LayerFECompositionState* EffectLayer::editCompositionState() {
@@ -136,8 +143,7 @@ ui::Dataspace EffectLayer::getDataSpace() const {
sp<Layer> EffectLayer::createClone() {
sp<EffectLayer> layer = mFlinger->getFactory().createEffectLayer(
- LayerCreationArgs(mFlinger.get(), nullptr, mName + " (Mirror)", 0, 0, 0,
- LayerMetadata()));
+ LayerCreationArgs(mFlinger.get(), nullptr, mName + " (Mirror)", 0, LayerMetadata()));
layer->setInitialValuesForClone(this);
return layer;
}