]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Remove unused stages from shader programs
[libs/gl.git] / source / glsl / compiler.cpp
index 4c8c1d03d893d277395b2f64b5def34aa7e55168..05bf421cd422428dbf1b09b5eef3d0daf737c3f9 100644 (file)
@@ -107,6 +107,19 @@ void Compiler::compile(Mode mode)
                        ++i;
        }
 
+       Stage *prev_stage = 0;
+       for(auto i=module->stages.begin(); i!=module->stages.end(); )
+       {
+               if(i->functions.empty())
+                       i = module->stages.erase(i);
+               else
+               {
+                       i->previous = prev_stage;
+                       prev_stage = &*i;
+                       ++i;
+               }
+       }
+
        for(Stage &s: module->stages)
        {
                StructuralFeatureConverter().apply(s, features);