X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.cpp;h=b2c4f9ba2cbed88dee8b4e70f00d8a6c4afb5739;hp=7021c62d9a2949c9459e6fa183955829bf04f469;hb=cdc2c7176202b4f8d1f3fd21db9c571511b32fa2;hpb=5bc24ab4e232241a9e4696787e22f2cb0c3602d8 diff --git a/source/glsl/compiler.cpp b/source/glsl/compiler.cpp index 7021c62d..b2c4f9ba 100644 --- a/source/glsl/compiler.cpp +++ b/source/glsl/compiler.cpp @@ -78,6 +78,9 @@ void Compiler::specialize(const map &sv) void Compiler::compile(Mode mode) { + if(specialized && mode!=PROGRAM) + throw invalid_operation("Compiler::compile"); + for(list::iterator i=module->stages.begin(); i!=module->stages.end(); ++i) generate(*i); ConstantIdAssigner().apply(*module, features); @@ -93,7 +96,7 @@ void Compiler::compile(Mode mode) if(!valid) throw invalid_shader_source(get_diagnostics()); - if(mode==PROGRAM && specialized) + if(specialized) { for(list::iterator i=module->stages.begin(); i!=module->stages.end(); ++i) ConstantSpecializer().apply(*i, spec_values);