Skip to main content

vulkan_headers/vulkan/
vulkan_xcb.rs

1use crate::prelude::*;
2use crate::platform::xcb::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkXcbSurfaceCreateInfoKHR {
8    pub sType: VkStructureType,
9    pub pNext: *const c_void,
10    pub flags: VkXcbSurfaceCreateFlagsKHR,
11    pub connection: *mut xcb_connection_t,
12    pub window: xcb_window_t,
13}
14
15pub const VK_KHR_XCB_SURFACE_EXTENSION_NAME: &CStr = c"VK_KHR_xcb_surface";
16pub const VK_KHR_XCB_SURFACE_SPEC_VERSION: u32 = 6;
17pub const VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR: VkStructureType = 1000005000;
18
19unsafe extern "system" {
20    /// Available if built with `prototypes`.
21    #[cfg(any(doc, feature = "prototypes"))]
22    pub fn vkCreateXcbSurfaceKHR(instance: VkInstance, pCreateInfo: *const VkXcbSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
23
24    /// Available if built with `prototypes`.
25    #[cfg(any(doc, feature = "prototypes"))]
26    pub fn vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, connection: *mut xcb_connection_t, visual_id: xcb_visualid_t) -> VkBool32;
27}
28
29pub type NonNullPFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkXcbSurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
30pub type NonNullPFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = unsafe extern "system" fn(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, connection: *mut xcb_connection_t, visual_id: xcb_visualid_t) -> VkBool32;
31pub type PFN_vkCreateXcbSurfaceKHR = Option<NonNullPFN_vkCreateXcbSurfaceKHR>;
32pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = Option<NonNullPFN_vkGetPhysicalDeviceXcbPresentationSupportKHR>;
33pub type VkXcbSurfaceCreateFlagsKHR = VkFlags;