summaryrefslogtreecommitdiffstats
path: root/servers/display_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'servers/display_server.cpp')
-rw-r--r--servers/display_server.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/servers/display_server.cpp b/servers/display_server.cpp
index 8cb3e560ac..12456fc828 100644
--- a/servers/display_server.cpp
+++ b/servers/display_server.cpp
@@ -41,6 +41,9 @@
#if defined(D3D12_ENABLED)
#include "drivers/d3d12/rendering_context_driver_d3d12.h"
#endif
+#if defined(METAL_ENABLED)
+#include "drivers/metal/rendering_context_driver_metal.h"
+#endif
DisplayServer *DisplayServer::singleton = nullptr;
@@ -1232,6 +1235,15 @@ bool DisplayServer::can_create_rendering_device() {
rcd = memnew(RenderingContextDriverD3D12);
}
#endif
+#ifdef METAL_ENABLED
+ if (rcd == nullptr) {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunguarded-availability"
+ // Eliminate "RenderingContextDriverMetal is only available on iOS 14.0 or newer".
+ rcd = memnew(RenderingContextDriverMetal);
+#pragma clang diagnostic pop
+ }
+#endif
if (rcd != nullptr) {
err = rcd->initialize();