X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frenderer.cpp;fp=source%2Frenderer.cpp;h=c5fe3c64a8baca0d39b7966d43edc61c3efa9be4;hp=90ac455107ffc078a6db1dbe8e452ea06ed44f7a;hb=afb95d09c066b45b7a66b644c04e2d0b2cee2723;hpb=2341b3575c874b1960814264fa759ad584bf3134 diff --git a/source/renderer.cpp b/source/renderer.cpp index 90ac4551..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;