raw_window_handle_extensions/
android.rs1use crate::{RawDisplayHandleType, RawWindowHandleType, VeryRawDisplayHandle, VeryRawWindowHandle};
2use raw_window_handle::{AndroidDisplayHandle, AndroidNdkWindowHandle};
3use std::ptr::NonNull;
4
5impl From<AndroidNdkWindowHandle> for VeryRawWindowHandle {
6 fn from(value: AndroidNdkWindowHandle) -> Self {
7 Self {
8 handle_type: RawWindowHandleType::AndroidNdk,
9 ptr_1: value.a_native_window.as_ptr(),
10 ptr_2: std::ptr::null_mut(),
11 ptr_3: std::ptr::null_mut(),
12 id_1: Default::default(),
13 id_2: Default::default(),
14 }
15 }
16}
17
18impl From<VeryRawWindowHandle> for AndroidNdkWindowHandle {
19 fn from(value: VeryRawWindowHandle) -> Self {
20 assert_eq!(value.handle_type, RawWindowHandleType::AndroidNdk);
21 Self::new(
22 NonNull::new(value.ptr_1.into())
23 .expect("Android native window pointer must not be null"),
24 )
25 }
26}
27
28impl From<AndroidDisplayHandle> for VeryRawDisplayHandle {
29 fn from(_value: AndroidDisplayHandle) -> Self {
30 Self {
31 handle_type: RawDisplayHandleType::Android,
32 ptr_1: std::ptr::null_mut(),
33 id_1: Default::default(),
34 }
35 }
36}
37
38impl From<VeryRawDisplayHandle> for AndroidDisplayHandle {
39 fn from(value: VeryRawDisplayHandle) -> Self {
40 assert_eq!(value.handle_type, RawDisplayHandleType::Android);
41 Self::new()
42 }
43}