xref: /aosp_15_r20/external/skia/tools/window/win/WindowContextFactory_win.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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_win_DEFINED
10 #define WindowContextFactory_win_DEFINED
11 
12 #include <Windows.h>
13 
14 #include <memory>
15 
16 namespace skwindow {
17 
18 class WindowContext;
19 class DisplayParams;
20 
21 #ifdef SK_VULKAN
22 std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, std::unique_ptr<const DisplayParams>);
23 #if defined(SK_GRAPHITE)
24 std::unique_ptr<WindowContext> MakeGraphiteVulkanForWin(HWND, std::unique_ptr<const DisplayParams>);
25 #endif
26 #endif
27 
28 #ifdef SK_GL
29 std::unique_ptr<WindowContext> MakeGLForWin(HWND, std::unique_ptr<const DisplayParams>);
30 #endif
31 
32 #ifdef SK_ANGLE
33 std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, std::unique_ptr<const DisplayParams>);
34 #endif
35 
36 #ifdef SK_DIRECT3D
37 std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, std::unique_ptr<const DisplayParams>);
38 #endif
39 
40 #ifdef SK_DAWN
41 #if defined(SK_GRAPHITE)
42 std::unique_ptr<WindowContext> MakeGraphiteDawnD3D12ForWin(HWND,
43                                                            std::unique_ptr<const DisplayParams>);
44 #endif
45 #endif
46 
47 std::unique_ptr<WindowContext> MakeRasterForWin(HWND, std::unique_ptr<const DisplayParams>);
48 
49 }  // namespace skwindow
50 
51 #endif
52