1 // 2 // Copyright 2019 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // DisplayVk_api.h: 7 // Defines the Vulkan Display APIs to be used by the code outside the back-end. 8 // 9 10 #ifndef LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ 11 #define LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ 12 13 #include "libANGLE/renderer/DisplayImpl.h" 14 15 namespace rx 16 { 17 #if defined(ANGLE_PLATFORM_WINDOWS) 18 bool IsVulkanWin32DisplayAvailable(); 19 DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state); 20 #endif // defined(ANGLE_PLATFORM_WINDOWS) 21 22 #if defined(ANGLE_PLATFORM_LINUX) 23 bool IsVulkanXcbDisplayAvailable(); 24 DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state); 25 #endif // defined(ANGLE_PLATFORM_LINUX) 26 27 #if defined(ANGLE_PLATFORM_ANDROID) 28 bool IsVulkanAndroidDisplayAvailable(); 29 DisplayImpl *CreateVulkanAndroidDisplay(const egl::DisplayState &state); 30 #endif // defined(ANGLE_PLATFORM_ANDROID) 31 32 #if defined(ANGLE_PLATFORM_FUCHSIA) 33 bool IsVulkanFuchsiaDisplayAvailable(); 34 DisplayImpl *CreateVulkanFuchsiaDisplay(const egl::DisplayState &state); 35 #endif // defined(ANGLE_PLATFORM_FUCHSIA) 36 37 #if defined(ANGLE_PLATFORM_GGP) 38 bool IsVulkanGGPDisplayAvailable(); 39 DisplayImpl *CreateVulkanGGPDisplay(const egl::DisplayState &state); 40 #endif // defined(ANGLE_PLATFORM_GGP) 41 42 #if defined(ANGLE_PLATFORM_APPLE) 43 bool IsVulkanMacDisplayAvailable(); 44 DisplayImpl *CreateVulkanMacDisplay(const egl::DisplayState &state); 45 #endif // defined(ANGLE_PLATFORM_APPLE) 46 } // namespace rx 47 48 #endif /* LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ */ 49