summaryrefslogtreecommitdiffstats
path: root/servers/rendering/rendering_device_binds.h
diff options
context:
space:
mode:
authorreduz <reduzio@gmail.com>2022-03-06 12:57:09 +0100
committerreduz <reduzio@gmail.com>2022-03-06 13:03:33 +0100
commitb0ca03b0a24116976e0859d7766e2ca5eb18cb88 (patch)
tree9b6f023ba0c50dbad9edbcd7e2d7481ba527f6fa /servers/rendering/rendering_device_binds.h
parent272b35595474e02b640dcd51201bc07424d43bae (diff)
downloadredot-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.h12
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() {