]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/generate.cpp
Store constant id limit as range, not max value
[libs/gl.git] / source / glsl / generate.cpp
index 92d172c586469f78cd17c5d338700fc68e503c00..3387667283b425c4f9fdb74245b1da577c2b9d5b 100644 (file)
@@ -13,12 +13,11 @@ void ConstantIdAssigner::apply(Module &module, const Features &features)
        for(list<Stage>::iterator i=module.stages.begin(); i!=module.stages.end(); ++i)
                i->content.visit(*this);
 
-       unsigned max_id = features.max_constant_id;
        for(vector<VariableDeclaration *>::iterator i=auto_constants.begin(); i!=auto_constants.end(); ++i)
        {
-               unsigned id = hash32((*i)->name)%(max_id+1);
+               unsigned id = hash32((*i)->name)%features.constant_id_range;
                while(used_ids.count(id))
-                       ++id;
+                       id = (id+1)%features.constant_id_range;
 
                vector<Layout::Qualifier> &qualifiers = (*i)->layout->qualifiers;
                for(vector<Layout::Qualifier>::iterator j=qualifiers.begin(); j!=qualifiers.end(); ++j)