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 } }