From f0b6f2122d81c5b1bffa0fbad8ecdbdb5dbb797b Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 19 Jan 2022 20:44:32 +0100 Subject: [PATCH] Shader: backport struct fix from phong-lighting --- src/Nazara/Shader/Ast/SanitizeVisitor.cpp | 2 +- src/Nazara/Shader/GlslWriter.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) 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();