diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2022-07-06 09:31:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-06 09:31:08 +0200 |
commit | 398ab31a6bcf1a80a6fc13a56e2f7f8558303d51 (patch) | |
tree | c7ef88b1884c5896c92e6c57fc1eb4aa8224210a | |
parent | 83ad1231a7d3e4c8a7eda97229fa409df263d2e6 (diff) | |
parent | a194043ea81bcc1aa1d431834327ffa778d561bb (diff) |
Merge pull request #62767 from bruvzg/glman_check
Check if GL manager exist to prevent crash when using multithreaded renderer with Vulkan.
-rw-r--r-- | platform/linuxbsd/display_server_x11.cpp | 8 | ||||
-rw-r--r-- | platform/osx/display_server_osx.mm | 4 | ||||
-rw-r--r-- | platform/windows/display_server_windows.cpp | 4 |
3 files changed, 12 insertions, 4 deletions
diff --git a/platform/linuxbsd/display_server_x11.cpp b/platform/linuxbsd/display_server_x11.cpp index ee26abab86..b0f87484b9 100644 --- a/platform/linuxbsd/display_server_x11.cpp +++ b/platform/linuxbsd/display_server_x11.cpp @@ -4175,13 +4175,17 @@ void DisplayServerX11::process_events() { void DisplayServerX11::release_rendering_thread() { #if defined(GLES3_ENABLED) - gl_manager->release_current(); + if (gl_manager) { + gl_manager->release_current(); + } #endif } void DisplayServerX11::make_rendering_thread() { #if defined(GLES3_ENABLED) - gl_manager->make_current(); + if (gl_manager) { + gl_manager->make_current(); + } #endif } diff --git a/platform/osx/display_server_osx.mm b/platform/osx/display_server_osx.mm index b6a5813bd0..4307685422 100644 --- a/platform/osx/display_server_osx.mm +++ b/platform/osx/display_server_osx.mm @@ -2920,7 +2920,9 @@ void DisplayServerOSX::make_rendering_thread() { void DisplayServerOSX::swap_buffers() { #if defined(GLES3_ENABLED) - gl_manager->swap_buffers(); + if (gl_manager) { + gl_manager->swap_buffers(); + } #endif } diff --git a/platform/windows/display_server_windows.cpp b/platform/windows/display_server_windows.cpp index 03d0d0e0bd..e66fa142a7 100644 --- a/platform/windows/display_server_windows.cpp +++ b/platform/windows/display_server_windows.cpp @@ -656,7 +656,9 @@ void DisplayServerWindows::delete_sub_window(WindowID p_window) { void DisplayServerWindows::gl_window_make_current(DisplayServer::WindowID p_window_id) { #if defined(GLES3_ENABLED) - gl_manager->window_make_current(p_window_id); + if (gl_manager) { + gl_manager->window_make_current(p_window_id); + } #endif } |