1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
use libc::*;
use super::*;
mod nd_handle_base_ts { pub enum VkSwapchainKHR {} }
pub type VkSwapchainKHR = VK_NON_DISPATCHABLE_HANDLE!(VkSwapchainKHR);
pub const VK_KHR_SWAPCHAIN_SPEC_VERSION: usize = 68;
pub const VK_KHR_SWAPCHAIN_EXTENSION_NAME: &str = "VK_KHR_swapchain";
pub type VkSwapchainCreateFlagsKHR = VkFlags;
pub const VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX: VkSwapchainCreateFlagsKHR = 0x01;
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkSwapchainCreateInfoKHR
{
pub sType: VkStructureType, pub pNext: *const c_void, pub flags: VkSwapchainCreateFlagsKHR,
pub surface: VkSurfaceKHR, pub minImageCount: u32, pub imageFormat: VkFormat, pub imageColorSpace: VkColorSpaceKHR,
pub imageExtent: VkExtent2D, pub imageArrayLayers: u32, pub imageUsage: VkImageUsageFlags, pub imageSharingMode: VkSharingMode,
pub queueFamilyIndexCount: u32, pub pQueueFamilyIndices: *const u32, pub preTransform: VkSurfaceTransformFlagsKHR,
pub compositeAlpha: VkCompositeAlphaFlagsKHR, pub presentMode: VkPresentModeKHR, pub clipped: VkBool32, pub oldSwapchain: VkSwapchainKHR
}
impl Default for VkSwapchainCreateInfoKHR
{
fn default() -> Self
{
VkSwapchainCreateInfoKHR { sType: VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, .. unsafe { std::mem::zeroed() } }
}
}
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkPresentInfoKHR
{
pub sType: VkStructureType, pub pNext: *const c_void,
pub waitSemaphoreCount: u32, pub pWaitSemaphores: *const VkSemaphore,
pub swapchainCount: u32, pub pSwapchains: *const VkSwapchainKHR,
pub pImageIndices: *const u32, pub pResults: *mut VkResult
}
impl Default for VkPresentInfoKHR
{
fn default() -> Self
{
VkPresentInfoKHR { sType: VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, .. unsafe { std::mem::zeroed() } }
}
}
pub type PFN_vkCreateSwapchainKHR = extern "system" fn(device: VkDevice, pCreateInfo: *const VkSwapchainCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSwapchain: *mut VkSwapchainKHR) -> VkResult;
pub type PFN_vkDestroySwapchainKHR = extern "system" fn(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: *const VkAllocationCallbacks);
pub type PFN_vkGetSwapchainImagesKHR = extern "system" fn(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: *mut u32, pSwapchainImages: *mut VkImage) -> VkResult;
pub type PFN_vkAcquireNextImageKHR = extern "system" fn(device: VkDevice, swapchain: VkSwapchainKHR, timeout: u64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: *mut u32) -> VkResult;
pub type PFN_vkQueuePresentKHR = extern "system" fn(queue: VkQueue, pPresentInfo: *const VkPresentInfoKHR) -> VkResult;
#[cfg(feature = "Implements")]
extern "system"
{
pub fn vkCreateSwapchainKHR(device: VkDevice, pCreateInfo: *const VkSwapchainCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSwapchain: *mut VkSwapchainKHR) -> VkResult;
pub fn vkDestroySwapchainKHR(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: *const VkAllocationCallbacks);
pub fn vkGetSwapchainImagesKHR(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: *mut u32, pSwapchainImages: *mut VkImage) -> VkResult;
pub fn vkAcquireNextImageKHR(device: VkDevice, swapchain: VkSwapchainKHR, timeout: u64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: *mut u32) -> VkResult;
pub fn vkQueuePresentKHR(queue: VkQueue, pPresentInfo: *const VkPresentInfoKHR) -> VkResult;
}