12345678910111213141516171819202122232425262728293031323334 |
- using System;
- using System.Text;
- using UnityEditor.Graphing;
- using UnityEngine;
-
- namespace UnityEditor.ShaderGraph.Internal
- {
- [Serializable]
- public abstract class VectorShaderProperty : AbstractShaderProperty<Vector4>
- {
- internal override bool isExposable => true;
- internal override bool isRenamable => true;
- internal virtual int vectorDimension => 4;
-
- internal override string GetHLSLVariableName(bool isSubgraphProperty, GenerationMode mode)
- {
- HLSLDeclaration decl = GetDefaultHLSLDeclaration();
- if (decl == HLSLDeclaration.HybridPerInstance)
- return $"UNITY_ACCESS_HYBRID_INSTANCED_PROP({referenceName}, {concretePrecision.ToShaderString()}{vectorDimension})";
- else
- return base.GetHLSLVariableName(isSubgraphProperty, mode);
- }
-
- internal override string GetPropertyBlockString()
- {
- return $"{hideTagString}{referenceName}(\"{displayName}\", Vector) = ({NodeUtils.FloatToShaderValueShaderLabSafe(value.x)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.y)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.z)}, {NodeUtils.FloatToShaderValueShaderLabSafe(value.w)})";
- }
-
- internal override string GetPropertyAsArgumentString(string precisionString)
- {
- return $"{concreteShaderValueType.ToShaderString(precisionString)} {referenceName}";
- }
- }
- }
|