using UnityEngine; using UnityEngine.Rendering; #if ENABLE_UPSCALER_FRAMEWORK && ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE using UnityEngine.NVIDIA; #endif using System; #if ENABLE_UPSCALER_FRAMEWORK && ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE [Serializable] public class DLSSOptions : UpscalerOptions { #region BACKING_FIELDS [SerializeField] [Tooltip("Selects a performance quality setting for NVIDIA Deep Learning Super Sampling (DLSS).")] private DLSSQuality m_DLSSQualityMode = DLSSQuality.MaximumQuality; [Header("Render Presets")] [SerializeField] [Tooltip("DLSS will use the specified render preset for the Quality mode.")] private DLSSPreset m_DLSSRenderPresetQuality; [SerializeField] [Tooltip("DLSS will use the specified render preset for the Balanced mode.")] private DLSSPreset m_DLSSRenderPresetBalanced; [SerializeField] [Tooltip("DLSS will use the specified render preset for the Performance mode.")] private DLSSPreset m_DLSSRenderPresetPerformance; [SerializeField] [Tooltip("DLSS will use the specified render preset for the Ultra Performance mode.")] private DLSSPreset m_DLSSRenderPresetUltraPerformance; [SerializeField] [Tooltip("DLSS will use the specified render preset for the DLAA mode.")] private DLSSPreset m_DLSSRenderPresetDLAA; #endregion #region PROPERTIES /// /// Gets or sets the performance quality setting for NVIDIA DLSS. /// public DLSSQuality dlssQualityMode { get { return m_DLSSQualityMode; } set { m_DLSSQualityMode = value; } } /// /// The specific render preset to use when DLSS is in Quality mode. /// public DLSSPreset dlssRenderPresetQuality { get { return m_DLSSRenderPresetQuality; } set { m_DLSSRenderPresetQuality = value; } } /// /// The specific render preset to use when DLSS is in Balanced mode. /// public DLSSPreset dlssRenderPresetBalanced { get { return m_DLSSRenderPresetBalanced; } set { m_DLSSRenderPresetBalanced = value; } } /// /// The specific render preset to use when DLSS is in Performance mode. /// public DLSSPreset dlssRenderPresetPerformance { get { return m_DLSSRenderPresetPerformance; } set { m_DLSSRenderPresetPerformance = value; } } /// /// The specific render preset to use when DLSS is in Ultra Performance mode. /// public DLSSPreset dlssRenderPresetUltraPerformance { get { return m_DLSSRenderPresetUltraPerformance; } set { m_DLSSRenderPresetUltraPerformance = value; } } /// /// The specific render preset to use when DLSS is in DLAA mode. /// public DLSSPreset dlssRenderPresetDLAA { get { return m_DLSSRenderPresetDLAA; } set { m_DLSSRenderPresetDLAA = value; } } #endregion /// /// Checks if the settings of this object match another instance. /// public bool IsSame(DLSSOptions other) { if (other == null) return false; return resolutionMode == other.resolutionMode && m_DLSSQualityMode == other.m_DLSSQualityMode && m_DLSSRenderPresetQuality == other.m_DLSSRenderPresetQuality && m_DLSSRenderPresetBalanced == other.m_DLSSRenderPresetBalanced && m_DLSSRenderPresetPerformance == other.m_DLSSRenderPresetPerformance && m_DLSSRenderPresetUltraPerformance == other.m_DLSSRenderPresetUltraPerformance && m_DLSSRenderPresetDLAA == other.m_DLSSRenderPresetDLAA; } /// /// Shallow copies values from another DLSSOptions instance into this one. /// public void CopyFrom(DLSSOptions other) { if (other == null) return; resolutionMode = other.resolutionMode; m_DLSSQualityMode = other.m_DLSSQualityMode; m_DLSSRenderPresetQuality = other.m_DLSSRenderPresetQuality; m_DLSSRenderPresetBalanced = other.m_DLSSRenderPresetBalanced; m_DLSSRenderPresetPerformance = other.m_DLSSRenderPresetPerformance; m_DLSSRenderPresetUltraPerformance = other.m_DLSSRenderPresetUltraPerformance; m_DLSSRenderPresetDLAA = other.m_DLSSRenderPresetDLAA; } } #endif // ENABLE_UPSCALER_FRAMEWORK && ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE