Última atividade 1 month ago

Avii revisou este gist 1 month ago. Ir para a revisão

1 file changed, 32 insertions

snippet.rs(arquivo criado)

@@ -0,0 +1,32 @@
1 + #[unsafe(no_mangle)]
2 + unsafe extern "system" fn xrCreateApiLayerInstance(
3 + info: *const InstanceCreateInfo,
4 + layer_info: *const ApiLayerCreateInfo,
5 + instance: *mut Instance,
6 + ) -> openxr_sys::Result {
7 + let r_info: &InstanceCreateInfo = unsafe { &*info };
8 + let r_layer_info: &ApiLayerCreateInfo = unsafe { &*layer_info };
9 + let r_instance: &mut Instance = unsafe { &mut *instance };
10 +
11 + let mut next_layer_info: ApiLayerCreateInfo = *r_layer_info;
12 + next_layer_info.next_info = unsafe { &*r_layer_info.next_info }.next;
13 +
14 + dbg!(&r_info);
15 +
16 + let Some(next_create_api_layer_instance) =
17 + unsafe { &*r_layer_info.next_info }.next_create_api_layer_instance
18 + else {
19 + // no can do
20 + eprintln!("Unable to get next_create_api_layer_instance from layer_info.next_info");
21 + return openxr_sys::Result::ERROR_RUNTIME_FAILURE;
22 + };
23 +
24 + let result = unsafe { next_create_api_layer_instance(r_info, &next_layer_info, r_instance) };
25 +
26 + if result != openxr_sys::Result::SUCCESS {
27 + eprintln!("Next xrCreateApiLayerInstance failed: {}", result); // This gets triggerd
28 + return result;
29 + }
30 +
31 + openxr_sys::Result::SUCCESS
32 + }
Próximo Anterior