From 0a5c6d3fd698150f909c64fef8d2b9fe362bb73f Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Sat, 14 Oct 2017 09:03:08 +0100 Subject: [PATCH] Improved the formating of GLSL source that is passed to OpenGL to make debugging shaders easier. --- src/osg/Shader.cpp | 28 +++++++++++++++++++++------- src/osg/State.cpp | 6 +++--- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/osg/Shader.cpp b/src/osg/Shader.cpp index 1b11789fc..349c55edf 100644 --- a/src/osg/Shader.cpp +++ b/src/osg/Shader.cpp @@ -624,13 +624,6 @@ void Shader::PerContextShader::compileShader(osg::State& state) } - if (osg::getNotifyLevel()>=osg::INFO) - { - std::string sourceWithLineNumbers = insertLineNumbers(source); - OSG_INFO << "\nCompiling " << _shader->getTypename() - << " source:\n" << sourceWithLineNumbers << std::endl; - } - GLint compiled = GL_FALSE; // OSG_NOTICE<<"Compiling PerContextShader "<getTypename() + << " source:\n" << sourceWithLineNumbers << std::endl; + } } else { @@ -681,6 +681,12 @@ void Shader::PerContextShader::compileShader(osg::State& state) sourceText[2] = reinterpret_cast(source.c_str()); _extensions->glShaderSource( _glShaderHandle, 3, sourceText, NULL ); + if (osg::getNotifyLevel()>=osg::INFO) + { + std::string sourceWithLineNumbers = insertLineNumbers(versionLine+_defineStr+source); + OSG_INFO << "\nCompiling B: " << _shader->getTypename() + << " source:\n" << sourceWithLineNumbers << std::endl; + } // OSG_NOTICE<<" Version Line : ["<(source.c_str()); _extensions->glShaderSource( _glShaderHandle, 2, sourceText, NULL ); + + if (osg::getNotifyLevel()>=osg::INFO) + { + std::string sourceWithLineNumbers = insertLineNumbers(_defineStr+source); + OSG_INFO << "\nCompiling C: " << _shader->getTypename() + << " source:\n" << sourceWithLineNumbers << std::endl; + } + // OSG_NOTICE<<" DefineStr : ["<