vulkan_layer/bindings/vk_layer/
generated.rs

1// Copyright 2025 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15#![allow(missing_docs)]
16use super::*;
17use ash::vk::*;
18#[cfg(unix)]
19mod unix;
20#[cfg(windows)]
21mod windows;
22#[cfg(unix)]
23pub use unix::*;
24#[cfg(windows)]
25pub use windows::*;
26/* automatically generated by rust-bindgen 0.69.4 */
27
28pub type PFN_GetPhysicalDeviceProcAddr = ::std::option::Option<
29    unsafe extern "C" fn(
30        instance: VkInstance,
31        pName: *const ::std::os::raw::c_char,
32    ) -> PFN_vkVoidFunction,
33>;
34#[repr(C)]
35pub struct VkNegotiateLayerInterface {
36    pub sType: VkNegotiateLayerStructType,
37    pub pNext: *mut ::std::os::raw::c_void,
38    pub loaderLayerInterfaceVersion: u32,
39    pub pfnGetInstanceProcAddr: PFN_vkGetInstanceProcAddr,
40    pub pfnGetDeviceProcAddr: PFN_vkGetDeviceProcAddr,
41    pub pfnGetPhysicalDeviceProcAddr: PFN_GetPhysicalDeviceProcAddr,
42}
43#[test]
44fn bindgen_test_layout_VkNegotiateLayerInterface() {
45    const UNINIT: ::std::mem::MaybeUninit<VkNegotiateLayerInterface> =
46        ::std::mem::MaybeUninit::uninit();
47    let ptr = UNINIT.as_ptr();
48    assert_eq!(
49        ::std::mem::size_of::<VkNegotiateLayerInterface>(),
50        48usize,
51        concat!("Size of: ", stringify!(VkNegotiateLayerInterface))
52    );
53    assert_eq!(
54        ::std::mem::align_of::<VkNegotiateLayerInterface>(),
55        8usize,
56        concat!("Alignment of ", stringify!(VkNegotiateLayerInterface))
57    );
58    assert_eq!(
59        unsafe { ::std::ptr::addr_of!((*ptr).sType) as usize - ptr as usize },
60        0usize,
61        concat!(
62            "Offset of field: ",
63            stringify!(VkNegotiateLayerInterface),
64            "::",
65            stringify!(sType)
66        )
67    );
68    assert_eq!(
69        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
70        8usize,
71        concat!(
72            "Offset of field: ",
73            stringify!(VkNegotiateLayerInterface),
74            "::",
75            stringify!(pNext)
76        )
77    );
78    assert_eq!(
79        unsafe { ::std::ptr::addr_of!((*ptr).loaderLayerInterfaceVersion) as usize - ptr as usize },
80        16usize,
81        concat!(
82            "Offset of field: ",
83            stringify!(VkNegotiateLayerInterface),
84            "::",
85            stringify!(loaderLayerInterfaceVersion)
86        )
87    );
88    assert_eq!(
89        unsafe { ::std::ptr::addr_of!((*ptr).pfnGetInstanceProcAddr) as usize - ptr as usize },
90        24usize,
91        concat!(
92            "Offset of field: ",
93            stringify!(VkNegotiateLayerInterface),
94            "::",
95            stringify!(pfnGetInstanceProcAddr)
96        )
97    );
98    assert_eq!(
99        unsafe { ::std::ptr::addr_of!((*ptr).pfnGetDeviceProcAddr) as usize - ptr as usize },
100        32usize,
101        concat!(
102            "Offset of field: ",
103            stringify!(VkNegotiateLayerInterface),
104            "::",
105            stringify!(pfnGetDeviceProcAddr)
106        )
107    );
108    assert_eq!(
109        unsafe {
110            ::std::ptr::addr_of!((*ptr).pfnGetPhysicalDeviceProcAddr) as usize - ptr as usize
111        },
112        40usize,
113        concat!(
114            "Offset of field: ",
115            stringify!(VkNegotiateLayerInterface),
116            "::",
117            stringify!(pfnGetPhysicalDeviceProcAddr)
118        )
119    );
120}
121impl Default for VkNegotiateLayerInterface {
122    fn default() -> Self {
123        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
124        unsafe {
125            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
126            s.assume_init()
127        }
128    }
129}
130#[repr(C)]
131pub struct VkLayerInstanceLink_ {
132    pub pNext: *mut VkLayerInstanceLink_,
133    pub pfnNextGetInstanceProcAddr: PFN_vkGetInstanceProcAddr,
134    pub pfnNextGetPhysicalDeviceProcAddr: PFN_GetPhysicalDeviceProcAddr,
135}
136#[test]
137fn bindgen_test_layout_VkLayerInstanceLink_() {
138    const UNINIT: ::std::mem::MaybeUninit<VkLayerInstanceLink_> = ::std::mem::MaybeUninit::uninit();
139    let ptr = UNINIT.as_ptr();
140    assert_eq!(
141        ::std::mem::size_of::<VkLayerInstanceLink_>(),
142        24usize,
143        concat!("Size of: ", stringify!(VkLayerInstanceLink_))
144    );
145    assert_eq!(
146        ::std::mem::align_of::<VkLayerInstanceLink_>(),
147        8usize,
148        concat!("Alignment of ", stringify!(VkLayerInstanceLink_))
149    );
150    assert_eq!(
151        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
152        0usize,
153        concat!(
154            "Offset of field: ",
155            stringify!(VkLayerInstanceLink_),
156            "::",
157            stringify!(pNext)
158        )
159    );
160    assert_eq!(
161        unsafe { ::std::ptr::addr_of!((*ptr).pfnNextGetInstanceProcAddr) as usize - ptr as usize },
162        8usize,
163        concat!(
164            "Offset of field: ",
165            stringify!(VkLayerInstanceLink_),
166            "::",
167            stringify!(pfnNextGetInstanceProcAddr)
168        )
169    );
170    assert_eq!(
171        unsafe {
172            ::std::ptr::addr_of!((*ptr).pfnNextGetPhysicalDeviceProcAddr) as usize - ptr as usize
173        },
174        16usize,
175        concat!(
176            "Offset of field: ",
177            stringify!(VkLayerInstanceLink_),
178            "::",
179            stringify!(pfnNextGetPhysicalDeviceProcAddr)
180        )
181    );
182}
183impl Default for VkLayerInstanceLink_ {
184    fn default() -> Self {
185        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
186        unsafe {
187            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
188            s.assume_init()
189        }
190    }
191}
192pub type VkLayerInstanceLink = VkLayerInstanceLink_;
193pub type PFN_vkSetInstanceLoaderData = ::std::option::Option<
194    unsafe extern "C" fn(instance: VkInstance, object: *mut ::std::os::raw::c_void) -> VkResult,
195>;
196pub type PFN_vkSetDeviceLoaderData = ::std::option::Option<
197    unsafe extern "C" fn(device: VkDevice, object: *mut ::std::os::raw::c_void) -> VkResult,
198>;
199pub type PFN_vkLayerCreateDevice = ::std::option::Option<
200    unsafe extern "C" fn(
201        instance: VkInstance,
202        physicalDevice: VkPhysicalDevice,
203        pCreateInfo: *const VkDeviceCreateInfo,
204        pAllocator: *const VkAllocationCallbacks,
205        pDevice: *mut VkDevice,
206        layerGIPA: PFN_vkGetInstanceProcAddr,
207        nextGDPA: *mut PFN_vkGetDeviceProcAddr,
208    ) -> VkResult,
209>;
210pub type PFN_vkLayerDestroyDevice = ::std::option::Option<
211    unsafe extern "C" fn(
212        physicalDevice: VkDevice,
213        pAllocator: *const VkAllocationCallbacks,
214        destroyFunction: PFN_vkDestroyDevice,
215    ),
216>;
217#[repr(C)]
218pub struct VkLayerDeviceLink_ {
219    pub pNext: *mut VkLayerDeviceLink_,
220    pub pfnNextGetInstanceProcAddr: PFN_vkGetInstanceProcAddr,
221    pub pfnNextGetDeviceProcAddr: PFN_vkGetDeviceProcAddr,
222}
223#[test]
224fn bindgen_test_layout_VkLayerDeviceLink_() {
225    const UNINIT: ::std::mem::MaybeUninit<VkLayerDeviceLink_> = ::std::mem::MaybeUninit::uninit();
226    let ptr = UNINIT.as_ptr();
227    assert_eq!(
228        ::std::mem::size_of::<VkLayerDeviceLink_>(),
229        24usize,
230        concat!("Size of: ", stringify!(VkLayerDeviceLink_))
231    );
232    assert_eq!(
233        ::std::mem::align_of::<VkLayerDeviceLink_>(),
234        8usize,
235        concat!("Alignment of ", stringify!(VkLayerDeviceLink_))
236    );
237    assert_eq!(
238        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
239        0usize,
240        concat!(
241            "Offset of field: ",
242            stringify!(VkLayerDeviceLink_),
243            "::",
244            stringify!(pNext)
245        )
246    );
247    assert_eq!(
248        unsafe { ::std::ptr::addr_of!((*ptr).pfnNextGetInstanceProcAddr) as usize - ptr as usize },
249        8usize,
250        concat!(
251            "Offset of field: ",
252            stringify!(VkLayerDeviceLink_),
253            "::",
254            stringify!(pfnNextGetInstanceProcAddr)
255        )
256    );
257    assert_eq!(
258        unsafe { ::std::ptr::addr_of!((*ptr).pfnNextGetDeviceProcAddr) as usize - ptr as usize },
259        16usize,
260        concat!(
261            "Offset of field: ",
262            stringify!(VkLayerDeviceLink_),
263            "::",
264            stringify!(pfnNextGetDeviceProcAddr)
265        )
266    );
267}
268impl Default for VkLayerDeviceLink_ {
269    fn default() -> Self {
270        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
271        unsafe {
272            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
273            s.assume_init()
274        }
275    }
276}
277pub type VkLayerDeviceLink = VkLayerDeviceLink_;
278#[repr(C)]
279pub struct VkLayerDeviceCreateInfo {
280    pub sType: VkStructureType,
281    pub pNext: *const ::std::os::raw::c_void,
282    pub function: VkLayerFunction,
283    pub u: VkLayerDeviceCreateInfo__bindgen_ty_1,
284}
285#[repr(C)]
286#[derive(Copy, Clone)]
287pub union VkLayerDeviceCreateInfo__bindgen_ty_1 {
288    pub pLayerInfo: *mut VkLayerDeviceLink,
289    pub pfnSetDeviceLoaderData: PFN_vkSetDeviceLoaderData,
290}
291#[test]
292fn bindgen_test_layout_VkLayerDeviceCreateInfo__bindgen_ty_1() {
293    const UNINIT: ::std::mem::MaybeUninit<VkLayerDeviceCreateInfo__bindgen_ty_1> =
294        ::std::mem::MaybeUninit::uninit();
295    let ptr = UNINIT.as_ptr();
296    assert_eq!(
297        ::std::mem::size_of::<VkLayerDeviceCreateInfo__bindgen_ty_1>(),
298        8usize,
299        concat!(
300            "Size of: ",
301            stringify!(VkLayerDeviceCreateInfo__bindgen_ty_1)
302        )
303    );
304    assert_eq!(
305        ::std::mem::align_of::<VkLayerDeviceCreateInfo__bindgen_ty_1>(),
306        8usize,
307        concat!(
308            "Alignment of ",
309            stringify!(VkLayerDeviceCreateInfo__bindgen_ty_1)
310        )
311    );
312    assert_eq!(
313        unsafe { ::std::ptr::addr_of!((*ptr).pLayerInfo) as usize - ptr as usize },
314        0usize,
315        concat!(
316            "Offset of field: ",
317            stringify!(VkLayerDeviceCreateInfo__bindgen_ty_1),
318            "::",
319            stringify!(pLayerInfo)
320        )
321    );
322    assert_eq!(
323        unsafe { ::std::ptr::addr_of!((*ptr).pfnSetDeviceLoaderData) as usize - ptr as usize },
324        0usize,
325        concat!(
326            "Offset of field: ",
327            stringify!(VkLayerDeviceCreateInfo__bindgen_ty_1),
328            "::",
329            stringify!(pfnSetDeviceLoaderData)
330        )
331    );
332}
333impl Default for VkLayerDeviceCreateInfo__bindgen_ty_1 {
334    fn default() -> Self {
335        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
336        unsafe {
337            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
338            s.assume_init()
339        }
340    }
341}
342#[test]
343fn bindgen_test_layout_VkLayerDeviceCreateInfo() {
344    const UNINIT: ::std::mem::MaybeUninit<VkLayerDeviceCreateInfo> =
345        ::std::mem::MaybeUninit::uninit();
346    let ptr = UNINIT.as_ptr();
347    assert_eq!(
348        ::std::mem::size_of::<VkLayerDeviceCreateInfo>(),
349        32usize,
350        concat!("Size of: ", stringify!(VkLayerDeviceCreateInfo))
351    );
352    assert_eq!(
353        ::std::mem::align_of::<VkLayerDeviceCreateInfo>(),
354        8usize,
355        concat!("Alignment of ", stringify!(VkLayerDeviceCreateInfo))
356    );
357    assert_eq!(
358        unsafe { ::std::ptr::addr_of!((*ptr).sType) as usize - ptr as usize },
359        0usize,
360        concat!(
361            "Offset of field: ",
362            stringify!(VkLayerDeviceCreateInfo),
363            "::",
364            stringify!(sType)
365        )
366    );
367    assert_eq!(
368        unsafe { ::std::ptr::addr_of!((*ptr).pNext) as usize - ptr as usize },
369        8usize,
370        concat!(
371            "Offset of field: ",
372            stringify!(VkLayerDeviceCreateInfo),
373            "::",
374            stringify!(pNext)
375        )
376    );
377    assert_eq!(
378        unsafe { ::std::ptr::addr_of!((*ptr).function) as usize - ptr as usize },
379        16usize,
380        concat!(
381            "Offset of field: ",
382            stringify!(VkLayerDeviceCreateInfo),
383            "::",
384            stringify!(function)
385        )
386    );
387    assert_eq!(
388        unsafe { ::std::ptr::addr_of!((*ptr).u) as usize - ptr as usize },
389        24usize,
390        concat!(
391            "Offset of field: ",
392            stringify!(VkLayerDeviceCreateInfo),
393            "::",
394            stringify!(u)
395        )
396    );
397}
398impl Default for VkLayerDeviceCreateInfo {
399    fn default() -> Self {
400        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
401        unsafe {
402            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
403            s.assume_init()
404        }
405    }
406}