]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/module.cpp
Always show shader compiler diagnostics in debug builds
[libs/gl.git] / source / core / module.cpp
index 406b4739d1c765f981ddd992081411f5203b4123..009733a977041458a2f0602e4e05353ba6d84515 100644 (file)
@@ -1,6 +1,6 @@
+#include <msp/io/print.h>
 #include "module.h"
 #include "resources.h"
-#include "glsl/compiler.h"
 
 using namespace std;
 
@@ -14,18 +14,14 @@ void Module::set_source(const string &src)
 {
        SL::Compiler compiler;
        compiler.set_source(src);
-       compiler.compile(SL::Compiler::MODULE);
-       prepared_source = compiler.get_combined_glsl();
-       source_map = compiler.get_source_map();
+       compile(compiler);
 }
 
 void Module::load_source(IO::Base &io, Resources *res, const string &name)
 {
        SL::Compiler compiler;
        compiler.load_source(io, res, name);
-       compiler.compile(SL::Compiler::MODULE);
-       prepared_source = compiler.get_combined_glsl();
-       source_map = compiler.get_source_map();
+       compile(compiler);
 }
 
 void Module::load_source(IO::Base &io, const string &name)
@@ -33,5 +29,17 @@ void Module::load_source(IO::Base &io, const string &name)
        load_source(io, 0, name);
 }
 
+void Module::compile(SL::Compiler &compiler)
+{
+       compiler.compile(SL::Compiler::MODULE);
+       prepared_source = compiler.get_combined_glsl();
+       source_map = compiler.get_source_map();
+#ifdef DEBUG
+       string diagnostics = compiler.get_diagnostics();
+       if(!diagnostics.empty())
+               IO::print("Module diagnostics:\n%s\n", diagnostics);
+#endif
+}
+
 } // namespace GL
 } // namespace Msp