]> git.tdb.fi Git - libs/gl.git/blobdiff - source/renderer.cpp
Add a function to flush shader data in Renderer
[libs/gl.git] / source / renderer.cpp
index cc00ac8e3affda145ec8e2f8afcc5c1d7bb4af40..c5fe3c64a8baca0d39b7966d43edc61c3efa9be4 100644 (file)
@@ -134,14 +134,19 @@ void Renderer::add_shader_data(const ProgramData &d)
                ++state->shdata_count;
        else
        {
-               if(shdata_stack.size()>state->shdata_count)
-                       shdata_stack.erase(shdata_stack.begin()+state->shdata_count, shdata_stack.end());
+               flush_shader_data();
                shdata_stack.push_back(&d);
                state->shdata_count = shdata_stack.size();
                changed |= 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());
+}
+
 void Renderer::set_mesh(const Mesh *m)
 {
        state->mesh = m;
@@ -162,6 +167,11 @@ void Renderer::set_reverse_winding(bool r)
        state->reverse_winding = r;
 }
 
+void Renderer::set_object_lod_bias(unsigned b)
+{
+       state->object_lod_bias = b;
+}
+
 void Renderer::push_state()
 {
        state_stack.push_back(state_stack.back());
@@ -449,7 +459,8 @@ Renderer::State::State():
        mesh(0),
        vertex_setup(0),
        winding_test(0),
-       reverse_winding(false)
+       reverse_winding(false),
+       object_lod_bias(0)
 { }
 
 } // namespace GL