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 sk_app { 17 18 class WindowContext; 19 struct DisplayParams; 20 21 namespace window_context_factory { 22 23 std::unique_ptr<WindowContext> MakeVulkanForWin(HWND, const DisplayParams&); 24 25 std::unique_ptr<WindowContext> MakeGLForWin(HWND, const DisplayParams&); 26 27 std::unique_ptr<WindowContext> MakeANGLEForWin(HWND, const DisplayParams&); 28 29 #ifdef SK_DIRECT3D 30 std::unique_ptr<WindowContext> MakeD3D12ForWin(HWND, const DisplayParams&); 31 #endif 32 33 #ifdef SK_DAWN 34 std::unique_ptr<WindowContext> MakeDawnD3D12ForWin(HWND, const DisplayParams&); 35 #endif 36 37 std::unique_ptr<WindowContext> MakeRasterForWin(HWND, const DisplayParams&); 38 39 } // namespace window_context_factory 40 41 } // namespace sk_app 42 43 #endif 44