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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
use core::ptr;
use khr_external_semaphore;
use khr_external_semaphore_capabilities;
use libc::c_void;
use vk;
use win32_types;
pub const VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION: u32 = 1;
pub const VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME: &'static [u8; 32] = b"VK_KHR_external_semaphore_win32\x00";
pub const VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME_STR: &'static str = "VK_KHR_external_semaphore_win32";
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkImportSemaphoreWin32HandleInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub semaphore: vk::VkSemaphore,
pub flags: khr_external_semaphore::VkSemaphoreImportFlagsKHR,
pub handleType: khr_external_semaphore_capabilities::VkExternalSemaphoreHandleTypeFlagBitsKHR,
pub handle: win32_types::HANDLE,
pub name: win32_types::LPCWSTR,
}
impl Default for VkImportSemaphoreWin32HandleInfoKHR {
fn default() -> Self {
VkImportSemaphoreWin32HandleInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
pNext: ptr::null(),
semaphore: Default::default(),
flags: Default::default(),
handleType: Default::default(),
handle: ptr::null_mut(),
name: ptr::null(),
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkExportSemaphoreWin32HandleInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub pAttributes: *const win32_types::SECURITY_ATTRIBUTES,
pub dwAccess: win32_types::DWORD,
pub name: win32_types::LPCWSTR,
}
impl Default for VkExportSemaphoreWin32HandleInfoKHR {
fn default() -> Self {
VkExportSemaphoreWin32HandleInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,
pNext: ptr::null(),
pAttributes: ptr::null(),
dwAccess: Default::default(),
name: ptr::null(),
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkD3D12FenceSubmitInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub waitSemaphoreValuesCount: u32,
pub pWaitSemaphoreValues: *const u64,
pub signalSemaphoreValuesCount: u32,
pub pSignalSemaphoreValues: *const u64,
}
impl Default for VkD3D12FenceSubmitInfoKHR {
fn default() -> Self {
VkD3D12FenceSubmitInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,
pNext: ptr::null(),
waitSemaphoreValuesCount: Default::default(),
pWaitSemaphoreValues: ptr::null(),
signalSemaphoreValuesCount: Default::default(),
pSignalSemaphoreValues: ptr::null(),
}
}
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct VkSemaphoreGetWin32HandleInfoKHR {
pub sType: vk::VkStructureType,
pub pNext: *const c_void,
pub semaphore: vk::VkSemaphore,
pub handleType: khr_external_semaphore_capabilities::VkExternalSemaphoreHandleTypeFlagBitsKHR,
}
impl Default for VkSemaphoreGetWin32HandleInfoKHR {
fn default() -> Self {
VkSemaphoreGetWin32HandleInfoKHR {
sType: vk::VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,
pNext: ptr::null(),
semaphore: Default::default(),
handleType: Default::default(),
}
}
}
pub type PFN_vkImportSemaphoreWin32HandleKHR = Option<unsafe extern "system" fn(device: vk::VkDevice, pImportSemaphoreWin32HandleInfo: *const VkImportSemaphoreWin32HandleInfoKHR) -> vk::VkResult>;
pub type PFN_vkGetSemaphoreWin32HandleKHR = Option<unsafe extern "system" fn(device: vk::VkDevice, pGetWin32HandleInfo: *const VkSemaphoreGetWin32HandleInfoKHR, pHandle: *mut win32_types::HANDLE) -> vk::VkResult>;
#[cfg(feature = "function_prototypes")]
extern "system" {
pub fn vkImportSemaphoreWin32HandleKHR(device: vk::VkDevice, pImportSemaphoreWin32HandleInfo: *const VkImportSemaphoreWin32HandleInfoKHR) -> vk::VkResult;
pub fn vkGetSemaphoreWin32HandleKHR(device: vk::VkDevice, pGetWin32HandleInfo: *const VkSemaphoreGetWin32HandleInfoKHR, pHandle: *mut win32_types::HANDLE) -> vk::VkResult;
}