vulkan_headers/vulkan/
vulkan_xlib.rs1use crate::prelude::*;
2use crate::platform::xlib::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkXlibSurfaceCreateInfoKHR {
8 pub sType: VkStructureType,
9 pub pNext: *const c_void,
10 pub flags: VkXlibSurfaceCreateFlagsKHR,
11 pub dpy: *mut Display,
12 pub window: Window,
13}
14
15pub const VK_KHR_XLIB_SURFACE_EXTENSION_NAME: &CStr = c"VK_KHR_xlib_surface";
16pub const VK_KHR_XLIB_SURFACE_SPEC_VERSION: u32 = 6;
17pub const VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR: VkStructureType = 1000004000;
18
19unsafe extern "system" {
20 #[cfg(any(doc, feature = "prototypes"))]
22 pub fn vkCreateXlibSurfaceKHR(instance: VkInstance, pCreateInfo: *const VkXlibSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
23
24 #[cfg(any(doc, feature = "prototypes"))]
26 pub fn vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, dpy: *mut Display, visualID: VisualID) -> VkBool32;
27}
28
29pub type NonNullPFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkXlibSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
30pub type NonNullPFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = unsafe extern "system" fn(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, dpy: *mut Display, visualID: VisualID) -> VkBool32;
31pub type PFN_vkCreateXlibSurfaceKHR = Option<NonNullPFN_vkCreateXlibSurfaceKHR>;
32pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = Option<NonNullPFN_vkGetPhysicalDeviceXlibPresentationSupportKHR>;
33pub type VkXlibSurfaceCreateFlagsKHR = VkFlags;