]> git.tdb.fi Git - libs/gl.git/blob - source/core/module.cpp
Always show shader compiler diagnostics in debug builds
[libs/gl.git] / source / core / module.cpp
1 #include <msp/io/print.h>
2 #include "module.h"
3 #include "resources.h"
4
5 using namespace std;
6
7 namespace Msp {
8 namespace GL {
9
10 Module::Module()
11 { }
12
13 void Module::set_source(const string &src)
14 {
15         SL::Compiler compiler;
16         compiler.set_source(src);
17         compile(compiler);
18 }
19
20 void Module::load_source(IO::Base &io, Resources *res, const string &name)
21 {
22         SL::Compiler compiler;
23         compiler.load_source(io, res, name);
24         compile(compiler);
25 }
26
27 void Module::load_source(IO::Base &io, const string &name)
28 {
29         load_source(io, 0, name);
30 }
31
32 void Module::compile(SL::Compiler &compiler)
33 {
34         compiler.compile(SL::Compiler::MODULE);
35         prepared_source = compiler.get_combined_glsl();
36         source_map = compiler.get_source_map();
37 #ifdef DEBUG
38         string diagnostics = compiler.get_diagnostics();
39         if(!diagnostics.empty())
40                 IO::print("Module diagnostics:\n%s\n", diagnostics);
41 #endif
42 }
43
44 } // namespace GL
45 } // namespace Msp