+ auto i = lower_bound_member(uniform_blocks, binding, &BoundUniformBlock::binding);
+ if(i==uniform_blocks.end() || i->binding!=binding)
+ i = uniform_blocks.insert(i, BoundUniformBlock(binding));
+ 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;
+ i->used = block;
+ changes |= UNIFORMS;
+ }