]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/program.cpp
Rearrange shader reflection calls
[libs/gl.git] / source / core / program.cpp
index 4707f4c0416e2be185441efebe847e65ed49fd7a..6013e7e82e9f35656f6741bb3743ea25a0237f5b 100644 (file)
@@ -17,6 +17,8 @@ void Program::add_stages(const Module &mod, const map<string, int> &spec_values)
        if(has_stages())
                throw invalid_operation("Program::add_stages");
 
+       reflect_data = ReflectData();
+
        TransientData transient;
        switch(mod.get_format())
        {
@@ -30,17 +32,9 @@ void Program::add_stages(const Module &mod, const map<string, int> &spec_values)
                throw invalid_argument("Program::add_stages");
        }
 
-       reflect_data = ReflectData();
-
-       finalize(mod);
+       finalize(mod, transient);
 
-       if(mod.get_format()==Module::GLSL)
-       {
-               query_uniforms();
-               query_attributes();
-               apply_bindings(transient);
-       }
-       else if(mod.get_format()==Module::SPIR_V)
+       if(mod.get_format()==Module::SPIR_V)
        {
                collect_uniforms(static_cast<const SpirVModule &>(mod), transient.spec_values);
                collect_attributes(static_cast<const SpirVModule &>(mod));