diff options
author | reduz <reduzio@gmail.com> | 2022-03-06 12:57:09 +0100 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2022-03-06 13:03:33 +0100 |
commit | b0ca03b0a24116976e0859d7766e2ca5eb18cb88 (patch) | |
tree | 9b6f023ba0c50dbad9edbcd7e2d7481ba527f6fa /servers/rendering/rendering_device_binds.h | |
parent | 272b35595474e02b640dcd51201bc07424d43bae (diff) | |
download | redot-engine-b0ca03b0a24116976e0859d7766e2ca5eb18cb88.tar.gz |
Add a UniformSet cache
* Changed syntax usage for RD::Uniform to create faster with a single RID
* Converted render pass setup to use this in clustered renderer to test.
This is the first step into creating a proper uniform set cache system to simplify large parts of the codebase.
Diffstat (limited to 'servers/rendering/rendering_device_binds.h')
-rw-r--r-- | servers/rendering/rendering_device_binds.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/servers/rendering/rendering_device_binds.h b/servers/rendering/rendering_device_binds.h index b07857364b..ee5bf8b891 100644 --- a/servers/rendering/rendering_device_binds.h +++ b/servers/rendering/rendering_device_binds.h @@ -441,23 +441,23 @@ public: RD_SETGET(RD::UniformType, uniform_type) RD_SETGET(int32_t, binding) - void add_id(const RID &p_id) { base.ids.push_back(p_id); } - void clear_ids() { base.ids.clear(); } + void add_id(const RID &p_id) { base.append_id(p_id); } + void clear_ids() { base.clear_ids(); } Array get_ids() const { Array ids; - for (int i = 0; i < base.ids.size(); i++) { - ids.push_back(base.ids[i]); + for (uint32_t i = 0; i < base.get_id_count(); i++) { + ids.push_back(base.get_id(i)); } return ids; } protected: void _set_ids(const Array &p_ids) { - base.ids.clear(); + base.clear_ids(); for (int i = 0; i < p_ids.size(); i++) { RID id = p_ids[i]; ERR_FAIL_COND(id.is_null()); - base.ids.push_back(id); + base.append_id(id); } } static void _bind_methods() { |