using System;
using UnityEngine.XR.ARSubsystems;
namespace UnityEngine.XR.ARFoundation
{
///
/// Describes when the AR Camera Background should render.
///
public enum CameraBackgroundRenderingMode : byte
{
///
/// Allows the platform to select its preferred render mode.
///
Any,
///
/// Perform background rendering prior to rendering opaque geometry in the scene.
///
BeforeOpaques,
///
/// Perform background rendering after opaques have been rendered.
///
AfterOpaques
}
///
/// Provides conversion utilities between and .
///
public static class CameraBackgroundRenderingModeUtilities
{
///
/// Converts a to an .
///
/// The to convert.
///
/// The converted .
///
public static XRSupportedCameraBackgroundRenderingMode ToXRSupportedCameraBackgroundRenderingMode(this CameraBackgroundRenderingMode mode)
{
return mode switch
{
CameraBackgroundRenderingMode.Any => XRSupportedCameraBackgroundRenderingMode.Any,
CameraBackgroundRenderingMode.BeforeOpaques => XRSupportedCameraBackgroundRenderingMode.BeforeOpaques,
CameraBackgroundRenderingMode.AfterOpaques => XRSupportedCameraBackgroundRenderingMode.AfterOpaques,
_ => XRSupportedCameraBackgroundRenderingMode.None
};
}
///
/// Converts an to a .
///
/// The to convert.
///
///
/// The converted .
///
public static CameraBackgroundRenderingMode ToBackgroundRenderingMode(this XRSupportedCameraBackgroundRenderingMode mode)
{
switch (mode)
{
case XRSupportedCameraBackgroundRenderingMode.BeforeOpaques:
return CameraBackgroundRenderingMode.BeforeOpaques;
case XRSupportedCameraBackgroundRenderingMode.AfterOpaques:
return CameraBackgroundRenderingMode.AfterOpaques;
case XRSupportedCameraBackgroundRenderingMode.Any:
case XRSupportedCameraBackgroundRenderingMode.None:
default:
return CameraBackgroundRenderingMode.Any;
}
}
}
}