Browse Source

Fix global shader uniform texture loading

bitsawer 2 years ago
parent
commit
41def3740a

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

@@ -1957,14 +1957,16 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture
 			if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) {
 			if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) {
 				//textire
 				//textire
 				if (!p_load_textures) {
 				if (!p_load_textures) {
-					value = RID();
 					continue;
 					continue;
 				}
 				}
 
 
 				String path = value;
 				String path = value;
-				Ref<Resource> resource = ResourceLoader::load(path);
-				ERR_CONTINUE(resource.is_null());
-				value = resource;
+				if (path.is_empty()) {
+					value = RID();
+				} else {
+					Ref<Resource> resource = ResourceLoader::load(path);
+					value = resource;
+				}
 			}
 			}
 
 
 			if (global_shader_uniforms.variables.has(name)) {
 			if (global_shader_uniforms.variables.has(name)) {

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

@@ -1821,14 +1821,16 @@ void MaterialStorage::global_shader_parameters_load_settings(bool p_load_texture
 			if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) {
 			if (gvtype >= RS::GLOBAL_VAR_TYPE_SAMPLER2D) {
 				//textire
 				//textire
 				if (!p_load_textures) {
 				if (!p_load_textures) {
-					value = RID();
 					continue;
 					continue;
 				}
 				}
 
 
 				String path = value;
 				String path = value;
-				Ref<Resource> resource = ResourceLoader::load(path);
-				ERR_CONTINUE(resource.is_null());
-				value = resource;
+				if (path.is_empty()) {
+					value = RID();
+				} else {
+					Ref<Resource> resource = ResourceLoader::load(path);
+					value = resource;
+				}
 			}
 			}
 
 
 			if (global_shader_uniforms.variables.has(name)) {
 			if (global_shader_uniforms.variables.has(name)) {