1 2 /* 3 * Copyright 2016 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 #ifndef WindowContextFactory_mac_DEFINED 10 #define WindowContextFactory_mac_DEFINED 11 12 #include "tools/sk_app/WindowContext.h" 13 14 #include <Cocoa/Cocoa.h> 15 16 #include <memory> 17 18 namespace sk_app { 19 20 struct DisplayParams; 21 22 namespace window_context_factory { 23 24 struct MacWindowInfo { 25 NSView* fMainView; 26 }; 27 28 #ifdef SK_VULKAN 29 std::unique_ptr<WindowContext> MakeVulkanForMac(const MacWindowInfo&, const DisplayParams&); 30 #else MakeVulkanForMac(const MacWindowInfo &,const DisplayParams &)31inline std::unique_ptr<WindowContext> MakeVulkanForMac(const MacWindowInfo&, const DisplayParams&) { 32 // No Vulkan support on Mac. 33 return nullptr; 34 } 35 #endif 36 37 std::unique_ptr<WindowContext> MakeGLForMac(const MacWindowInfo&, const DisplayParams&); 38 39 #ifdef SK_DAWN 40 std::unique_ptr<WindowContext> MakeDawnMTLForMac(const MacWindowInfo&, const DisplayParams&); 41 #endif 42 43 std::unique_ptr<WindowContext> MakeRasterForMac(const MacWindowInfo&, const DisplayParams&); 44 #ifdef SK_METAL 45 std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&); 46 #endif 47 48 } // namespace window_context_factory 49 50 } // namespace sk_app 51 52 #endif 53