#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"
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>
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)