summaryrefslogtreecommitdiffstats
path: root/platform/linuxbsd/x11/display_server_x11.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-06-29 13:04:06 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-06-29 13:04:06 +0200
commit0b23be968aa5c7c35e0267b190d8946b3a80d4cf (patch)
tree4d74b4b368336e0e1c065361e3a8a5b4cf14b703 /platform/linuxbsd/x11/display_server_x11.cpp
parentf64f1b3b6d2a3f1d21ea36fe8f619fc2b83d799b (diff)
parent32d9c93af3e5ff999444eb8e52699110b0fe9afd (diff)
downloadredot-engine-0b23be968aa5c7c35e0267b190d8946b3a80d4cf.tar.gz
Merge pull request #93706 from RandomShaper/fix_rend_misc
Improve handling of rendering startup errors
Diffstat (limited to 'platform/linuxbsd/x11/display_server_x11.cpp')
-rw-r--r--platform/linuxbsd/x11/display_server_x11.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp
index ea84130828..49f202883d 100644
--- a/platform/linuxbsd/x11/display_server_x11.cpp
+++ b/platform/linuxbsd/x11/display_server_x11.cpp
@@ -6261,8 +6261,14 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
#if defined(RD_ENABLED)
if (rendering_context) {
- rendering_device = memnew(RenderingDevice);
- rendering_device->initialize(rendering_context, MAIN_WINDOW_ID);
+ if (rendering_device->initialize(rendering_context, MAIN_WINDOW_ID) != OK) {
+ memdelete(rendering_device);
+ rendering_device = nullptr;
+ memdelete(rendering_context);
+ rendering_context = nullptr;
+ r_error = ERR_UNAVAILABLE;
+ return;
+ }
rendering_device->screen_create(MAIN_WINDOW_ID);
RendererCompositorRD::make_current();