diff options
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Templates/TemplateNodeParent.cs')
-rw-r--r-- | Assets/AmplifyShaderEditor/Plugins/Editor/Templates/TemplateNodeParent.cs | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Templates/TemplateNodeParent.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Templates/TemplateNodeParent.cs deleted file mode 100644 index 1bfc8aa9..00000000 --- a/Assets/AmplifyShaderEditor/Plugins/Editor/Templates/TemplateNodeParent.cs +++ /dev/null @@ -1,272 +0,0 @@ -// Amplify Shader Editor - Visual Shader Editing Tool -// Copyright (c) Amplify Creations, Lda <info@amplify.pt> - -using System; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; - -namespace AmplifyShaderEditor -{ - [Serializable] - public class TemplateNodeParent : ParentNode - { - - - protected const string ErrorMessageStr = "This node can only be used inside a Template category!"; - protected const string DataLabelStr = "Data"; - protected const string SubShaderStr = "SubShader"; - protected const string PassStr = "Pass"; - - [SerializeField] - private int m_subShaderIdx = 0; - - [SerializeField] - private int m_passIdx = 0; - - [SerializeField] - private int m_passLocalArrayIdx = 0; - - [SerializeField] - protected bool m_multiPassMode = false; - - [SerializeField] - protected string[] m_availableSubshaders; - - [SerializeField] - protected string[] m_availablePassesLabels; - - [SerializeField] - protected int[] m_availablePassesValues; - - [NonSerialized] - protected TemplateMultiPass m_templateMPData = null; - protected bool m_createAllOutputs = true; - - protected override void CommonInit( int uniqueId ) - { - base.CommonInit( uniqueId ); - AddOutputPort( WirePortDataType.FLOAT, "Out" ); - if( m_createAllOutputs ) - { - AddOutputPort( WirePortDataType.FLOAT, "X" ); - AddOutputPort( WirePortDataType.FLOAT, "Y" ); - AddOutputPort( WirePortDataType.FLOAT, "Z" ); - AddOutputPort( WirePortDataType.FLOAT, "W" ); - } - m_textLabelWidth = 67; - m_hasLeftDropdown = true; - } - - public override void AfterCommonInit() - { - base.AfterCommonInit(); - - if( PaddingTitleLeft == 0 ) - { - PaddingTitleLeft = Constants.PropertyPickerWidth + Constants.IconsLeftRightMargin; - if( PaddingTitleRight == 0 ) - PaddingTitleRight = Constants.PropertyPickerWidth + Constants.IconsLeftRightMargin; - } - } - - protected void ConfigurePorts() - { - switch( m_outputPorts[ 0 ].DataType ) - { - default: - { - for( int i = 1; i < 5; i++ ) - { - m_outputPorts[ i ].Visible = false; - } - } - break; - case WirePortDataType.FLOAT2: - { - for( int i = 1; i < 5; i++ ) - { - m_outputPorts[ i ].Visible = ( i < 3 ); - if( m_outputPorts[ i ].Visible ) - { - m_outputPorts[ i ].Name = Constants.ChannelNamesVector[ i - 1 ]; - } - } - } - break; - case WirePortDataType.FLOAT3: - { - for( int i = 1; i < 5; i++ ) - { - m_outputPorts[ i ].Visible = ( i < 4 ); - if( m_outputPorts[ i ].Visible ) - { - m_outputPorts[ i ].Name = Constants.ChannelNamesVector[ i - 1 ]; - } - } - } - break; - case WirePortDataType.FLOAT4: - { - for( int i = 1; i < 5; i++ ) - { - m_outputPorts[ i ].Visible = true; - m_outputPorts[ i ].Name = Constants.ChannelNamesVector[ i - 1 ]; - } - } - break; - case WirePortDataType.COLOR: - { - for( int i = 1; i < 5; i++ ) - { - m_outputPorts[ i ].Visible = true; - m_outputPorts[ i ].Name = Constants.ChannelNamesColor[ i - 1 ]; - } - } - break; - } - m_sizeIsDirty = true; - } - - protected virtual void OnSubShaderChange() { } - protected virtual void OnPassChange() { } - - protected void DrawSubShaderUI() - { - EditorGUI.BeginChangeCheck(); - m_subShaderIdx = EditorGUILayoutPopup( SubShaderStr, m_subShaderIdx, m_availableSubshaders ); - if( EditorGUI.EndChangeCheck() ) - { - //UpdateSubShaderAmount(); - UpdatePassAmount(); - OnSubShaderChange(); - } - } - - protected void DrawPassUI() - { - EditorGUI.BeginChangeCheck(); - m_passLocalArrayIdx = EditorGUILayoutPopup( PassStr, m_passLocalArrayIdx, m_availablePassesLabels ); - if( EditorGUI.EndChangeCheck() ) - { - m_passIdx = m_availablePassesValues[ m_passLocalArrayIdx ]; - //UpdatePassAmount(); - OnPassChange(); - } - } - - virtual protected void CheckWarningState() - { - if( m_containerGraph.CurrentCanvasMode != NodeAvailability.TemplateShader ) - { - ShowTab( NodeMessageType.Error, ErrorMessageStr ); - } - else - { - m_showErrorMessage = false; - } - } - - protected void FetchMultiPassTemplate( MasterNode masterNode = null ) - { - m_multiPassMode = m_containerGraph.MultiPassMasterNodes.NodesList.Count > 0; - if( m_multiPassMode ) - { - m_templateMPData = ( ( ( masterNode == null ) ? m_containerGraph.CurrentMasterNode : masterNode ) as TemplateMultiPassMasterNode ).CurrentTemplate; - if( m_templateMPData != null ) - { - UpdateSubShaderAmount(); - } - } - } - - protected void UpdateSubShaderAmount() - { - if( m_templateMPData == null ) - m_templateMPData = ( m_containerGraph.CurrentMasterNode as TemplateMultiPassMasterNode ).CurrentTemplate; - - if( m_templateMPData != null ) - { - int subShaderCount = m_templateMPData.SubShaders.Count; - if( m_availableSubshaders == null || subShaderCount != m_availableSubshaders.Length ) - { - m_availableSubshaders = new string[ subShaderCount ]; - for( int i = 0; i < subShaderCount; i++ ) - { - m_availableSubshaders[ i ] = i.ToString(); - } - } - m_subShaderIdx = Mathf.Min( m_subShaderIdx, subShaderCount - 1 ); - UpdatePassAmount(); - } - } - protected virtual bool ValidatePass( int passIdx ) { return true; } - protected void UpdatePassAmount() - { - if( !m_multiPassMode ) - return; - - if( m_templateMPData == null ) - m_templateMPData = ( m_containerGraph.CurrentMasterNode as TemplateMultiPassMasterNode ).CurrentTemplate; - - List<string> passLabels = new List<string>(); - List<int> passValues = new List<int>(); - int minPassIdx = int.MaxValue; - int passCount = m_templateMPData.SubShaders[ m_subShaderIdx ].Passes.Count; - bool resetPassIdx = true; - for( int i = 0; i < passCount; i++ ) - { - if( ValidatePass( i ) ) - { - passLabels.Add( i.ToString() ); - passValues.Add( i ); - minPassIdx = Mathf.Min( minPassIdx, i ); - if( m_passIdx == i ) - resetPassIdx = false; - } - } - m_availablePassesLabels = passLabels.ToArray(); - m_availablePassesValues = passValues.ToArray(); - if( resetPassIdx ) - m_passIdx = minPassIdx; - - RefreshPassLocalArrayIdx(); - } - - void RefreshPassLocalArrayIdx( ) - { - for( int i = 0; i < m_availablePassesValues.Length; i++ ) - { - if( m_availablePassesValues[ i ] == m_passIdx ) - { - m_passLocalArrayIdx = i; - } - } - } - - public override void Destroy() - { - base.Destroy(); - m_templateMPData = null; - } - - public override void ReadFromString( ref string[] nodeParams ) - { - base.ReadFromString( ref nodeParams ); - if( UIUtils.CurrentShaderVersion() > TemplatesManager.MPShaderVersion ) - { - m_subShaderIdx = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ); - m_passIdx = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ); - } - } - - public override void WriteToString( ref string nodeInfo, ref string connectionsInfo ) - { - base.WriteToString( ref nodeInfo, ref connectionsInfo ); - IOUtils.AddFieldValueToString( ref nodeInfo, m_subShaderIdx ); - IOUtils.AddFieldValueToString( ref nodeInfo, m_passIdx ); - } - public int SubShaderIdx { get { return m_subShaderIdx; } } - public int PassIdx { get { return m_passIdx; } } - } -} |