Skip to main content

vulkan_headers/vulkan/
vulkan_wayland.rs

1use crate::prelude::*;
2use crate::platform::wayland::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkWaylandSurfaceCreateInfoKHR {
8    pub sType: VkStructureType,
9    pub pNext: *const c_void,
10    pub flags: VkWaylandSurfaceCreateFlagsKHR,
11    pub display: *mut wl_display,
12    pub surface: *mut wl_surface,
13}
14
15pub const VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME: &CStr = c"VK_KHR_wayland_surface";
16pub const VK_KHR_WAYLAND_SURFACE_SPEC_VERSION: u32 = 6;
17pub const VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR: VkStructureType = 1000006000;
18
19unsafe extern "system" {
20    /// Available if built with `prototypes`.
21    #[cfg(any(doc, feature = "prototypes"))]
22    pub fn vkCreateWaylandSurfaceKHR(instance: VkInstance, pCreateInfo: *const VkWaylandSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
23
24    /// Available if built with `prototypes`.
25    #[cfg(any(doc, feature = "prototypes"))]
26    pub fn vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, display: *mut wl_display) -> VkBool32;
27}
28
29pub type NonNullPFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkWaylandSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
30pub type NonNullPFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = unsafe extern "system" fn(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, display: *mut wl_display) -> VkBool32;
31pub type PFN_vkCreateWaylandSurfaceKHR = Option<NonNullPFN_vkCreateWaylandSurfaceKHR>;
32pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = Option<NonNullPFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR>;
33pub type VkWaylandSurfaceCreateFlagsKHR = VkFlags;