diff options
author | bitsawer <sawerduster@gmail.com> | 2023-08-17 11:17:54 +0300 |
---|---|---|
committer | bitsawer <sawerduster@gmail.com> | 2023-08-17 11:17:54 +0300 |
commit | 26e3443eef49a7189eba5e1648ae7be13d95afd2 (patch) | |
tree | aa908c9c57595889cc28fd9af89608918f0f947b /scene/resources/shader.cpp | |
parent | a278c1b98a81738a35b96a933a6e6cf771f9ab2d (diff) | |
download | redot-engine-26e3443eef49a7189eba5e1648ae7be13d95afd2.tar.gz |
Fix Shader and ShaderInclude resource loading
Diffstat (limited to 'scene/resources/shader.cpp')
-rw-r--r-- | scene/resources/shader.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp index f919386980..7120b21190 100644 --- a/scene/resources/shader.cpp +++ b/scene/resources/shader.cpp @@ -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); |