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