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 IsVulkanGbmDisplayAvailable(); 31 DisplayImpl *CreateVulkanGbmDisplay(const egl::DisplayState &state); 32 33 bool IsVulkanXcbDisplayAvailable(); 34 DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state); 35 36 bool IsVulkanSimpleDisplayAvailable(); 37 DisplayImpl *CreateVulkanSimpleDisplay(const egl::DisplayState &state); 38 39 bool IsVulkanHeadlessDisplayAvailable(); 40 DisplayImpl *CreateVulkanHeadlessDisplay(const egl::DisplayState &state); 41 42 bool IsVulkanOffscreenDisplayAvailable(); 43 DisplayImpl *CreateVulkanOffscreenDisplay(const egl::DisplayState &state); 44 #endif // defined(ANGLE_PLATFORM_LINUX) 45 46 #if defined(ANGLE_PLATFORM_ANDROID) 47 bool IsVulkanAndroidDisplayAvailable(); 48 DisplayImpl *CreateVulkanAndroidDisplay(const egl::DisplayState &state); 49 #endif // defined(ANGLE_PLATFORM_ANDROID) 50 51 #if defined(ANGLE_PLATFORM_FUCHSIA) 52 bool IsVulkanFuchsiaDisplayAvailable(); 53 DisplayImpl *CreateVulkanFuchsiaDisplay(const egl::DisplayState &state); 54 #endif // defined(ANGLE_PLATFORM_FUCHSIA) 55 56 #if defined(ANGLE_PLATFORM_GGP) 57 bool IsVulkanGGPDisplayAvailable(); 58 DisplayImpl *CreateVulkanGGPDisplay(const egl::DisplayState &state); 59 #endif // defined(ANGLE_PLATFORM_GGP) 60 61 #if defined(ANGLE_PLATFORM_APPLE) 62 bool IsVulkanMacDisplayAvailable(); 63 DisplayImpl *CreateVulkanMacDisplay(const egl::DisplayState &state); 64 #endif // defined(ANGLE_PLATFORM_APPLE) 65 } // namespace rx 66 67 #endif /* LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ */ 68