X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fpipelinestate.cpp;h=fd474d28f3f106d0dcdf1226a28d42755877b09d;hp=210a0703868035dc69572fc56cc50eaf67b9ff08;hb=1b2e58f0e3c84e45b40e89b07939e89e7a211179;hpb=7c17e52fbd532ec4db556b69b520d9372076e86d diff --git a/source/core/pipelinestate.cpp b/source/core/pipelinestate.cpp index 210a0703..fd474d28 100644 --- a/source/core/pipelinestate.cpp +++ b/source/core/pipelinestate.cpp @@ -2,6 +2,7 @@ #include #include "error.h" #include "pipelinestate.h" +#include "uniformblock.h" using namespace std; @@ -44,9 +45,11 @@ void PipelineState::set_uniform_block(int binding, const UniformBlock *block) if(i==uniform_blocks.end() || i->binding!=binding) i = uniform_blocks.insert(i, BoundUniformBlock(binding)); i->used = block; - if(block!=i->block || binding<0) + const Buffer *buffer = (block ? block->get_buffer() : 0); + if(block!=i->block || buffer!=i->buffer || binding<0) { i->block = block; + i->buffer = buffer; i->changed = true; changes |= UNIFORMS; }