]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Split glsl/generate.cpp in two
[libs/gl.git] / source / glsl / compiler.cpp
index 9c37787c32e20424681403939357a740318856ad..b810e52bef5e0af758379f4c12a086a13d22a8e5 100644 (file)
@@ -2,14 +2,15 @@
 #include <msp/strings/format.h>
 #include <msp/strings/utils.h>
 #include "builtin.h"
-#include "compatibility.h"
 #include "compiler.h"
 #include "debug.h"
 #include "error.h"
+#include "finalize.h"
 #include "generate.h"
 #include "glsl_error.h"
 #include "optimize.h"
 #include "output.h"
+#include "resolve.h"
 #include "resources.h"
 #include "validate.h"
 
@@ -264,11 +265,6 @@ void Compiler::generate(Stage &stage, Mode mode)
        resolve(stage, RESOLVE_BLOCKS|RESOLVE_TYPES|RESOLVE_VARIABLES);
 
        ConstantSpecializer().apply(stage, (mode==PROGRAM && specialized ? &spec_values : 0));
-       if(mode==PROGRAM)
-       {
-               LegacyConverter().apply(stage, features);
-               resolve(stage, RESOLVE_VARIABLES|RESOLVE_FUNCTIONS);
-       }
 }
 
 template<typename T>
@@ -358,10 +354,12 @@ Compiler::OptimizeResult Compiler::optimize(Stage &stage)
 
 void Compiler::finalize(Stage &stage, Mode mode)
 {
-       if(get_gl_api()==OPENGL_ES2 && mode==PROGRAM)
-               DefaultPrecisionGenerator().apply(stage);
-       else if(mode==MODULE)
-               PrecisionRemover().apply(stage);
+       if(mode==PROGRAM)
+       {
+               LegacyConverter().apply(stage, features);
+               resolve(stage, RESOLVE_VARIABLES|RESOLVE_FUNCTIONS);
+               PrecisionConverter().apply(stage);
+       }
 }
 
 void Compiler::inject_block(Block &target, const Block &source)