summaryrefslogtreecommitdiffstats
path: root/platform/ios/display_server_ios.mm
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-09-20 16:06:35 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-20 16:06:35 +0200
commitc2564f42aac63f7045572cfbaf0fefe6792788f3 (patch)
treeb1b35b91baee99b7c7c73e68725d4368e9ec1ee0 /platform/ios/display_server_ios.mm
parent330cb45c5a9846a2a4ae1affaf7a5741dcb97a97 (diff)
parent3b839347df1714cab08d373a551da2602e1a7cdf (diff)
downloadredot-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/ios/display_server_ios.mm')
-rw-r--r--platform/ios/display_server_ios.mm14
1 files changed, 11 insertions, 3 deletions
diff --git a/platform/ios/display_server_ios.mm b/platform/ios/display_server_ios.mm
index 5a027e0196..e51d43bd89 100644
--- a/platform/ios/display_server_ios.mm
+++ b/platform/ios/display_server_ios.mm
@@ -107,11 +107,19 @@ DisplayServerIOS::DisplayServerIOS(const String &p_rendering_driver, WindowMode
#endif
if (rendering_context) {
if (rendering_context->initialize() != OK) {
- ERR_PRINT(vformat("Failed to initialize %s context", rendering_driver));
memdelete(rendering_context);
rendering_context = nullptr;
- r_error = ERR_UNAVAILABLE;
- return;
+ 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 {
+ ERR_PRINT(vformat("Failed to initialize %s context", rendering_driver));
+ r_error = ERR_UNAVAILABLE;
+ return;
+ }
}
if (rendering_context->window_create(MAIN_WINDOW_ID, &wpd) != OK) {