A game about forced loneliness, made by TACStudios
at master 1.4 kB view raw
1using System; 2using System.Text; 3using UnityEditor.Graphing; 4using UnityEngine; 5 6namespace UnityEditor.ShaderGraph.Internal 7{ 8 [Serializable] 9 public abstract class VectorShaderProperty : AbstractShaderProperty<Vector4> 10 { 11 internal override bool isExposable => true; 12 internal override bool isRenamable => true; 13 internal virtual int vectorDimension => 4; 14 15 internal override string GetHLSLVariableName(bool isSubgraphProperty, GenerationMode mode) 16 { 17 HLSLDeclaration decl = GetDefaultHLSLDeclaration(); 18 if (decl == HLSLDeclaration.HybridPerInstance) 19 return $"UNITY_ACCESS_HYBRID_INSTANCED_PROP({referenceName}, {concretePrecision.ToShaderString()}{vectorDimension})"; 20 else 21 return base.GetHLSLVariableName(isSubgraphProperty, mode); 22 } 23 24 internal override string GetPropertyBlockString() 25 { 26 return $"{hideTagString}{referenceName}(\"{displayName}\", Vector) = ({NodeUtils.FloatToShaderValueShaderLabSafe(value.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.y)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.z)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.w)})"; 27 } 28 29 internal override string GetPropertyAsArgumentString(string precisionString) 30 { 31 return $"{concreteShaderValueType.ToShaderString(precisionString)} {referenceName}"; 32 } 33 } 34}