summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scene/resources/shader.cpp13
-rw-r--r--scene/resources/shader_include.cpp13
2 files changed, 16 insertions, 10 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);
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);