diff options
Diffstat (limited to 'Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/RenderingPlatformsOpHelper.cs')
-rw-r--r-- | Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/RenderingPlatformsOpHelper.cs | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/RenderingPlatformsOpHelper.cs b/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/RenderingPlatformsOpHelper.cs deleted file mode 100644 index c049d6d7..00000000 --- a/Assets/AmplifyShaderEditor/Plugins/Editor/Nodes/Master/RenderingPlatformsOpHelper.cs +++ /dev/null @@ -1,238 +0,0 @@ -// Amplify Shader Editor - Visual Shader Editing Tool -// Copyright (c) Amplify Creations, Lda <info@amplify.pt> - -using System; -using UnityEditor; -using UnityEngine; -using System.Collections.Generic; - -namespace AmplifyShaderEditor -{ - [Serializable] - public class RenderPlatformInfo - { - public string Label; - public RenderPlatforms Value; - } - - [Serializable] - public class RenderingPlatformOpHelper - { - private const string RenderingPlatformsStr = " Rendering Platforms"; - private readonly RenderPlatformInfo[] RenderingPlatformsInfo = - { - new RenderPlatformInfo(){Label = " Direct3D 9", Value = RenderPlatforms.d3d9}, - new RenderPlatformInfo(){Label = " Direct3D 11 9.x", Value = RenderPlatforms.d3d11_9x}, - new RenderPlatformInfo(){Label = " Direct3D 11/12", Value = RenderPlatforms.d3d11}, - new RenderPlatformInfo(){Label = " OpenGL 3.x/4.x", Value = RenderPlatforms.glcore}, - new RenderPlatformInfo(){Label = " OpenGL ES 2.0", Value = RenderPlatforms.gles}, - new RenderPlatformInfo(){Label = " OpenGL ES 3.x", Value = RenderPlatforms.gles3}, - new RenderPlatformInfo(){Label = " iOS/Mac Metal", Value = RenderPlatforms.metal}, - new RenderPlatformInfo(){Label = " Vulkan", Value = RenderPlatforms.vulkan}, - new RenderPlatformInfo(){Label = " Xbox 360", Value = RenderPlatforms.xbox360}, - new RenderPlatformInfo(){Label = " Xbox One", Value = RenderPlatforms.xboxone}, - new RenderPlatformInfo(){Label = " PlayStation 4", Value = RenderPlatforms.ps4}, - new RenderPlatformInfo(){Label = " PlayStation Vita", Value = RenderPlatforms.psp2}, - new RenderPlatformInfo(){Label = " Nintendo 3DS", Value = RenderPlatforms.n3ds}, - new RenderPlatformInfo(){Label = " Nintendo Wii U", Value = RenderPlatforms.wiiu} - }; - - // Values from this dictionary must be the indices corresponding from the list above - private readonly Dictionary<RenderPlatforms, int> PlatformToIndex = new Dictionary<RenderPlatforms, int>() - { - {RenderPlatforms.d3d9, 0}, - {RenderPlatforms.d3d11_9x, 1}, - {RenderPlatforms.d3d11, 2}, - {RenderPlatforms.glcore, 3}, - {RenderPlatforms.gles, 4}, - {RenderPlatforms.gles3, 5}, - {RenderPlatforms.metal, 6}, - {RenderPlatforms.vulkan, 7}, - {RenderPlatforms.xbox360, 8}, - {RenderPlatforms.xboxone, 9}, - {RenderPlatforms.ps4, 10}, - {RenderPlatforms.psp2, 11}, - {RenderPlatforms.n3ds, 12}, - {RenderPlatforms.wiiu, 13} - }; - - - private readonly List<RenderPlatforms> LegacyIndexToPlatform = new List<RenderPlatforms>() - { - RenderPlatforms.d3d9, - RenderPlatforms.d3d11, - RenderPlatforms.glcore, - RenderPlatforms.gles, - RenderPlatforms.gles3, - RenderPlatforms.metal, - RenderPlatforms.d3d11_9x, - RenderPlatforms.xbox360, - RenderPlatforms.xboxone, - RenderPlatforms.ps4, - RenderPlatforms.psp2, - RenderPlatforms.n3ds, - RenderPlatforms.wiiu - }; - - [SerializeField] - private bool[] m_renderingPlatformValues; - - public RenderingPlatformOpHelper() - { - m_renderingPlatformValues = new bool[ RenderingPlatformsInfo.Length ]; - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - m_renderingPlatformValues[ i ] = true; - } - } - - - public void Draw( ParentNode owner ) - { - bool value = owner.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedRenderingPlatforms; - NodeUtils.DrawPropertyGroup( ref value, RenderingPlatformsStr, () => - { - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - m_renderingPlatformValues[ i ] = owner.EditorGUILayoutToggleLeft( RenderingPlatformsInfo[ i ].Label, m_renderingPlatformValues[ i ] ); - } - } ); - owner.ContainerGraph.ParentWindow.InnerWindowVariables.ExpandedRenderingPlatforms = value; - } - - public void SetRenderingPlatforms( ref string ShaderBody ) - { - int checkedPlatforms = 0; - int uncheckedPlatforms = 0; - - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - if( m_renderingPlatformValues[ i ] ) - { - checkedPlatforms += 1; - } - else - { - uncheckedPlatforms += 1; - } - } - - if( checkedPlatforms > 0 && checkedPlatforms < m_renderingPlatformValues.Length ) - { - string result = string.Empty; - if( checkedPlatforms < uncheckedPlatforms ) - { - result = "only_renderers "; - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - if( m_renderingPlatformValues[ i ] ) - { - result += (RenderPlatforms)RenderingPlatformsInfo[i].Value + " "; - } - } - } - else - { - result = "exclude_renderers "; - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - if( !m_renderingPlatformValues[ i ] ) - { - result += (RenderPlatforms)RenderingPlatformsInfo[ i ].Value + " "; - } - } - } - MasterNode.AddShaderPragma( ref ShaderBody, result ); - } - } - - public void ReadFromString( ref uint index, ref string[] nodeParams ) - { - if( UIUtils.CurrentShaderVersion() < 17006 ) - { - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - m_renderingPlatformValues[ i ] = false; - } - - int count = LegacyIndexToPlatform.Count; - int activeCount = 0; - for( int i = 0; i < count; i++ ) - { - RenderPlatforms platform = LegacyIndexToPlatform[ i ]; - int newIndex = PlatformToIndex[ platform ]; - bool value = Convert.ToBoolean( nodeParams[ index++ ] ); - if( value ) - { - m_renderingPlatformValues[ newIndex ] = true; - activeCount += 1; - } - else - { - m_renderingPlatformValues[ newIndex ] = false; - } - } - - if( activeCount == count ) - { - m_renderingPlatformValues[ PlatformToIndex[ RenderPlatforms.vulkan ] ] = true; - } - } - else - { - int count = Convert.ToInt32( nodeParams[ index++ ] ); - if( count > 0 ) - { - RenderPlatforms firstPlatform = (RenderPlatforms)Enum.Parse( typeof(RenderPlatforms), nodeParams[ index++ ] ); - if( firstPlatform == RenderPlatforms.all ) - { - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - m_renderingPlatformValues[ i ] = true; - } - } - else - { - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - m_renderingPlatformValues[ i ] = false; - } - - m_renderingPlatformValues[ PlatformToIndex[ firstPlatform ]] = true; - for( int i = 1; i < count; i++ ) - { - RenderPlatforms currPlatform = (RenderPlatforms)Enum.Parse( typeof( RenderPlatforms ), nodeParams[ index++ ] ); - m_renderingPlatformValues[ PlatformToIndex[ currPlatform ] ] = true; - } - } - } - } - } - - public void WriteToString( ref string nodeInfo ) - { - int active = 0; - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - if( m_renderingPlatformValues[ i ] ) - active += 1; - } - IOUtils.AddFieldValueToString( ref nodeInfo, active ); - if( active == m_renderingPlatformValues.Length ) - { - IOUtils.AddFieldValueToString( ref nodeInfo, RenderPlatforms.all ); - } - else - { - for( int i = 0; i < m_renderingPlatformValues.Length; i++ ) - { - if( m_renderingPlatformValues[ i ] ) - { - IOUtils.AddFieldValueToString( ref nodeInfo, RenderingPlatformsInfo[i].Value ); - } - } - } - - } - } -} |