mathe/Library/PackageCache/com.unity.shadergraph@14.0.8/Editor/Util/ValueUtilities.cs
2024-09-20 20:30:10 +02:00

57 lines
1.8 KiB
C#

using System;
using UnityEditor.ShaderGraph.Internal;
namespace UnityEditor.ShaderGraph
{
static class ValueUtilities
{
public static string ToShaderString(this ShaderValueType type, string precisionToken = PrecisionUtil.Token)
{
switch (type)
{
case ShaderValueType.Boolean:
return precisionToken;
case ShaderValueType.Float:
return precisionToken;
case ShaderValueType.Float2:
return $"{precisionToken}2";
case ShaderValueType.Float3:
return $"{precisionToken}3";
case ShaderValueType.Float4:
return $"{precisionToken}4";
case ShaderValueType.Matrix2:
return $"{precisionToken}2x2";
case ShaderValueType.Matrix3:
return $"{precisionToken}3x3";
case ShaderValueType.Matrix4:
return $"{precisionToken}4x4";
case ShaderValueType.Integer:
return "int";
case ShaderValueType.Uint:
return "uint";
case ShaderValueType.Uint4:
return "uint4";
default:
return "Error";
}
}
public static int GetVectorCount(this ShaderValueType type)
{
switch (type)
{
case ShaderValueType.Float:
return 1;
case ShaderValueType.Float2:
return 2;
case ShaderValueType.Float3:
return 3;
case ShaderValueType.Float4:
return 4;
default:
return 0;
}
}
}
}