80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | 
 | ||
|  | namespace UnityEngine.Rendering.Universal | ||
|  | { | ||
|  |     /// <summary> | ||
|  |     /// A graphics settings container for settings related to Render Graph for <see cref="UniversalRenderPipeline"/>. | ||
|  |     /// </summary> | ||
|  |     /// <remarks> | ||
|  |     /// 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. | ||
|  |     /// </remarks> | ||
|  |     /// <seealso cref="IRenderPipelineGraphicsSettings"/> | ||
|  |     /// <example> | ||
|  |     /// <para> This example demonstrates how to determine whether your project uses RenderGraph in URP. </para> | ||
|  |     /// <code> | ||
|  |     /// 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; | ||
|  |     ///         } | ||
|  |     ///     } | ||
|  |     /// } | ||
|  |     /// </code> | ||
|  |     /// </example> | ||
|  |     [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; | ||
|  | 
 | ||
|  |         /// <summary>Current version of the settings container. Used only for upgrading a project.</summary> | ||
|  |         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 | ||
|  | 
 | ||
|  |         /// <summary> | ||
|  |         /// When enabled, Universal Rendering Pipeline will not use Render Graph API to construct and execute the frame. | ||
|  |         /// </summary> | ||
|  |         public bool enableRenderCompatibilityMode | ||
|  |         { | ||
|  |             get => m_EnableRenderCompatibilityMode && !RenderGraphGraphicsAutomatedTests.enabled; | ||
|  |             set | ||
|  |             { | ||
|  |                 this.SetValueAndNotify(ref m_EnableRenderCompatibilityMode, value, nameof(m_EnableRenderCompatibilityMode)); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         #endregion | ||
|  |     } | ||
|  | } |