You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
57 lines
1.8 KiB
2 years ago
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|