diff options
| author | Thaddeus Crews <repiteo@outlook.com> | 2024-10-24 13:22:53 -0500 |
|---|---|---|
| committer | Thaddeus Crews <repiteo@outlook.com> | 2024-10-24 13:22:53 -0500 |
| commit | 52bbbd4338640ef95299ad5c7637b67fc67b1903 (patch) | |
| tree | 95d152a479385835abad41db901232424626ef19 /servers | |
| parent | f25c082c40032014aa36051b790a48fa6efbc734 (diff) | |
| parent | 2e1fc241f9942ac4f39add73ae7a103ab3222b6d (diff) | |
| download | redot-engine-52bbbd4338640ef95299ad5c7637b67fc67b1903.tar.gz | |
Merge pull request #98247 from TCROC/fix-headless-graphics-driver-and-shader-crash
Don't create rendering device or parse glsl shader in headless mode
Diffstat (limited to 'servers')
| -rw-r--r-- | servers/display_server.cpp | 4 | ||||
| -rw-r--r-- | servers/rendering/rendering_device_binds.cpp | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/servers/display_server.cpp b/servers/display_server.cpp index 8bfe95aa76..428fb77c74 100644 --- a/servers/display_server.cpp +++ b/servers/display_server.cpp @@ -1230,6 +1230,10 @@ void DisplayServer::_input_set_custom_mouse_cursor_func(const Ref<Resource> &p_i } bool DisplayServer::can_create_rendering_device() { + if (get_singleton()->get_name() == "headless") { + return false; + } + #if defined(RD_ENABLED) RenderingDevice *device = RenderingDevice::get_singleton(); if (device) { diff --git a/servers/rendering/rendering_device_binds.cpp b/servers/rendering/rendering_device_binds.cpp index d9ca286b15..e41a56b0a3 100644 --- a/servers/rendering/rendering_device_binds.cpp +++ b/servers/rendering/rendering_device_binds.cpp @@ -31,7 +31,10 @@ #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) { - ERR_FAIL_NULL_V(RenderingDevice::get_singleton(), ERR_UNAVAILABLE); + ERR_FAIL_NULL_V_MSG( + RenderingDevice::get_singleton(), + ERR_UNAVAILABLE, + "Cannot import custom .glsl shaders when running without a RenderingDevice. This can happen if you are using the headless more or the Compatibility backend."); Vector<String> lines = p_text.split("\n"); |
