diff --git a/OSBindings/Mac/Clock Signal/AppDelegate.swift b/OSBindings/Mac/Clock Signal/AppDelegate.swift index f54ae5faf..4b202f4cf 100644 --- a/OSBindings/Mac/Clock Signal/AppDelegate.swift +++ b/OSBindings/Mac/Clock Signal/AppDelegate.swift @@ -11,12 +11,24 @@ import Cocoa @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { - func applicationDidFinishLaunching(_ aNotification: Notification) { + private var failedMetalCheck = false + func applicationDidFinishLaunching(_ notification: Notification) { // Insert code here to initialize your application. - } - func applicationWillTerminate(_ aNotification: Notification) { - // Insert code here to tear down your application. + // Check for at least one Metal-capable GPU; this check + // will become unnecessary if/when the minimum OS version + // that this project supports reascends to 10.14. + if (MTLCopyAllDevices().count == 0) { + self.failedMetalCheck = true + + let alert = NSAlert() + alert.messageText = "This application requires a Metal-capable GPU" + alert.addButton(withTitle: "Exit") + alert.runModal() + + let application = notification.object as! NSApplication + application.terminate(self) + } } private var hasShownOpenDocument = false