summaryrefslogtreecommitdiffstats
path: root/platform/macos/display_server_macos.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/macos/display_server_macos.mm')
-rw-r--r--platform/macos/display_server_macos.mm25
1 files changed, 16 insertions, 9 deletions
diff --git a/platform/macos/display_server_macos.mm b/platform/macos/display_server_macos.mm
index 53db9a5abf..09df60bf06 100644
--- a/platform/macos/display_server_macos.mm
+++ b/platform/macos/display_server_macos.mm
@@ -4499,6 +4499,22 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM
rendering_driver = p_rendering_driver;
#if defined(GLES3_ENABLED)
+ if (rendering_driver == "opengl3_angle") {
+ gl_manager_angle = memnew(GLManagerANGLE_MacOS);
+ if (gl_manager_angle->initialize() != OK) {
+ memdelete(gl_manager_angle);
+ gl_manager_angle = nullptr;
+ bool fallback = GLOBAL_GET("rendering/gl_compatibility/fallback_to_native");
+ if (fallback) {
+ WARN_PRINT("Your video card drivers seem not to support the required Metal version, switching to native OpenGL.");
+ rendering_driver = "opengl3";
+ } else {
+ ERR_FAIL_MSG("Could not initialize OpenGL.");
+ return;
+ }
+ }
+ }
+
if (rendering_driver == "opengl3") {
gl_manager_legacy = memnew(GLManagerLegacy_MacOS);
if (gl_manager_legacy->initialize() != OK) {
@@ -4509,15 +4525,6 @@ DisplayServerMacOS::DisplayServerMacOS(const String &p_rendering_driver, WindowM
return;
}
}
- if (rendering_driver == "opengl3_angle") {
- gl_manager_angle = memnew(GLManagerANGLE_MacOS);
- if (gl_manager_angle->initialize() != OK) {
- memdelete(gl_manager_angle);
- gl_manager_angle = nullptr;
- r_error = ERR_UNAVAILABLE;
- ERR_FAIL_MSG("Could not initialize OpenGL.");
- }
- }
#endif
#if defined(VULKAN_ENABLED)
if (rendering_driver == "vulkan") {