use core::ptr;
use khr_external_fence;
use khr_external_fence_capabilities;
use libc::{c_int, c_void};
use vk;
pub const VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION: u32 = 1;
pub const VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME: &'static [u8; 25] = b"VK_KHR_external_fence_fd\x00";
pub const VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME_STR: &'static str = "VK_KHR_external_fence_fd";
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkImportFenceFdInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub fence: vk::VkFence,
pub flags: khr_external_fence::VkFenceImportFlagsKHR,
pub handleType: khr_external_fence_capabilities::VkExternalFenceHandleTypeFlagBitsKHR,
pub fd: c_int,
}
impl Default for VkImportFenceFdInfoKHR {
fn default() -> Self {
VkImportFenceFdInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,
pNext: ptr::null(),
fence: Default::default(),
flags: Default::default(),
handleType: Default::default(),
fd: Default::default(),
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkFenceGetFdInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub fence: vk::VkFence,
pub handleType: khr_external_fence_capabilities::VkExternalFenceHandleTypeFlagBitsKHR,
}
impl Default for VkFenceGetFdInfoKHR {
fn default() -> Self {
VkFenceGetFdInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,
pNext: ptr::null(),
fence: Default::default(),
handleType: Default::default(),
}
}
}
pub type PFN_vkImportFenceFdKHR = Option<unsafe extern "system" fn(device: vk::VkDevice, pImportFenceFdInfo: *const VkImportFenceFdInfoKHR) -> vk::VkResult>;
pub type PFN_vkGetFenceFdKHR = Option<unsafe extern "system" fn(device: vk::VkDevice, pGetFdInfo: *const VkFenceGetFdInfoKHR, pFd: *mut c_int) -> vk::VkResult>;
#[cfg(feature = "function_prototypes")]
extern "system" {
pub fn vkImportFenceFdKHR(device: vk::VkDevice, pImportFenceFdInfo: *const VkImportFenceFdInfoKHR) -> vk::VkResult;
pub fn vkGetFenceFdKHR(device: vk::VkDevice, pGetFdInfo: *const VkFenceGetFdInfoKHR, pFd: *mut c_int) -> vk::VkResult;
}