]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Inject builtins into the module
[libs/gl.git] / source / glsl / compiler.cpp
index 5bec9c8b1b8f475163b50a35b57b0a92e5bec84b..c68b67bd0cd629f81db2838c60840b43c1abe720 100644 (file)
@@ -1,6 +1,7 @@
 #include <msp/core/algorithm.h>
 #include <msp/gl/extensions/ext_gpu_shader4.h>
 #include <msp/strings/format.h>
+#include "builtin.h"
 #include "compatibility.h"
 #include "compiler.h"
 #include "debug.h"
@@ -185,6 +186,13 @@ void Compiler::append_stage(Stage &stage)
                target = &*i;
        }
 
+       if(target->content.body.empty())
+       {
+               Stage *builtins = get_builtins(stage.type);
+               if(builtins && builtins!=&stage)
+                       append_stage(*builtins);
+       }
+
        if(stage.required_features.glsl_version>target->required_features.glsl_version)
                target->required_features.glsl_version = stage.required_features.glsl_version;
        for(NodeList<Statement>::iterator i=stage.content.body.begin(); i!=stage.content.body.end(); ++i)