X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frenderer.cpp;h=c5fe3c64a8baca0d39b7966d43edc61c3efa9be4;hb=afb95d09c066b45b7a66b644c04e2d0b2cee2723;hp=cc00ac8e3affda145ec8e2f8afcc5c1d7bb4af40;hpb=b0059bd068c99dadfc922584911fcb25a21b737b;p=libs%2Fgl.git diff --git a/source/renderer.cpp b/source/renderer.cpp index cc00ac8e..c5fe3c64 100644 --- a/source/renderer.cpp +++ b/source/renderer.cpp @@ -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