Shader: Fix struct nesting
This commit is contained in:
parent
0860a0689f
commit
85ce6a4f43
|
|
@ -127,6 +127,9 @@ namespace Nz::ShaderAst
|
|||
|
||||
void TransformVisitor::Visit(DeclareStructStatement& node)
|
||||
{
|
||||
for (auto& member : node.description.members)
|
||||
member.type = ResolveType(member.type);
|
||||
|
||||
node.structIndex = RegisterStruct(node.description.name, node.description);
|
||||
|
||||
AstCloner::Visit(node);
|
||||
|
|
|
|||
|
|
@ -589,7 +589,15 @@ namespace Nz::ShaderAst
|
|||
{
|
||||
assert(m_context);
|
||||
|
||||
//TODO: check members attributes
|
||||
std::unordered_set<std::string> declaredMembers;
|
||||
|
||||
for (auto& member : node.description.members)
|
||||
{
|
||||
if (declaredMembers.find(member.name) != declaredMembers.end())
|
||||
throw AstError{ "struct member " + member.name + " found multiple time" };
|
||||
|
||||
declaredMembers.insert(member.name);
|
||||
}
|
||||
|
||||
AstScopedVisitor::Visit(node);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue