diff options
Diffstat (limited to 'scene/resources/shader_include.cpp')
-rw-r--r-- | scene/resources/shader_include.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/scene/resources/shader_include.cpp b/scene/resources/shader_include.cpp index aead484cc1..323be6e491 100644 --- a/scene/resources/shader_include.cpp +++ b/scene/resources/shader_include.cpp @@ -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); |