ferroui_vulkan/
vulkan_bindings.rs1use crate::Version;
2
3pub struct VulkanHelpers;
5
6impl VulkanHelpers {
7 pub const QUEUE_FAMILY_IGNORED: u32 = 4294967295;
9
10 pub fn make_version(major: i32, minor: i32, patch: i32) -> u32 {
12 ((major << 22) | (minor << 12) | patch) as u32
13 }
14
15 pub fn make_version_of(v: Version) -> u32 {
17 Self::make_version(v.major, v.minor, v.build)
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24 use ash::vk;
25
26 #[test]
27 fn make_version_packs_like_the_headers() {
28 assert_eq!(VulkanHelpers::make_version(1, 0, 0), vk::make_api_version(0, 1, 0, 0));
29 assert_eq!(VulkanHelpers::make_version(1, 1, 0), vk::API_VERSION_1_1);
30 assert_eq!(VulkanHelpers::make_version(1, 3, 281), vk::make_api_version(0, 1, 3, 281));
31 assert_eq!(VulkanHelpers::make_version_of(Version::new(1, 2, 7)), (1 << 22) | (2 << 12) | 7);
32 }
33
34 #[test]
35 fn queue_family_ignored_is_the_constant_of_the_headers() {
36 assert_eq!(VulkanHelpers::QUEUE_FAMILY_IGNORED, vk::QUEUE_FAMILY_IGNORED);
37 }
38}