]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Disallow specializing when compiling a module
[libs/gl.git] / source / glsl / compiler.cpp
index 7021c62d9a2949c9459e6fa183955829bf04f469..b2c4f9ba2cbed88dee8b4e70f00d8a6c4afb5739 100644 (file)
@@ -78,6 +78,9 @@ void Compiler::specialize(const map<string, int> &sv)
 
 void Compiler::compile(Mode mode)
 {
+       if(specialized && mode!=PROGRAM)
+               throw invalid_operation("Compiler::compile");
+
        for(list<Stage>::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<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++i)
                        ConstantSpecializer().apply(*i, spec_values);