diff --git a/include/Nazara/Renderer/GlslWriter.hpp b/include/Nazara/Renderer/GlslWriter.hpp index 59bfd11e5..0258d0c57 100644 --- a/include/Nazara/Renderer/GlslWriter.hpp +++ b/include/Nazara/Renderer/GlslWriter.hpp @@ -46,6 +46,7 @@ namespace Nz void Append(ShaderAst::ExpressionType type); void Append(const String& txt); + void AppendCommentSection(const String& section); void AppendFunction(Function& func); void AppendLine(const Nz::String& txt = Nz::String()); diff --git a/src/Nazara/Renderer/GlslWriter.cpp b/src/Nazara/Renderer/GlslWriter.cpp index 69e76422a..94349fec0 100644 --- a/src/Nazara/Renderer/GlslWriter.cpp +++ b/src/Nazara/Renderer/GlslWriter.cpp @@ -34,6 +34,9 @@ namespace Nz // Uniforms if (!state.m_uniforms.empty()) { + AppendCommentSection("Uniforms"); + AppendLine(); + for (const auto& pair : state.m_uniforms) { Append("uniform "); @@ -258,6 +261,15 @@ namespace Nz m_currentState->stream << txt; } + void GlslWriter::AppendCommentSection(const String& section) + { + NazaraAssert(m_currentState, "This function should only be called while processing an AST"); + + String stars((section.GetSize() < 33) ? (36 - section.GetSize()) / 2 : 3, '*'); + m_currentState->stream << "/*" << stars << ' ' << section << ' ' << stars << "*/"; + AppendLine(); + } + void GlslWriter::AppendFunction(Function& func) { NazaraAssert(!m_currentFunction, "A function is already being processed");