+ if(r.type==PipelineState::UNIFORM_BLOCK)
+ {
+ if(r.binding>=0)
+ {
+ glBindBufferRange(GL_UNIFORM_BUFFER, r.binding, r.buffer->id, r.block->get_offset(), r.block->get_data_size());
+ dev_state.bound_uniform_blocks[r.binding] = 1;
+ }
+ else if(r.binding==ReflectData::DEFAULT_BLOCK && self.shprog)
+ {
+ const char *data = static_cast<const char *>(r.block->get_data_pointer());
+ for(const Program::UniformCall &call: self.shprog->uniform_calls)
+ call.func(call.location, call.size, data+call.location*16);
+ }
+ }
+ else if(r.type==PipelineState::SAMPLED_TEXTURE)