diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-07-26 15:16:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-26 15:16:33 +0200 |
commit | 2d2b85d400e341e9b62a215e7fc2f3f73c075fe7 (patch) | |
tree | 9c3d269a382f3eef852bf4c65071b6935bdc7d6f /scene/resources/shader.cpp | |
parent | 1c63fbed4366803f1c63392e8d3f30955bd05736 (diff) | |
parent | 886c2d9681e83d8e1aed2a793f5d8136c2a98c4e (diff) |
Merge pull request #62972 from Chaosus/shader_groups
Implement shader uniform groups/subgroups
Diffstat (limited to 'scene/resources/shader.cpp')
-rw-r--r-- | scene/resources/shader.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp index 16117986fe..74031e02d7 100644 --- a/scene/resources/shader.cpp +++ b/scene/resources/shader.cpp @@ -103,7 +103,7 @@ String Shader::get_code() const { return code; } -void Shader::get_param_list(List<PropertyInfo> *p_params) const { +void Shader::get_param_list(List<PropertyInfo> *p_params, bool p_get_groups) const { _update_shader(); List<PropertyInfo> local; @@ -112,12 +112,16 @@ void Shader::get_param_list(List<PropertyInfo> *p_params) const { params_cache_dirty = false; for (PropertyInfo &pi : local) { - if (default_textures.has(pi.name)) { //do not show default textures + bool is_group = pi.usage == PROPERTY_USAGE_GROUP || pi.usage == PROPERTY_USAGE_SUBGROUP; + if (!p_get_groups && is_group) { continue; } - String original_name = pi.name; - pi.name = "shader_param/" + pi.name; - params_cache[pi.name] = original_name; + if (!is_group) { + if (default_textures.has(pi.name)) { //do not show default textures + continue; + } + params_cache[pi.name] = pi.name; + } if (p_params) { //small little hack if (pi.type == Variant::RID) { |