Prechádzať zdrojové kódy

Fix empty shader resource loading

bitsawer 2 rokov pred
rodič
commit
15eec2450a

+ 4 - 2
scene/resources/shader.cpp

@@ -239,8 +239,10 @@ Ref<Resource> ResourceFormatLoaderShader::load(const String &p_path, const Strin
 	ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader: " + p_path);
 
 	String str;
-	error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
-	ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader: " + p_path);
+	if (buffer.size() > 0) {
+		error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
+		ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader: " + p_path);
+	}
 
 	Ref<Shader> shader;
 	shader.instantiate();

+ 4 - 2
scene/resources/shader_include.cpp

@@ -93,8 +93,10 @@ Ref<Resource> ResourceFormatLoaderShaderInclude::load(const String &p_path, cons
 	ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader include: " + p_path);
 
 	String str;
-	error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
-	ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader include: " + p_path);
+	if (buffer.size() > 0) {
+		error = str.parse_utf8((const char *)buffer.ptr(), buffer.size());
+		ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot parse shader include: " + p_path);
+	}
 
 	Ref<ShaderInclude> shader_inc;
 	shader_inc.instantiate();