summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
author Vishnu Nair <vishnun@google.com> 2022-08-16 03:19:37 +0000
committer Patrick Williams <pdwilliams@google.com> 2022-09-01 17:43:30 +0000
commitbc4ee5c5976b9a14db8a9b06033da07c33006b5b (patch)
tree5800fc11a71bbbbb6b9ee132967f23468edf7d43 /services/surfaceflinger/SurfaceFlinger.cpp
parentbd9570af2ea40fd5b9f7c1e16e87d3391be9bee1 (diff)
SF: Merge EffectLayer into BufferStateLayer
This makes all the Layer instances a BufferStateLayer. The layer can draw effects or hold a buffer. If the caller tries to do both, drawing a buffer takes precedence. Test: go/wm-smoke Test: presubmit Bug: 238781169 Change-Id: Ied68cd1ed7399f6408bd24d9e0220707d6a3a2ab
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 3acf203b0a..57ca859a24 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4575,7 +4575,11 @@ status_t SurfaceFlinger::createLayer(LayerCreationArgs& args, sp<IBinder>* outHa
switch (args.flags & ISurfaceComposerClient::eFXSurfaceMask) {
case ISurfaceComposerClient::eFXSurfaceBufferQueue:
- case ISurfaceComposerClient::eFXSurfaceBufferState: {
+ case ISurfaceComposerClient::eFXSurfaceContainer:
+ case ISurfaceComposerClient::eFXSurfaceBufferState:
+ args.flags |= ISurfaceComposerClient::eNoColorFill;
+ FMT_FALLTHROUGH;
+ case ISurfaceComposerClient::eFXSurfaceEffect: {
result = createBufferStateLayer(args, outHandle, &layer);
std::atomic<int32_t>* pendingBufferCounter = layer->getPendingBufferCounter();
if (pendingBufferCounter) {
@@ -4584,12 +4588,6 @@ status_t SurfaceFlinger::createLayer(LayerCreationArgs& args, sp<IBinder>* outHa
pendingBufferCounter);
}
} break;
- case ISurfaceComposerClient::eFXSurfaceContainer:
- args.flags |= ISurfaceComposerClient::eNoColorFill;
- FMT_FALLTHROUGH;
- case ISurfaceComposerClient::eFXSurfaceEffect:
- result = createEffectLayer(args, outHandle, &layer);
- break;
default:
result = BAD_VALUE;
break;