SF: Remove HWC plumbing for virtual display mirror
Replace the parameter, which is only relevant to SF-ARC, with a simpler
hook (virtual processDisplayAdded) that is closer to HWC-less overrides
for display creation.
Bug: 182939859
Test: Build
Change-Id: I9c8f84ec900d6538d9130c23a75ee79d1aefe13e
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index b9aefc3..67d150a 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -358,6 +358,15 @@
// display.
virtual FloatRect getLayerClipBoundsForDisplay(const DisplayDevice&) const;
+ virtual void processDisplayAdded(const wp<IBinder>& displayToken, const DisplayDeviceState&)
+ REQUIRES(mStateLock);
+
+ // Returns true if any display matches a `bool(const DisplayDevice&)` predicate.
+ template <typename Predicate>
+ bool hasDisplay(Predicate p) const REQUIRES(mStateLock) {
+ return static_cast<bool>(findDisplay(p));
+ }
+
private:
friend class BufferLayer;
friend class BufferQueueLayer;
@@ -1044,8 +1053,6 @@
const sp<compositionengine::DisplaySurface>& displaySurface,
const sp<IGraphicBufferProducer>& producer) REQUIRES(mStateLock);
void processDisplayChangesLocked() REQUIRES(mStateLock);
- void processDisplayAdded(const wp<IBinder>& displayToken, const DisplayDeviceState&)
- REQUIRES(mStateLock);
void processDisplayRemoved(const wp<IBinder>& displayToken) REQUIRES(mStateLock);
void processDisplayChanged(const wp<IBinder>& displayToken,
const DisplayDeviceState& currentState,
@@ -1123,8 +1130,7 @@
void enableHalVirtualDisplays(bool);
// Virtual display lifecycle for ID generation and HAL allocation.
- VirtualDisplayId acquireVirtualDisplay(ui::Size, ui::PixelFormat, ui::LayerStack)
- REQUIRES(mStateLock);
+ VirtualDisplayId acquireVirtualDisplay(ui::Size, ui::PixelFormat) REQUIRES(mStateLock);
void releaseVirtualDisplay(VirtualDisplayId);
void onActiveDisplayChangedLocked(const sp<DisplayDevice>& activeDisplay) REQUIRES(mStateLock);