1e8556ba3Sopenharmony_ci#ifndef VULKAN_WAYLAND_H_
2e8556ba3Sopenharmony_ci#define VULKAN_WAYLAND_H_ 1
3e8556ba3Sopenharmony_ci
4e8556ba3Sopenharmony_ci/*
5e8556ba3Sopenharmony_ci** Copyright 2015-2024 The Khronos Group Inc.
6e8556ba3Sopenharmony_ci**
7e8556ba3Sopenharmony_ci** SPDX-License-Identifier: Apache-2.0
8e8556ba3Sopenharmony_ci*/
9e8556ba3Sopenharmony_ci
10e8556ba3Sopenharmony_ci/*
11e8556ba3Sopenharmony_ci** This header is generated from the Khronos Vulkan XML API Registry.
12e8556ba3Sopenharmony_ci**
13e8556ba3Sopenharmony_ci*/
14e8556ba3Sopenharmony_ci
15e8556ba3Sopenharmony_ci
16e8556ba3Sopenharmony_ci#ifdef __cplusplus
17e8556ba3Sopenharmony_ciextern "C" {
18e8556ba3Sopenharmony_ci#endif
19e8556ba3Sopenharmony_ci
20e8556ba3Sopenharmony_ci
21e8556ba3Sopenharmony_ci
22e8556ba3Sopenharmony_ci// VK_KHR_wayland_surface is a preprocessor guard. Do not pass it to API calls.
23e8556ba3Sopenharmony_ci#define VK_KHR_wayland_surface 1
24e8556ba3Sopenharmony_ci#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
25e8556ba3Sopenharmony_ci#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
26e8556ba3Sopenharmony_citypedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
27e8556ba3Sopenharmony_citypedef struct VkWaylandSurfaceCreateInfoKHR {
28e8556ba3Sopenharmony_ci    VkStructureType                   sType;
29e8556ba3Sopenharmony_ci    const void*                       pNext;
30e8556ba3Sopenharmony_ci    VkWaylandSurfaceCreateFlagsKHR    flags;
31e8556ba3Sopenharmony_ci    struct wl_display*                display;
32e8556ba3Sopenharmony_ci    struct wl_surface*                surface;
33e8556ba3Sopenharmony_ci} VkWaylandSurfaceCreateInfoKHR;
34e8556ba3Sopenharmony_ci
35e8556ba3Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36e8556ba3Sopenharmony_citypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
37e8556ba3Sopenharmony_ci
38e8556ba3Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
39e8556ba3Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
40e8556ba3Sopenharmony_ci    VkInstance                                  instance,
41e8556ba3Sopenharmony_ci    const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo,
42e8556ba3Sopenharmony_ci    const VkAllocationCallbacks*                pAllocator,
43e8556ba3Sopenharmony_ci    VkSurfaceKHR*                               pSurface);
44e8556ba3Sopenharmony_ci
45e8556ba3Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
46e8556ba3Sopenharmony_ci    VkPhysicalDevice                            physicalDevice,
47e8556ba3Sopenharmony_ci    uint32_t                                    queueFamilyIndex,
48e8556ba3Sopenharmony_ci    struct wl_display*                          display);
49e8556ba3Sopenharmony_ci#endif
50e8556ba3Sopenharmony_ci
51e8556ba3Sopenharmony_ci#ifdef __cplusplus
52e8556ba3Sopenharmony_ci}
53e8556ba3Sopenharmony_ci#endif
54e8556ba3Sopenharmony_ci
55e8556ba3Sopenharmony_ci#endif
56