mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 12:12:28 +00:00
Merge pull request #80705 from bitsawer/add_shader_load_error_checks
Fix Shader and ShaderInclude resource loading
This commit is contained in:
commit
1c9e45f5dd
@ -234,13 +234,16 @@ Ref<Resource> ResourceFormatLoaderShader::load(const String &p_path, const Strin
|
||||
*r_error = ERR_FILE_CANT_OPEN;
|
||||
}
|
||||
|
||||
Ref<Shader> shader;
|
||||
shader.instantiate();
|
||||
|
||||
Vector<uint8_t> buffer = FileAccess::get_file_as_bytes(p_path);
|
||||
Error error = OK;
|
||||
Vector<uint8_t> buffer = FileAccess::get_file_as_bytes(p_path, &error);
|
||||
ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader: " + p_path);
|
||||
|
||||
String str;
|
||||
str.parse_utf8((const char *)buffer.ptr(), buffer.size());
|
||||
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();
|
||||
|
||||
shader->set_include_path(p_path);
|
||||
shader->set_code(str);
|
||||
|
@ -88,13 +88,16 @@ Ref<Resource> ResourceFormatLoaderShaderInclude::load(const String &p_path, cons
|
||||
*r_error = ERR_FILE_CANT_OPEN;
|
||||
}
|
||||
|
||||
Ref<ShaderInclude> shader_inc;
|
||||
shader_inc.instantiate();
|
||||
|
||||
Vector<uint8_t> buffer = FileAccess::get_file_as_bytes(p_path);
|
||||
Error error = OK;
|
||||
Vector<uint8_t> buffer = FileAccess::get_file_as_bytes(p_path, &error);
|
||||
ERR_FAIL_COND_V_MSG(error, nullptr, "Cannot load shader include: " + p_path);
|
||||
|
||||
String str;
|
||||
str.parse_utf8((const char *)buffer.ptr(), buffer.size());
|
||||
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();
|
||||
|
||||
shader_inc->set_include_path(p_path);
|
||||
shader_inc->set_code(str);
|
||||
|
Loading…
Reference in New Issue
Block a user