raw_window_handle_ffi/handles/
android_ndk.rs1use std::{ffi::c_void, ptr::NonNull};
2
3use crate::{RawWindowHandle, RawWindowHandleData};
4
5#[repr(C)]
9#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
10pub struct AndroidNdkWindowHandle {
11 pub a_native_window: NonNull<c_void>,
13}
14
15unsafe impl Send for AndroidNdkWindowHandle {}
16unsafe impl Sync for AndroidNdkWindowHandle {}
17
18impl From<raw_window_handle::AndroidNdkWindowHandle> for AndroidNdkWindowHandle {
19 fn from(value: raw_window_handle::AndroidNdkWindowHandle) -> Self {
20 Self {
21 a_native_window: value.a_native_window,
22 }
23 }
24}
25
26impl AndroidNdkWindowHandle {
27 pub unsafe fn into(self) -> raw_window_handle::AndroidNdkWindowHandle {
33 raw_window_handle::AndroidNdkWindowHandle::new(self.a_native_window)
34 }
35}
36
37impl From<AndroidNdkWindowHandle> for RawWindowHandle {
38 fn from(val: AndroidNdkWindowHandle) -> RawWindowHandle {
39 RawWindowHandle {
40 kind: crate::RawWindowHandleKind::AndroidNdkWindowHandle,
41 data: RawWindowHandleData { android_ndk: val },
42 }
43 }
44}