properties: *mut ExtensionProperties,
) -> Result;
+pub type FnEnumerateInstanceLayerProperties =
+ extern "system" fn(property_count: &mut u32, properties: *mut LayerProperties) -> Result;
+
pub type FnCreateInstance = extern "system" fn(
create_info: &InstanceCreateInfo,
allocator: Option<&AllocationCallbacks>,
get_instance_proc_addr: FnGetInstanceProcAddr,
enumerate_instance_version: Option<FnEnumerateInstanceVersion>,
enumerate_instance_extension_properties: FnEnumerateInstanceExtensionProperties,
+ enumerate_instance_layer_properties: FnEnumerateInstanceLayerProperties,
create_instance: FnCreateInstance,
}
Instance::null(),
c"vkEnumerateInstanceExtensionProperties".as_ptr(),
)),
+ enumerate_instance_layer_properties: transmute::<_, _>(get_instance_proc_addr(
+ Instance::null(),
+ c"vkEnumerateInstanceLayerProperties".as_ptr(),
+ )),
create_instance: transmute::<_, _>(
get_instance_proc_addr(Instance::null(), c"vkCreateInstance".as_ptr())
.expect("failed to load vkCreateInstance"),
(self.enumerate_instance_extension_properties)(layer_name, property_count, properties)
}
+ #[inline]
+ pub unsafe fn enumerate_instance_layer_properties(
+ &self,
+ property_count: &mut u32,
+ properties: *mut LayerProperties,
+ ) -> Result {
+ (self.enumerate_instance_layer_properties)(property_count, properties)
+ }
+
#[inline]
pub unsafe fn create_instance(
&self,
pub spec_version: u32,
}
+#[repr(C)]
+pub struct LayerProperties {
+ pub layer_name: [u8; 256],
+ pub spec_version: u32,
+ pub implementation_version: u32,
+ pub description: [u8; 256],
+}
+
#[repr(C)]
pub struct AllocationCallbacks {
user_data: *mut c_void,