Avoid crashing when custom GLSL shaders are imported when using the gl_compatibility renderer
This commit is contained in:
parent
228db366bf
commit
ccaebcd5e0
2 changed files with 3 additions and 0 deletions
|
@ -91,6 +91,7 @@ static String _include_function(const String &p_path, void *userpointer) {
|
||||||
|
|
||||||
Error ResourceImporterShaderFile::import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) {
|
Error ResourceImporterShaderFile::import(const String &p_source_file, const String &p_save_path, const HashMap<StringName, Variant> &p_options, List<String> *r_platform_variants, List<String> *r_gen_files, Variant *r_metadata) {
|
||||||
/* STEP 1, Read shader code */
|
/* STEP 1, Read shader code */
|
||||||
|
ERR_FAIL_COND_V_EDMSG((OS::get_singleton()->get_current_rendering_method() == "gl_compatibility"), ERR_UNAVAILABLE, "Cannot import custom .glsl shaders when using the gl_compatibility rendering_method. Please switch to the forward_plus or mobile rendering methods to use custom shaders.");
|
||||||
|
|
||||||
Error err;
|
Error err;
|
||||||
Ref<FileAccess> file = FileAccess::open(p_source_file, FileAccess::READ, &err);
|
Ref<FileAccess> file = FileAccess::open(p_source_file, FileAccess::READ, &err);
|
||||||
|
|
|
@ -31,6 +31,8 @@
|
||||||
#include "rendering_device_binds.h"
|
#include "rendering_device_binds.h"
|
||||||
|
|
||||||
Error RDShaderFile::parse_versions_from_text(const String &p_text, const String p_defines, OpenIncludeFunction p_include_func, void *p_include_func_userdata) {
|
Error RDShaderFile::parse_versions_from_text(const String &p_text, const String p_defines, OpenIncludeFunction p_include_func, void *p_include_func_userdata) {
|
||||||
|
ERR_FAIL_NULL_V(RenderingDevice::get_singleton(), ERR_UNAVAILABLE);
|
||||||
|
|
||||||
Vector<String> lines = p_text.split("\n");
|
Vector<String> lines = p_text.split("\n");
|
||||||
|
|
||||||
bool reading_versions = false;
|
bool reading_versions = false;
|
||||||
|
|
Loading…
Reference in a new issue