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 18 bool IsVulkanNullDisplayAvailable(); 19 DisplayImpl *CreateVulkanNullDisplay(const egl::DisplayState &state); 20 21 #if defined(ANGLE_PLATFORM_WINDOWS) 22 bool IsVulkanWin32DisplayAvailable(); 23 DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state); 24 #endif // defined(ANGLE_PLATFORM_WINDOWS) 25 26 #if defined(ANGLE_PLATFORM_LINUX) 27 bool IsVulkanWaylandDisplayAvailable(); 28 DisplayImpl *CreateVulkanWaylandDisplay(const egl::DisplayState &state); 29 30 bool IsVulkanXcbDisplayAvailable(); 31 DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state); 32 33 bool IsVulkanSimpleDisplayAvailable(); 34 DisplayImpl *CreateVulkanSimpleDisplay(const egl::DisplayState &state); 35 36 bool IsVulkanHeadlessDisplayAvailable(); 37 DisplayImpl *CreateVulkanHeadlessDisplay(const egl::DisplayState &state); 38 #endif // defined(ANGLE_PLATFORM_LINUX) 39 40 #if defined(ANGLE_PLATFORM_ANDROID) 41 bool IsVulkanAndroidDisplayAvailable(); 42 DisplayImpl *CreateVulkanAndroidDisplay(const egl::DisplayState &state); 43 #endif // defined(ANGLE_PLATFORM_ANDROID) 44 45 #if defined(ANGLE_PLATFORM_FUCHSIA) 46 bool IsVulkanFuchsiaDisplayAvailable(); 47 DisplayImpl *CreateVulkanFuchsiaDisplay(const egl::DisplayState &state); 48 #endif // defined(ANGLE_PLATFORM_FUCHSIA) 49 50 #if defined(ANGLE_PLATFORM_GGP) 51 bool IsVulkanGGPDisplayAvailable(); 52 DisplayImpl *CreateVulkanGGPDisplay(const egl::DisplayState &state); 53 #endif // defined(ANGLE_PLATFORM_GGP) 54 55 #if defined(ANGLE_PLATFORM_APPLE) 56 bool IsVulkanMacDisplayAvailable(); 57 DisplayImpl *CreateVulkanMacDisplay(const egl::DisplayState &state); 58 #endif // defined(ANGLE_PLATFORM_APPLE) 59 } // namespace rx 60 61 #endif /* LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ */ 62