From 2ea8a11f76ce9646076007bc26a9ad3fb146a0dd Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Sun, 16 Jul 2023 18:03:56 +0300 Subject: [PATCH] Add a function to query the binding of a single uniform block --- source/core/program.cpp | 6 ++++++ source/core/program.h | 1 + 2 files changed, 7 insertions(+) diff --git a/source/core/program.cpp b/source/core/program.cpp index d678faca..6692ee0c 100644 --- a/source/core/program.cpp +++ b/source/core/program.cpp @@ -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); diff --git a/source/core/program.h b/source/core/program.h index 7495ce5c..c0db59da 100644 --- a/source/core/program.h +++ b/source/core/program.h @@ -80,6 +80,7 @@ public: unsigned get_push_constants_size() const { return reflect_data.push_constants_size; } const std::vector &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 &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; -- 2.45.2