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 struct DisplayParams; 20 21 #ifdef SK_VULKAN 22 std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&); 23 #if defined(SK_GRAPHITE) 24 std::unique_ptr<WindowContext> MakeGraphiteVulkanForWin(HWND, const DisplayParams&); 25 #endif 26 #endif 27 28 #ifdef SK_GL 29 std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&); 30 #endif 31 32 #ifdef SK_ANGLE 33 std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&); 34 #endif 35 36 #ifdef SK_DIRECT3D 37 std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&); 38 #endif 39 40 #ifdef SK_DAWN 41 #if defined(SK_GRAPHITE) 42 std::unique_ptr<WindowContext> MakeGraphiteDawnD3D12ForWin(HWND, const DisplayParams&); 43 #endif 44 #endif 45 46 std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&); 47 48 } // namespace skwindow 49 50 #endif 51