diff options
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/ZBufferOpHelper.cs')
-rw-r--r-- | Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/ZBufferOpHelper.cs | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/ZBufferOpHelper.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/ZBufferOpHelper.cs deleted file mode 100644 index d09b8c04..00000000 --- a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/ZBufferOpHelper.cs +++ /dev/null @@ -1,272 +0,0 @@ -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; - -namespace AmplifyShaderEditor -{ - public enum ZWriteMode - { - On, - Off - } - - public enum ZTestMode - { - Less, - Greater, - LEqual, - GEqual, - Equal, - NotEqual, - Always - } - - [Serializable] - class ZBufferOpHelper - { - public static readonly string DepthParametersStr = " Depth"; - public static readonly string ZWriteModeStr = "ZWrite Mode"; - public static readonly string ZTestModeStr = "ZTest Mode"; - public static readonly string OffsetStr = "Offset"; - public static readonly string OffsetFactorStr = "Factor"; - public static readonly string OffsetUnitsStr = "Units"; - private const string ExtraDepthPassStr = "Extra Depth Pass"; - private const string DepthZTestStr = "Depth ZTest"; - - public static readonly string[] ZTestModeLabels = - { - "<Default>", - "Less", - "Greater", - "Less or Equal", - "Greater or Equal", - "Equal", - "Not Equal", - "Always" - }; - - public static readonly string[] ZTestModeValues = - { - "<Default>", - "Less", - "Greater", - "LEqual", - "GEqual", - "Equal", - "NotEqual", - "Always" - }; - - public static readonly string[] ZWriteModeValues = - { - "<Default>", - "On", - "Off" - }; - - public static readonly Dictionary<ZTestMode, int> ZTestModeDict = new Dictionary<ZTestMode, int> - { - {ZTestMode.Less,1 }, - {ZTestMode.Greater,2}, - {ZTestMode.LEqual,3}, - {ZTestMode.GEqual,4}, - {ZTestMode.Equal,5}, - {ZTestMode.NotEqual,6}, - {ZTestMode.Always,7} - }; - - public static readonly Dictionary<ZWriteMode, int> ZWriteModeDict = new Dictionary<ZWriteMode, int> - { - { ZWriteMode.On,1}, - { ZWriteMode.Off,2} - }; - - - [SerializeField] - private InlineProperty m_zTestMode = new InlineProperty(); - - [SerializeField] - private InlineProperty m_zWriteMode = new InlineProperty(); - [SerializeField] - private InlineProperty m_offsetFactor = new InlineProperty(); - - [SerializeField] - private InlineProperty m_offsetUnits = new InlineProperty(); - - [SerializeField] - private bool m_offsetEnabled; - - [SerializeField] - private bool m_extraDepthPass; - - [SerializeField] - private int m_extrazTestMode = 0; - - [SerializeField] - private StandardSurfaceOutputNode m_parentSurface; - - public string CreateDepthInfo( bool outlineZWrite, bool outlineZTest ) - { - string result = string.Empty; - if( m_zWriteMode.IntValue != 0 || m_zWriteMode.Active ) - { - MasterNode.AddRenderState( ref result, "ZWrite", m_zWriteMode.GetValueOrProperty( ZWriteModeValues[ m_zWriteMode.IntValue ] ) ); - } - else if( outlineZWrite ) - { - MasterNode.AddRenderState( ref result, "ZWrite", ZWriteModeValues[ 1 ] ); - } - - if( m_zTestMode.IntValue != 0 || m_zTestMode.Active ) - { - MasterNode.AddRenderState( ref result, "ZTest", m_zTestMode.GetValueOrProperty( ZTestModeValues[ m_zTestMode.IntValue ] ) ); - } - else if( outlineZTest ) - { - MasterNode.AddRenderState( ref result, "ZTest", ZTestModeValues[ 3 ] ); - } - - if( m_offsetEnabled ) - { - MasterNode.AddRenderState( ref result, "Offset ", m_offsetFactor.GetValueOrProperty() + " , " + m_offsetUnits.GetValueOrProperty() ); - } - - return result; - } - - public void Draw( UndoParentNode owner, GUIStyle toolbarstyle, bool customBlendAvailable ) - { - Color cachedColor = GUI.color; - GUI.color = new Color( cachedColor.r, cachedColor.g, cachedColor.b, 0.5f ); - EditorGUILayout.BeginHorizontal( toolbarstyle ); - GUI.color = cachedColor; - EditorGUI.BeginChangeCheck(); - m_parentSurface.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedDepth = owner.GUILayoutToggle( m_parentSurface.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedDepth, DepthParametersStr, UIUtils.MenuItemToggleStyle ); - if( EditorGUI.EndChangeCheck() ) - { - EditorPrefs.SetBool( "ExpandedDepth", m_parentSurface.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedDepth ); - } - EditorGUILayout.EndHorizontal(); - - if( m_parentSurface.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedDepth ) - { - cachedColor = GUI.color; - GUI.color = new Color( cachedColor.r, cachedColor.g, cachedColor.b, ( EditorGUIUtility.isProSkin ? 0.5f : 0.25f ) ); - EditorGUILayout.BeginVertical( UIUtils.MenuItemBackgroundStyle ); - GUI.color = cachedColor; - - EditorGUI.indentLevel++; - if( !customBlendAvailable ) - EditorGUILayout.HelpBox( "Depth Writing is only available for Opaque or Custom blend modes", MessageType.Warning ); - - EditorGUILayout.Separator(); - EditorGUI.BeginDisabledGroup( !customBlendAvailable ); - - m_zWriteMode.EnumTypePopup( ref owner, ZWriteModeStr, ZWriteModeValues ); - m_zTestMode.EnumTypePopup( ref owner, ZTestModeStr, ZTestModeLabels ); - //m_zWriteMode = owner.EditorGUILayoutPopup( ZWriteModeStr, m_zWriteMode, ZWriteModeValues ); - //m_zTestMode = owner.EditorGUILayoutPopup( ZTestModeStr, m_zTestMode, ZTestModeLabels ); - m_offsetEnabled = owner.EditorGUILayoutToggle( OffsetStr, m_offsetEnabled ); - if( m_offsetEnabled ) - { - EditorGUI.indentLevel++; - m_offsetFactor.FloatField( ref owner , OffsetFactorStr ); - m_offsetUnits.FloatField( ref owner , OffsetUnitsStr ); - EditorGUI.indentLevel--; - } - - m_extraDepthPass = owner.EditorGUILayoutToggle( ExtraDepthPassStr, m_extraDepthPass ); - if( m_extraDepthPass ) - { - EditorGUI.indentLevel++; - m_extrazTestMode = owner.EditorGUILayoutPopup( DepthZTestStr, m_extrazTestMode, ZTestModeLabels ); - EditorGUI.indentLevel--; - } - EditorGUILayout.Separator(); - EditorGUI.indentLevel--; - EditorGUI.EndDisabledGroup(); - EditorGUILayout.EndVertical(); - } - - EditorGUI.EndDisabledGroup(); - } - - public void DrawExtraDepthPass( ref string shaderBody ) - { - if( m_extraDepthPass ) - { - shaderBody += "\t\tPass\n"; - shaderBody += "\t\t{\n"; - shaderBody += "\t\t\tColorMask 0\n"; - if( m_extrazTestMode != 0 ) - shaderBody += "\t\t\tZTest " + ZTestModeValues[ m_extrazTestMode ] + "\n"; - shaderBody += "\t\t\tZWrite On\n"; - shaderBody += "\t\t}\n\n"; - } - } - - public void ReadFromString( ref uint index, ref string[] nodeParams ) - { - if( UIUtils.CurrentShaderVersion() < 2502 ) - { - string zWriteMode = nodeParams[ index++ ]; - m_zWriteMode.IntValue = zWriteMode.Equals( "Off" ) ? 2 : 0; - - string zTestMode = nodeParams[ index++ ]; - for( int i = 0; i < ZTestModeValues.Length; i++ ) - { - if( zTestMode.Equals( ZTestModeValues[ i ] ) ) - { - m_zTestMode.IntValue = i; - break; - } - } - } - else - { - if( UIUtils.CurrentShaderVersion() > 14501 ) - { - m_zWriteMode.ReadFromString( ref index, ref nodeParams ); - m_zTestMode.ReadFromString( ref index, ref nodeParams ); - } - else - { - m_zWriteMode.IntValue = Convert.ToInt32( nodeParams[ index++ ] ); - m_zTestMode.IntValue = Convert.ToInt32( nodeParams[ index++ ] ); - } - m_offsetEnabled = Convert.ToBoolean( nodeParams[ index++ ] ); - - if( UIUtils.CurrentShaderVersion() > 15303 ) - { - m_offsetFactor.ReadFromString( ref index, ref nodeParams ); - m_offsetUnits.ReadFromString( ref index, ref nodeParams ); - } - else - { - m_offsetFactor.FloatValue = Convert.ToSingle( nodeParams[ index++ ] ); - m_offsetUnits.FloatValue = Convert.ToSingle( nodeParams[ index++ ] ); - } - - if( UIUtils.CurrentShaderVersion() > 14202 ) - { - m_extraDepthPass = Convert.ToBoolean( nodeParams[ index++ ] ); - m_extrazTestMode = Convert.ToInt32( nodeParams[ index++ ] ); - } - } - } - - public void WriteToString( ref string nodeInfo ) - { - m_zWriteMode.WriteToString( ref nodeInfo ); - m_zTestMode.WriteToString( ref nodeInfo ); - IOUtils.AddFieldValueToString( ref nodeInfo, m_offsetEnabled ); - m_offsetFactor.WriteToString( ref nodeInfo ); - m_offsetUnits.WriteToString( ref nodeInfo ); - IOUtils.AddFieldValueToString( ref nodeInfo, m_extraDepthPass ); - IOUtils.AddFieldValueToString( ref nodeInfo, m_extrazTestMode ); - } - public bool IsActive { get { return m_zTestMode.IntValue != 0 || m_zWriteMode.IntValue != 0 || m_offsetEnabled || m_zTestMode.Active || m_zWriteMode.Active; } } - public StandardSurfaceOutputNode ParentSurface { get { return m_parentSurface; } set { m_parentSurface = value; } } - } -} |