From 044195b2094948b9848629a766115ce0d708c8b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Sat, 17 Apr 2021 18:11:47 +0200 Subject: [PATCH] Minor fixes --- include/Nazara/OpenGLRenderer.hpp | 1 + src/Nazara/OpenGLRenderer/OpenGLShaderModule.cpp | 4 +--- src/Nazara/Shader/GlslWriter.cpp | 5 +++++ src/Nazara/Shader/SpirvAstVisitor.cpp | 5 +++++ tests/Engine/Shader/AccessMember.cpp | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/Nazara/OpenGLRenderer.hpp b/include/Nazara/OpenGLRenderer.hpp index ffcb93277..da8bf0c08 100644 --- a/include/Nazara/OpenGLRenderer.hpp +++ b/include/Nazara/OpenGLRenderer.hpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include diff --git a/src/Nazara/OpenGLRenderer/OpenGLShaderModule.cpp b/src/Nazara/OpenGLRenderer/OpenGLShaderModule.cpp index 4eb1154f2..b284c4a98 100644 --- a/src/Nazara/OpenGLRenderer/OpenGLShaderModule.cpp +++ b/src/Nazara/OpenGLRenderer/OpenGLShaderModule.cpp @@ -123,9 +123,7 @@ namespace Nz if (!shader.Create(device, ToOpenGL(shaderStage))) throw std::runtime_error("failed to create shader"); //< TODO: Handle error message - ShaderAst::AstCloner cloner; //< FIXME: Required because writer may update AST - ShaderAst::StatementPtr clonedAst = cloner.Clone(shaderAst); - std::string code = writer.Generate(shaderStage, clonedAst, states); + std::string code = writer.Generate(shaderStage, shaderAst, states); shader.SetSource(code.data(), code.size()); shader.Compile(); diff --git a/src/Nazara/Shader/GlslWriter.cpp b/src/Nazara/Shader/GlslWriter.cpp index b1b565a02..98ebb2b0f 100644 --- a/src/Nazara/Shader/GlslWriter.cpp +++ b/src/Nazara/Shader/GlslWriter.cpp @@ -734,6 +734,11 @@ namespace Nz LeaveScope(); } + void GlslWriter::Visit(ShaderAst::DeclareOptionStatement& node) + { + /* nothing to do */ + } + void GlslWriter::Visit(ShaderAst::DeclareStructStatement& node) { assert(node.structIndex); diff --git a/src/Nazara/Shader/SpirvAstVisitor.cpp b/src/Nazara/Shader/SpirvAstVisitor.cpp index f629fba80..d34e7fcfd 100644 --- a/src/Nazara/Shader/SpirvAstVisitor.cpp +++ b/src/Nazara/Shader/SpirvAstVisitor.cpp @@ -600,6 +600,11 @@ namespace Nz m_instructions.Append(SpirvOp::OpFunctionEnd); } + void SpirvAstVisitor::Visit(ShaderAst::DeclareOptionStatement& node) + { + /* nothing to do */ + } + void SpirvAstVisitor::Visit(ShaderAst::DeclareStructStatement& node) { assert(node.structIndex); diff --git a/tests/Engine/Shader/AccessMember.cpp b/tests/Engine/Shader/AccessMember.cpp index 104c76a9d..27914dc16 100644 --- a/tests/Engine/Shader/AccessMember.cpp +++ b/tests/Engine/Shader/AccessMember.cpp @@ -76,7 +76,7 @@ SCENARIO("Shader generation", "[Shader]") external->externalVars.push_back({ std::nullopt, "ubo", - Nz::ShaderAst::IdentifierType{ "outerStruct" } + Nz::ShaderAst::UniformType{ Nz::ShaderAst::IdentifierType{ "outerStruct" } } }); statements.push_back(std::move(external));