+#include <msp/io/print.h>
#include "module.h"
#include "resources.h"
-#include "glsl/compiler.h"
using namespace std;
namespace Msp {
namespace GL {
-Module::Module()
-{ }
-
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)
load_source(io, 0, name);
}
+
+void GlslModule::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