]> git.tdb.fi Git - libs/gl.git/commitdiff
Add a function to query the binding of a single uniform block
authorMikko Rasa <tdb@tdb.fi>
Sun, 16 Jul 2023 15:03:56 +0000 (18:03 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 16 Jul 2023 23:15:44 +0000 (02:15 +0300)
source/core/program.cpp
source/core/program.h

index d678faca25366c492e8f67d85e0b2d04fd704d79..6692ee0c5d36da67b4828d2bc9ef0066fb7e1a23 100644 (file)
@@ -225,6 +225,12 @@ const ReflectData::UniformBlockInfo &Program::get_uniform_block_info(const strin
        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);
index 7495ce5ccc1bc72765be25020a0f5d203840402d..c0db59dac82ab901f819d5c37e3d67e4b40b7d85 100644 (file)
@@ -80,6 +80,7 @@ public:
        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;