diff options
| author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2024-06-28 17:17:20 +0200 |
|---|---|---|
| committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2024-06-28 19:31:50 +0200 |
| commit | 32d9c93af3e5ff999444eb8e52699110b0fe9afd (patch) | |
| tree | 89f95ff9f1e6fd79c21047e489a0e0de12cfd6f4 /platform/linuxbsd/x11/display_server_x11.cpp | |
| parent | 811ce36c6090013f1a48676c0388892bf1621288 (diff) | |
| download | redot-engine-32d9c93af3e5ff999444eb8e52699110b0fe9afd.tar.gz | |
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.cpp | 10 |
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(); |
