소스 검색

Fix global shader texture uniform

LuoZhihao 1 개월 전
부모
커밋
7419e4429d
2개의 변경된 파일16개의 추가작업 그리고 8개의 파일을 삭제
  1. 8 4
      drivers/gles3/storage/material_storage.cpp
  2. 8 4
      servers/rendering/renderer_rd/storage_rd/material_storage.cpp

+ 8 - 4
drivers/gles3/storage/material_storage.cpp

@@ -872,10 +872,14 @@ void MaterialData::update_textures(const HashMap<StringName, Variant> &p_paramet
 						E->value = global_textures_pass;
 					}
 
-					if (v->override.get_type() == Variant::RID && ((RID)v->override).is_valid()) {
-						textures.push_back(v->override);
-					} else if (v->value.get_type() == Variant::RID && ((RID)v->value).is_valid()) {
-						textures.push_back(v->value);
+					RID override_rid = v->override;
+					if (override_rid.is_valid()) {
+						textures.push_back(override_rid);
+					} else {
+						RID value_rid = v->value;
+						if (value_rid.is_valid()) {
+							textures.push_back(value_rid);
+						}
 					}
 				}
 

+ 8 - 4
servers/rendering/renderer_rd/storage_rd/material_storage.cpp

@@ -906,10 +906,14 @@ void MaterialStorage::MaterialData::update_textures(const HashMap<StringName, Va
 						E->value = global_textures_pass;
 					}
 
-					if (v->override.get_type() == Variant::RID && ((RID)v->override).is_valid()) {
-						textures.push_back(v->override);
-					} else if (v->value.get_type() == Variant::RID && ((RID)v->value).is_valid()) {
-						textures.push_back(v->value);
+					RID override_rid = v->override;
+					if (override_rid.is_valid()) {
+						textures.push_back(override_rid);
+					} else {
+						RID value_rid = v->value;
+						if (value_rid.is_valid()) {
+							textures.push_back(value_rid);
+						}
 					}
 				}