summaryrefslogtreecommitdiffstats
path: root/servers
diff options
context:
space:
mode:
authorStuart Carnie <stuart.carnie@gmail.com>2024-08-31 07:22:24 +1000
committerStuart Carnie <stuart.carnie@gmail.com>2024-08-31 08:29:07 +1000
commita7a245de920c4b9e0adc378af16f0c4b5aa6d4e2 (patch)
tree71418105faa783fb5ebcb26af03ae942e33986af /servers
parenta5830f6eb9fe25fbb7e58a723dbea8509aec8a85 (diff)
downloadredot-engine-a7a245de920c4b9e0adc378af16f0c4b5aa6d4e2.tar.gz
Metal: enable for betsy and lightmapper modules
To support this, the rendering_context_driver_metal.h header was updated to recognise when it is included in non-Objective-C source files.
Diffstat (limited to 'servers')
-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();