Handle shader options of any type
This commit is contained in:
@@ -140,19 +140,20 @@ namespace Nz::ShaderAst
|
||||
Value(value);
|
||||
};
|
||||
|
||||
static_assert(std::variant_size_v<decltype(node.value)> == 10);
|
||||
static_assert(std::variant_size_v<decltype(node.value)> == 11);
|
||||
switch (typeIndex)
|
||||
{
|
||||
case 0: SerializeValue(bool()); break;
|
||||
case 1: SerializeValue(float()); break;
|
||||
case 2: SerializeValue(Int32()); break;
|
||||
case 3: SerializeValue(UInt32()); break;
|
||||
case 4: SerializeValue(Vector2f()); break;
|
||||
case 5: SerializeValue(Vector3f()); break;
|
||||
case 6: SerializeValue(Vector4f()); break;
|
||||
case 7: SerializeValue(Vector2i32()); break;
|
||||
case 8: SerializeValue(Vector3i32()); break;
|
||||
case 9: SerializeValue(Vector4i32()); break;
|
||||
case 0: break;
|
||||
case 1: SerializeValue(bool()); break;
|
||||
case 2: SerializeValue(float()); break;
|
||||
case 3: SerializeValue(Int32()); break;
|
||||
case 4: SerializeValue(UInt32()); break;
|
||||
case 5: SerializeValue(Vector2f()); break;
|
||||
case 6: SerializeValue(Vector3f()); break;
|
||||
case 7: SerializeValue(Vector4f()); break;
|
||||
case 8: SerializeValue(Vector2i32()); break;
|
||||
case 9: SerializeValue(Vector3i32()); break;
|
||||
case 10: SerializeValue(Vector4i32()); break;
|
||||
default: throw std::runtime_error("unexpected data type");
|
||||
}
|
||||
}
|
||||
@@ -261,7 +262,7 @@ namespace Nz::ShaderAst
|
||||
OptVal(node.optIndex);
|
||||
Value(node.optName);
|
||||
Type(node.optType);
|
||||
Node(node.initialValue);
|
||||
Node(node.defaultValue);
|
||||
}
|
||||
|
||||
void AstSerializerBase::Serialize(DeclareStructStatement& node)
|
||||
|
||||
Reference in New Issue
Block a user