]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/renderer.cpp
Remove deprecated functions from Renderer
[libs/gl.git] / source / render / renderer.cpp
index 8a2833b8b55b5551a5ae992d7cd8a22ef0108299..044ab55db7d3404d0f7ac9db3181d1e3eb3e5281 100644 (file)
@@ -110,18 +110,6 @@ void Renderer::flush_textures()
        texture_stack.erase(texture_stack.begin()+state->texture_count, texture_stack.end());
 }
 
-void Renderer::set_material(const Material *m)
-{
-       if(m)
-               add_shader_data(m->get_shader_data());
-}
-
-void Renderer::set_lighting(const Lighting *l)
-{
-       if(l)
-               add_shader_data(l->get_shader_data());
-}
-
 void Renderer::set_shader_program(const Program *p, const ProgramData *d)
 {
        state->shprog = p;
@@ -141,13 +129,13 @@ void Renderer::add_shader_data(const ProgramData &d)
                }
        }
 
-       flush_shader_data_();
+       flush_shader_data();
        shdata_stack.push_back(&d);
        state->shdata_count = shdata_stack.size();
        changed |= SHADER_DATA;
 }
 
-void Renderer::flush_shader_data_()
+void Renderer::flush_shader_data()
 {
        if(shdata_stack.size()>state->shdata_count)
                shdata_stack.erase(shdata_stack.begin()+state->shdata_count, shdata_stack.end());
@@ -303,11 +291,13 @@ void Renderer::apply_state()
                flush_textures();
 
        for(const BoundTexture &t: texture_stack)
-       {
-               int unit = (t.tag.id ? state->shprog->get_uniform_binding(t.tag) : t.unit);
-               if(unit>=0)
-                       pipeline_state.set_texture(unit, t.texture, t.sampler);
-       }
+               if(t.texture && t.replaced<0)
+               {
+                       if(t.binding<0 || shprog_changed)
+                               t.binding = state->shprog->get_uniform_binding(t.tag);
+                       if(t.binding>=0)
+                               pipeline_state.set_texture(t.binding, t.texture, t.sampler);
+               }
 
        bool shdata_changed = changed&SHADER_DATA;
        for(auto i=shdata_stack.begin(); (!shdata_changed && i!=shdata_stack.end()); ++i)