return *i;
}
+int Program::get_uniform_block_binding(Tag tag) const
+{
+ auto i = lower_bound_member(reflect_data.uniform_blocks, tag, &ReflectData::UniformBlockInfo::tag);
+ return i!=reflect_data.uniform_blocks.end() && i->tag==tag ? i->bind_point : -1;
+}
+
const ReflectData::UniformInfo &Program::get_uniform_info(const string &name) const
{
auto i = lower_bound_member(reflect_data.uniforms, Tag(name), &ReflectData::UniformInfo::tag);
unsigned get_push_constants_size() const { return reflect_data.push_constants_size; }
const std::vector<ReflectData::UniformBlockInfo> &get_uniform_blocks() const { return reflect_data.uniform_blocks; }
const ReflectData::UniformBlockInfo &get_uniform_block_info(const std::string &) const;
+ int get_uniform_block_binding(Tag) const;
const std::vector<ReflectData::UniformInfo> &get_uniforms() const { return reflect_data.uniforms; }
const ReflectData::UniformInfo &get_uniform_info(const std::string &) const;
const ReflectData::UniformInfo &get_uniform_info(Tag) const;