Improve 47b8c9978f to handle non-vec4 cases

#2000
This commit is contained in:
Wojtek Figat
2023-11-28 14:55:26 +01:00
parent 47b8c9978f
commit cf8b7a20c2
3 changed files with 49 additions and 16 deletions

View File

@@ -271,6 +271,48 @@ ShaderGraphValue ShaderGraphValue::InitForOne(VariantType::Types type)
return ShaderGraphValue(type, String(v));
}
ShaderGraphValue ShaderGraphValue::GetY() const
{
switch (Type)
{
case VariantType::Float2:
case VariantType::Float3:
case VariantType::Float4:
case VariantType::Double2:
case VariantType::Double3:
case VariantType::Double4:
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[1]);
default:
return Zero;
}
}
ShaderGraphValue ShaderGraphValue::GetZ() const
{
switch (Type)
{
case VariantType::Float3:
case VariantType::Float4:
case VariantType::Double3:
case VariantType::Double4:
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[2]);
default:
return Zero;
}
}
ShaderGraphValue ShaderGraphValue::GetW() const
{
switch (Type)
{
case VariantType::Float4:
case VariantType::Double4:
return ShaderGraphValue(VariantType::Types::Float, Value + _subs[3]);
default:
return One;
}
}
ShaderGraphValue ShaderGraphValue::Cast(const ShaderGraphValue& v, VariantType::Types to)
{
// If they are the same types or input value is empty, then just return value