summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-04-28 11:14:24 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-04-28 11:14:24 +0200
commit1becfea37cd66ad0f13ba5770e5d5627b3fed23f (patch)
treecd780c136b6c09a3c25f277f60a2c2c408645922
parente6dba24a26628bc582738f318fabe99e447e8ee6 (diff)
parent35b06f05a20626356bd279565bc00a7086eea7a6 (diff)
downloadredot-engine-1becfea37cd66ad0f13ba5770e5d5627b3fed23f.tar.gz
Merge pull request #76535 from bitsawer/revert_uniform_type_check
Revert "Fix ShaderMaterial uniform type changes"
-rw-r--r--scene/resources/material.cpp22
1 files changed, 2 insertions, 20 deletions
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp
index 5e07bf0ff7..3deb1ccaab 100644
--- a/scene/resources/material.cpp
+++ b/scene/resources/material.cpp
@@ -279,28 +279,10 @@ void ShaderMaterial::_get_property_list(List<PropertyInfo> *p_list) const {
groups["<None>"]["<None>"].push_back(info);
}
- const bool is_uniform_cached = param_cache.has(E->get().name);
- bool is_uniform_type_changing = false;
-
- if (is_uniform_cached) {
- // Check if the uniform Variant type changed, for example vec3 to vec4.
- const Variant &cached = param_cache.get(E->get().name);
- is_uniform_type_changing = E->get().type != cached.get_type();
-
- if (!is_uniform_type_changing && E->get().type == Variant::OBJECT && cached.get_type() == Variant::OBJECT) {
- // Check if the Object class (hint string) changed, for example Texture2D sampler to Texture3D.
- // Allow inheritance, for example Texture2D type sampler should also accept CompressedTexture2D.
- Object *cached_obj = cached;
- if (!cached_obj->is_class(E->get().hint_string)) {
- is_uniform_type_changing = true;
- }
- }
- }
-
PropertyInfo info = E->get();
info.name = "shader_parameter/" + info.name;
- if (!is_uniform_cached || is_uniform_type_changing) {
- // Property has never been edited or its type changed, retrieve with default value.
+ if (!param_cache.has(E->get().name)) {
+ // Property has never been edited, retrieve with default value.
Variant default_value = RenderingServer::get_singleton()->shader_get_parameter_default(shader->get_rid(), E->get().name);
param_cache.insert(E->get().name, default_value);
remap_cache.insert(info.name, E->get().name);