]> git.nega.tv - josh/narcissus/commitdiff
vulkan-sys: Add device extension enumeration
authorJoshua Simmons <josh@nega.tv>
Tue, 11 Jul 2023 07:25:44 +0000 (09:25 +0200)
committerJoshua Simmons <josh@nega.tv>
Tue, 11 Jul 2023 07:25:44 +0000 (09:25 +0200)
libs/ffi/vulkan-sys/src/functions.rs
libs/ffi/vulkan-sys/src/lib.rs

index 8a258c099a57be32b851c8681a1c76773891c80b..f4ff7b651afeb0ca991007ae16b41c9a2559b63a 100644 (file)
@@ -61,6 +61,13 @@ pub type FnEnumeratePhysicalDevices = extern "system" fn(
     physical_devices: *mut PhysicalDevice,
 ) -> Result;
 
+pub type FnEnumerateDeviceExtensionProperties = extern "system" fn(
+    physical_device: PhysicalDevice,
+    layer_name: *const c_char,
+    property_count: &mut u32,
+    properties: *mut ExtensionProperties,
+) -> Result;
+
 pub type FnGetPhysicalDeviceFeatures =
     extern "system" fn(physical_device: PhysicalDevice, features: *mut PhysicalDeviceFeatures);
 
index e515c06b6ff760aa6b2da5e915427acc8e303428..0e435e6b9ca515b0ae634788cc5281e7fedc2927 100644 (file)
@@ -370,6 +370,7 @@ impl GlobalFunctions {
 pub struct InstanceFunctions {
     destroy_instance: FnDestroyInstance,
     enumerate_physical_devices: FnEnumeratePhysicalDevices,
+    enumerate_device_extension_properties: FnEnumerateDeviceExtensionProperties,
     get_physical_device_features: FnGetPhysicalDeviceFeatures,
     get_physical_device_properties: FnGetPhysicalDeviceProperties,
     get_physical_device_queue_family_properties: FnGetPhysicalDeviceQueueFamilyProperties,
@@ -409,6 +410,10 @@ impl InstanceFunctions {
                     cstr!("vkEnumeratePhysicalDevices"),
                     VERSION_1_0,
                 )),
+                enumerate_device_extension_properties: transmute::<_, _>(load(
+                    cstr!("vkEnumerateDeviceExtensionProperties"),
+                    VERSION_1_0,
+                )),
                 get_physical_device_features: transmute::<_, _>(load(
                     cstr!("vkGetPhysicalDeviceFeatures"),
                     VERSION_1_0,
@@ -463,6 +468,22 @@ impl InstanceFunctions {
         (self.enumerate_physical_devices)(instance, physical_device_count, physical_devices)
     }
 
+    #[inline]
+    pub unsafe fn enumerate_device_extension_properties(
+        &self,
+        physical_device: PhysicalDevice,
+        layer_name: *const c_char,
+        property_count: &mut u32,
+        properties: *mut ExtensionProperties,
+    ) -> Result {
+        (self.enumerate_device_extension_properties)(
+            physical_device,
+            layer_name,
+            property_count,
+            properties,
+        )
+    }
+
     #[inline]
     pub unsafe fn get_physical_device_features(
         &self,