#[unsafe(no_mangle)] unsafe extern "system" fn xrCreateApiLayerInstance( info: *const InstanceCreateInfo, layer_info: *const ApiLayerCreateInfo, instance: *mut Instance, ) -> openxr_sys::Result { let r_info: &InstanceCreateInfo = unsafe { &*info }; let r_layer_info: &ApiLayerCreateInfo = unsafe { &*layer_info }; let r_instance: &mut Instance = unsafe { &mut *instance }; let mut next_layer_info: ApiLayerCreateInfo = *r_layer_info; next_layer_info.next_info = unsafe { &*r_layer_info.next_info }.next; dbg!(&r_info); let Some(next_create_api_layer_instance) = unsafe { &*r_layer_info.next_info }.next_create_api_layer_instance else { // no can do eprintln!("Unable to get next_create_api_layer_instance from layer_info.next_info"); return openxr_sys::Result::ERROR_RUNTIME_FAILURE; }; let result = unsafe { next_create_api_layer_instance(r_info, &next_layer_info, r_instance) }; if result != openxr_sys::Result::SUCCESS { eprintln!("Next xrCreateApiLayerInstance failed: {}", result); // This gets triggerd return result; } openxr_sys::Result::SUCCESS }