diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-20 16:06:35 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-20 16:06:35 +0200 |
commit | c2564f42aac63f7045572cfbaf0fefe6792788f3 (patch) | |
tree | b1b35b91baee99b7c7c73e68725d4368e9ec1ee0 /platform/macos/display_server_macos.mm | |
parent | 330cb45c5a9846a2a4ae1affaf7a5741dcb97a97 (diff) | |
parent | 3b839347df1714cab08d373a551da2602e1a7cdf (diff) | |
download | redot-engine-c2564f42aac63f7045572cfbaf0fefe6792788f3.tar.gz |
Merge pull request #97142 from SheepYhangCN/master
Fallback to OpenGL 3 if other rendering drivers are not supported
Diffstat (limited to 'platform/macos/display_server_macos.mm')
-rw-r--r-- | platform/macos/display_server_macos.mm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm index 52dc51bc96..f6c1d11028 100644 --- a/platform/macos/display_server_macos.mm +++ b/platform/macos/display_server_macos.mm @@ -3649,8 +3649,16 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM if (rendering_context->initialize() != OK) { memdelete(rendering_context); rendering_context = nullptr; - r_error = ERR_CANT_CREATE; - ERR_FAIL_MSG("Could not initialize " + rendering_driver); + bool fallback_to_opengl3 = GLOBAL_GET("rendering/rendering_device/fallback_to_opengl3"); + if (fallback_to_opengl3 && rendering_driver != "opengl3") { + WARN_PRINT("Your device seem not to support MoltenVK or Metal, switching to OpenGL 3."); + rendering_driver = "opengl3"; + OS::get_singleton()->set_current_rendering_method("gl_compatibility"); + OS::get_singleton()->set_current_rendering_driver_name(rendering_driver); + } else { + r_error = ERR_CANT_CREATE; + ERR_FAIL_MSG("Could not initialize " + rendering_driver); + } } } #endif |