diff --git a/src/Nazara/Shader/Ast/SanitizeVisitor.cpp b/src/Nazara/Shader/Ast/SanitizeVisitor.cpp index 31d8b9ff5..10a1762e4 100644 --- a/src/Nazara/Shader/Ast/SanitizeVisitor.cpp +++ b/src/Nazara/Shader/Ast/SanitizeVisitor.cpp @@ -202,7 +202,7 @@ namespace Nz::ShaderAst else accessIdentifierPtr = static_cast(indexedExpr.get()); - accessIdentifierPtr->identifiers.push_back(s->members[fieldIndex].name); + accessIdentifierPtr->identifiers.push_back(fieldPtr->name); accessIdentifierPtr->cachedExpressionType = ResolveType(fieldPtr->type); } else diff --git a/src/Nazara/Shader/GlslWriter.cpp b/src/Nazara/Shader/GlslWriter.cpp index 766a79ff4..96c1ccc6f 100644 --- a/src/Nazara/Shader/GlslWriter.cpp +++ b/src/Nazara/Shader/GlslWriter.cpp @@ -1118,6 +1118,9 @@ namespace Nz bool first = true; for (const auto& member : node.description.members) { + if (member.cond.HasValue() && !member.cond.GetResultingValue()) + continue; + if (!first) AppendLine();