From df7dab4946b1780ca5bdbc8339210c48a6474a24 Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Mon, 10 Mar 2025 11:59:17 +0100 Subject: [PATCH] Use idiomatic templating vargs in a few places to reduce code. --- core/object/class_db.h | 7 +------ .../renderer_rd/framebuffer_cache_rd.h | 20 ++----------------- .../renderer_rd/uniform_set_cache_rd.h | 15 +------------- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/core/object/class_db.h b/core/object/class_db.h index f6c377b247..95a0f2b2d6 100644 --- a/core/object/class_db.h +++ b/core/object/class_db.h @@ -542,13 +542,8 @@ public: #ifdef DEBUG_ENABLED -template -_FORCE_INLINE_ Vector errarray(P... p_args) { - return Vector({ p_args... }); -} - #define BIND_METHOD_ERR_RETURN_DOC(m_method, ...) \ - ::ClassDB::set_method_error_return_values(get_class_static(), m_method, errarray(__VA_ARGS__)); + ::ClassDB::set_method_error_return_values(get_class_static(), m_method, Vector{ __VA_ARGS__ }); #else diff --git a/servers/rendering/renderer_rd/framebuffer_cache_rd.h b/servers/rendering/renderer_rd/framebuffer_cache_rd.h index df0fa6ae9f..3b9f2068ac 100644 --- a/servers/rendering/renderer_rd/framebuffer_cache_rd.h +++ b/servers/rendering/renderer_rd/framebuffer_cache_rd.h @@ -137,16 +137,6 @@ class FramebufferCacheRD : public Object { return _compare_args(idx + 1, textures, args...); } - _FORCE_INLINE_ void _create_args(Vector &textures, const RID &arg) { - textures.push_back(arg); - } - - template - _FORCE_INLINE_ void _create_args(Vector &textures, const RID &arg, Args... args) { - textures.push_back(arg); - _create_args(textures, args...); - } - static FramebufferCacheRD *singleton; uint32_t cache_instances_used = 0; @@ -216,10 +206,7 @@ public: // Not in cache, create: - Vector textures; - _create_args(textures, args...); - - return _allocate_from_data(1, h, table_idx, textures, Vector()); + return _allocate_from_data(1, h, table_idx, Vector{ args... }, Vector()); } template @@ -244,10 +231,7 @@ public: // Not in cache, create: - Vector textures; - _create_args(textures, args...); - - return _allocate_from_data(p_views, h, table_idx, textures, Vector()); + return _allocate_from_data(p_views, h, table_idx, Vector{ args... }, Vector()); } RID get_cache_multipass(const Vector &p_textures, const Vector &p_passes, uint32_t p_views = 1) { diff --git a/servers/rendering/renderer_rd/uniform_set_cache_rd.h b/servers/rendering/renderer_rd/uniform_set_cache_rd.h index 12bc9e08e6..ffbd5cf398 100644 --- a/servers/rendering/renderer_rd/uniform_set_cache_rd.h +++ b/servers/rendering/renderer_rd/uniform_set_cache_rd.h @@ -107,16 +107,6 @@ class UniformSetCacheRD : public Object { return _compare_args(idx + 1, uniforms, args...); } - _FORCE_INLINE_ void _create_args(Vector &uniforms, const RD::Uniform &arg) { - uniforms.push_back(arg); - } - - template - _FORCE_INLINE_ void _create_args(Vector &uniforms, const RD::Uniform &arg, Args... args) { - uniforms.push_back(arg); - _create_args(uniforms, args...); - } - static UniformSetCacheRD *singleton; uint32_t cache_instances_used = 0; @@ -176,10 +166,7 @@ public: // Not in cache, create: - Vector uniforms; - _create_args(uniforms, args...); - - return _allocate_from_uniforms(p_shader, p_set, h, table_idx, uniforms); + return _allocate_from_uniforms(p_shader, p_set, h, table_idx, Vector{ args... }); } template