xref: /aosp_15_r20/external/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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