using System;
namespace UnityEngine.Rendering.Universal
{
///
/// A graphics settings container for settings related to Render Graph for .
///
///
/// To change those settings, go to Editor > Project Settings in the Graphics tab (URP).
/// Changing this through the API is only allowed in the Editor. In the Player, this raises an error.
///
///
///
/// This example demonstrates how to determine whether your project uses RenderGraph in URP.
///
/// using UnityEngine.Rendering;
/// using UnityEngine.Rendering.Universal;
///
/// public static class URPRenderGraphHelper
/// {
/// public static bool enabled
/// {
/// get
/// {
/// var gs = GraphicsSettings.GetRenderPipelineSettings<RenderGraphSettings>();
/// if (gs == null) //not in URP
/// return false;
/// return !gs.enableRenderCompatibilityMode;
/// }
/// }
/// }
///
///
[Serializable]
[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
[Categorization.CategoryInfo(Name = "Render Graph", Order = 50)]
[Categorization.ElementInfo(Order = -10)]
public class RenderGraphSettings: IRenderPipelineGraphicsSettings
{
#region Version
internal enum Version : int
{
Initial = 0,
}
[SerializeField][HideInInspector]
private Version m_Version;
/// Current version of the settings container. Used only for upgrading a project.
public int version => (int)m_Version;
#endregion
bool IRenderPipelineGraphicsSettings.isAvailableInPlayerBuild => true;
#region SerializeFields
[SerializeField]
[Tooltip("When enabled, URP does not use the Render Graph API to construct and execute the frame. Use this option only for compatibility purposes.")]
[RecreatePipelineOnChange]
private bool m_EnableRenderCompatibilityMode;
#endregion
#region Data Accessors
///
/// When enabled, Universal Rendering Pipeline will not use Render Graph API to construct and execute the frame.
///
public bool enableRenderCompatibilityMode
{
get => m_EnableRenderCompatibilityMode && !RenderGraphGraphicsAutomatedTests.enabled;
set
{
this.SetValueAndNotify(ref m_EnableRenderCompatibilityMode, value, nameof(m_EnableRenderCompatibilityMode));
}
}
#endregion
}
}