SF: Remove *DisplayId::tryCast usage from VirtualDisplaySurface
Work towards DisplayId opaqueness by eliminating call-sites to APIs that
parse the display ID values directly. One such site is
VirtualDisplaySurface.
Replace all calls to *DisplayId::tryCast with a VirtualDisplayIdVariant
guard.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390690584
Test: libsurfaceflinger_unittest
Change-Id: I7ae9e838547c31ce09349e15f7d23e99f313646b
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index 2d81738..1114aff 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1126,8 +1126,10 @@
void enableHalVirtualDisplays(bool);
// Virtual display lifecycle for ID generation and HAL allocation.
- void acquireVirtualDisplay(ui::Size, ui::PixelFormat, const std::string& uniqueId,
- compositionengine::DisplayCreationArgsBuilder&) REQUIRES(mStateLock);
+ std::optional<VirtualDisplayIdVariant> acquireVirtualDisplay(
+ ui::Size, ui::PixelFormat, const std::string& uniqueId,
+ compositionengine::DisplayCreationArgsBuilder&) REQUIRES(mStateLock);
+
template <typename ID>
void acquireVirtualDisplaySnapshot(ID displayId, const std::string& uniqueId) {
std::lock_guard lock(mVirtualDisplaysMutex);