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