private static void RegisterDescriptor(XRCameraSubsystemDescriptor overrideDescriptor = default)
        {
            if (overrideDescriptor != null)
            {
                // Clone descriptor
                var cinfo = new XRCameraSubsystemCinfo
                {
                    id = overrideDescriptor.id,
                    implementationType              = overrideDescriptor.subsystemImplementationType,
                    supportsAverageBrightness       = overrideDescriptor.supportsAverageBrightness,
                    supportsAverageColorTemperature = overrideDescriptor.supportsAverageColorTemperature,
                    supportsCameraConfigurations    = overrideDescriptor.supportsCameraConfigurations,
                    supportsCameraImage             = overrideDescriptor.supportsCameraImage,
                    //supportsColorCorrection = overrideDescriptor.supportsColorCorrection,
                    supportsDisplayMatrix    = overrideDescriptor.supportsDisplayMatrix,
                    supportsProjectionMatrix = overrideDescriptor.supportsProjectionMatrix,
                    //supportsTimestamp = overrideDescriptor.supportsTimestampsupportsTimestamp,
                };

                originalDescriptor = typeof(XRCameraSubsystemDescriptor).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)[0]
                                     .Invoke(new object[] { cinfo }) as XRCameraSubsystemDescriptor;

                // Override subsystem
                overrideDescriptor.subsystemImplementationType = typeof(UnityXRMockCameraSubsystem);
            }
            else
            {
                // Clone descriptor
                var cinfo = new XRCameraSubsystemCinfo
                {
                    id = ID,
                    implementationType              = typeof(UnityXRMockCameraSubsystem),
                    supportsAverageBrightness       = true,
                    supportsAverageColorTemperature = true,
                    supportsCameraConfigurations    = false,
                    supportsCameraImage             = true,
                    supportsColorCorrection         = false,
                    supportsDisplayMatrix           = true,
                    supportsProjectionMatrix        = true,
                    supportsTimestamp = true,
                };

                Register(cinfo);
            }
        }
        private void Initialize()
        {
            if (this.isInitialized)
            {
                return;
            }

            if (!UnityXRMockActivator.Active)
            {
                if (originalDescriptor == null)
                {
                    originalDescriptor = GetSubsystemDescriptor();
                }

                this.wrappedSubsystem = originalDescriptor?.Create();
            }

            this.isInitialized = true;
        }