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);