Throw UnsupportedOperationException from registerCamera

... in case any of the used EGL extensions is missing.

Bug: 301023410
Bug: 333479608
Test: presubmit
Test: atest CtsVirtualCameraTestCases (on cuttlefish & phys. device)
Change-Id: I9500e332cab075d56a4e23a9b922afaf99b156ba
diff --git a/services/camera/virtualcamera/VirtualCameraService.h b/services/camera/virtualcamera/VirtualCameraService.h
index 63a8c9d..2121d64 100644
--- a/services/camera/virtualcamera/VirtualCameraService.h
+++ b/services/camera/virtualcamera/VirtualCameraService.h
@@ -69,6 +69,12 @@
   binder_status_t handleShellCommand(int in, int out, int err, const char** args,
                                      uint32_t numArgs) override;
 
+  // Do not verify presence on required EGL extensions when registering virtual
+  // camera. Only to be used by unit tests.
+  void disableEglVerificationForTest() {
+    mVerifyEglExtensions = false;
+  }
+
  private:
   // Create and enable test camera instance if there's none.
   binder_status_t enableTestCameraCmd(
@@ -77,7 +83,7 @@
   void disableTestCameraCmd(int out);
 
   std::shared_ptr<VirtualCameraProvider> mVirtualCameraProvider;
-
+  bool mVerifyEglExtensions = true;
   const PermissionsProxy& mPermissionProxy;
 
   std::mutex mLock;