• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 &)31 inline 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