• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_APPLE)
57 bool IsVulkanMacDisplayAvailable();
58 DisplayImpl *CreateVulkanMacDisplay(const egl::DisplayState &state);
59 #endif  // defined(ANGLE_PLATFORM_APPLE)
60 }  // namespace rx
61 
62 #endif /* LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ */
63