using System; using System.ComponentModel; namespace UnityEngine.Rendering.Universal { /// /// Class that stores the shader stripping settings that are specific for /// [Serializable][Category("Shader Stripping")] public class URPShaderStrippingSetting { #region Version internal enum Version : int { Initial = 0, } [SerializeField][HideInInspector] private Version m_Version; /// Current version. public int version => (int)m_Version; #endregion #region SerializeFields [SerializeField] [Tooltip("Controls whether to automatically strip post processing shader variants based on VolumeProfile components. Stripping is done based on VolumeProfiles in project, their usage in scenes is not considered.")] bool m_StripUnusedPostProcessingVariants = false; [SerializeField] [Tooltip("Controls whether to strip variants if the feature is disabled.")] bool m_StripUnusedVariants = true; [SerializeField] [Tooltip("Controls whether Screen Coordinates Override shader variants are automatically stripped.")] bool m_StripScreenCoordOverrideVariants = true; #endregion #region Data Accessors /// /// Controls whether to automatically strip post processing shader variants based on components. /// Stripping is done based on VolumeProfiles in project, their usage in scenes is not considered. /// public bool stripUnusedPostProcessingVariants { get => m_StripUnusedPostProcessingVariants; set => m_StripUnusedPostProcessingVariants = value; } /// /// Controls whether to strip variants if the feature is disabled. /// public bool stripUnusedVariants { get => m_StripUnusedVariants; set => m_StripUnusedVariants = value; } /// /// Controls whether Screen Coordinates Override shader variants are automatically stripped. /// public bool stripScreenCoordOverrideVariants { get => m_StripScreenCoordOverrideVariants; set => m_StripScreenCoordOverrideVariants = value; } #endregion } }