pub fn enumerate_device_extension_properties<Pd>(&self, physical_device: Pd,
            layer_name: Option<&CStr>)
            -> VdResult<SmallVec<[ExtensionProperties; 64]>>
            where Pd: Handle<Target=PhysicalDeviceHandle> {
        let layer_name = layer_name.map(|ln| ln.as_ptr()).unwrap_or(ptr::null());
        let mut property_count = 0u32;
        let mut properties = SmallVec::<[ExtensionProperties; 64]>::new();
        unsafe {
            let result = self.proc_addr_loader().vk.vkEnumerateDeviceExtensionProperties(
                physical_device.handle().to_raw(), layer_name, &mut property_count, ptr::null_mut());
            error::check(result, "vkEnumerateDeviceExtensionProperties", ())?;
            properties.reserve_exact(property_count as usize);
            properties.set_len(property_count as usize);
            loop {
                let result = self.proc_addr_loader().vk.vkEnumerateDeviceExtensionProperties(
                    physical_device.handle().to_raw(), layer_name, &mut property_count,
                    properties.as_mut_ptr() as *mut vks::VkExtensionProperties);
                if result != CallResult::Incomplete as i32 {
                    return error::check(result, "vkEnumerateDeviceExtensionProperties", properties);
                }
            }
        }
    }
/// Returns the properties of available physical device extensions.
///
/// https://www.khronos.org/registry/vulkan/specs/1.0/man/html/vkEnumerateDeviceExtensionProperties.html
//
// *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice
// physicalDevice, const char* pLayerName, uint32_t* pPropertyCount,
// VkExtensionProperties* pProperties);
Returns the properties of available physical device extensions.


Returns the properties of available physical device extensions .
pub fn enumerate_device_extension_properties<Pd>(&self, physical_device: Pd,
            layer_name: Option<&CStr>)
            -> VdResult<SmallVec<[ExtensionProperties; 64]>>
            where Pd: Handle<Target=PhysicalDeviceHandle> {
        let layer_name = layer_name.map(|ln| ln.as_ptr()).unwrap_or(ptr::null());
        let mut property_count = 0u32;
        let mut properties = SmallVec::<[ExtensionProperties; 64]>::new();
        unsafe {
            let result = self.proc_addr_loader().vk.vkEnumerateDeviceExtensionProperties(
                physical_device.handle().to_raw(), layer_name, &mut property_count, ptr::null_mut());
            error::check(result, "vkEnumerateDeviceExtensionProperties", ())?;
            properties.reserve_exact(property_count as usize);
            properties.set_len(property_count as usize);
            loop {
                let result = self.proc_addr_loader().vk.vkEnumerateDeviceExtensionProperties(
                    physical_device.handle().to_raw(), layer_name, &mut property_count,
                    properties.as_mut_ptr() as *mut vks::VkExtensionProperties);
                if result != CallResult::Incomplete as i32 {
                    return error::check(result, "vkEnumerateDeviceExtensionProperties", properties);
                }
            }
        }
    }
pub fn enumerate_device_extension_properties < Pd > ( & self , physical_device : Pd , layer_name : Option < & CStr > ) -> VdResult < SmallVec < [ ExtensionProperties ; 64 ] > > where Pd : Handle < Target = PhysicalDeviceHandle > { let layer_name = layer_name . map ( | ln | ln . as_ptr ( ) ) . unwrap_or ( ptr :: null ( ) ) ; let mut property_count = 0u32 ; let mut properties = SmallVec :: < [ ExtensionProperties ; 64 ] > :: new ( ) ; unsafe { let result = self . proc_addr_loader ( ) . vk . vkEnumerateDeviceExtensionProperties ( physical_device . handle ( ) . to_raw ( ) , layer_name , & mut property_count , ptr :: null_mut ( ) ) ; error :: check ( result , " " , ( ) ) ? ; properties . reserve_exact ( property_count as usize ) ; properties . set_len ( property_count as usize ) ; loop { let result = self . proc_addr_loader ( ) . vk . vkEnumerateDeviceExtensionProperties ( physical_device . handle ( ) . to_raw ( ) , layer_name , & mut property_count , properties . as_mut_ptr ( ) as * mut vks :: VkExtensionProperties ) ; if result != CallResult :: Incomplete as i32 { return error :: check ( result , " " , properties ) ; } } } }
Returns the properties of available physical device extensions.
Returns the properties of available physical device extensions .
&self
physical_device
Pd
layer_name
Option<&CStr>
&self
physical_device
Pd
layer_name
Option<&CStr>