Skip to content

Commit

Permalink
Clean up raw_window_handle functions a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
madsmtm committed Nov 27, 2021
1 parent e7962ee commit 5176dd6
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 45 deletions.
12 changes: 6 additions & 6 deletions src/platform_impl/android/mod.rs
Expand Up @@ -12,6 +12,7 @@ use ndk::{
looper::{ForeignLooper, Poll, ThreadLooper},
};
use ndk_glue::{Event, Rect};
use raw_window_handle::{AndroidNdkHandle, RawWindowHandle};
use std::{
collections::VecDeque,
sync::{Arc, Mutex, RwLock},
Expand Down Expand Up @@ -589,15 +590,14 @@ impl Window {
))
}

pub fn raw_window_handle(&self) -> raw_window_handle::RawWindowHandle {
let a_native_window = if let Some(native_window) = ndk_glue::native_window().as_ref() {
unsafe { native_window.ptr().as_mut() as *mut _ as *mut _ }
pub fn raw_window_handle(&self) -> RawWindowHandle {
let mut handle = AndroidNdkHandle::empty();
if let Some(native_window) = ndk_glue::native_window().as_ref() {
handle.a_native_window = unsafe { native_window.ptr().as_mut() as *mut _ as *mut _ }
} else {
panic!("Cannot get the native window, it's null and will always be null before Event::Resumed and after Event::Suspended. Make sure you only call this function between those events.");
};
let mut handle = raw_window_handle::AndroidNdkHandle::empty();
handle.a_native_window = a_native_window;
raw_window_handle::RawWindowHandle::AndroidNdk(handle)
RawWindowHandle::AndroidNdk(handle)
}

pub fn config(&self) -> Configuration {
Expand Down
12 changes: 5 additions & 7 deletions src/platform_impl/ios/window.rs
@@ -1,4 +1,4 @@
use raw_window_handle::{UiKitHandle, RawWindowHandle};
use raw_window_handle::{RawWindowHandle, UiKitHandle};
use std::{
collections::VecDeque,
ops::{Deref, DerefMut},
Expand Down Expand Up @@ -307,12 +307,10 @@ impl Inner {
}

pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = UiKitHandle {
ui_window: self.window as _,
ui_view: self.view as _,
ui_view_controller: self.view_controller as _,
..UiKitHandle::empty()
};
let mut handle = UiKitHandle::empty();
handle.ui_window = self.window as _;
handle.ui_view = self.view as _;
handle.ui_view_controller = self.view_controller as _;
RawWindowHandle::UiKit(handle)
}
}
Expand Down
12 changes: 4 additions & 8 deletions src/platform_impl/linux/wayland/window/mod.rs
Expand Up @@ -488,14 +488,10 @@ impl Window {

#[inline]
pub fn raw_window_handle(&self) -> WaylandHandle {
let display = self.display.get_display_ptr() as *mut _;
let surface = self.surface.as_ref().c_ptr() as *mut _;

WaylandHandle {
display,
surface,
..WaylandHandle::empty()
}
let mut handle = WaylandHandle::empty();
handle.display = self.display.get_display_ptr() as *mut _;
handle.surface = self.surface.as_ref().c_ptr() as *mut _;
handle
}

#[inline]
Expand Down
9 changes: 4 additions & 5 deletions src/platform_impl/linux/x11/window.rs
Expand Up @@ -1458,10 +1458,9 @@ impl UnownedWindow {

#[inline]
pub fn raw_window_handle(&self) -> XlibHandle {
XlibHandle {
window: self.xwindow,
display: self.xconn.display as _,
..XlibHandle::empty()
}
let mut handle = XlibHandle::empty();
handle.window = self.xlib_window();
handle.display = self.xlib_display();
handle
}
}
8 changes: 3 additions & 5 deletions src/platform_impl/macos/window.rs
Expand Up @@ -1059,11 +1059,9 @@ impl UnownedWindow {

#[inline]
pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = AppKitHandle {
ns_window: *self.ns_window as *mut _,
ns_view: *self.ns_view as *mut _,
..AppKitHandle::empty()
};
let mut handle = AppKitHandle::empty();
handle.ns_window = *self.ns_window as *mut _;
handle.ns_view = *self.ns_view as *mut _;
RawWindowHandle::AppKit(handle)
}
}
Expand Down
13 changes: 5 additions & 8 deletions src/platform_impl/web/window.rs
Expand Up @@ -7,7 +7,7 @@ use crate::window::{
CursorIcon, Fullscreen, UserAttentionType, WindowAttributes, WindowId as RootWI,
};

use raw_window_handle::WebHandle;
use raw_window_handle::{RawWindowHandle, WebHandle};

use super::{backend, monitor, EventLoopWindowTarget};

Expand Down Expand Up @@ -322,13 +322,10 @@ impl Window {
}

#[inline]
pub fn raw_window_handle(&self) -> raw_window_handle::RawWindowHandle {
let handle = WebHandle {
id: self.id.0,
..WebHandle::empty()
};

raw_window_handle::RawWindowHandle::Web(handle)
pub fn raw_window_handle(&self) -> RawWindowHandle {
let mut handle = WebHandle::empty();
handle.id = self.id.0;
RawWindowHandle::Web(handle)
}
}

Expand Down
10 changes: 4 additions & 6 deletions src/platform_impl/windows/window.rs
@@ -1,7 +1,7 @@
#![cfg(target_os = "windows")]

use parking_lot::Mutex;
use raw_window_handle::{Win32Handle, RawWindowHandle};
use raw_window_handle::{RawWindowHandle, Win32Handle};
use std::{
cell::Cell,
ffi::OsStr,
Expand Down Expand Up @@ -233,11 +233,9 @@ impl Window {

#[inline]
pub fn raw_window_handle(&self) -> RawWindowHandle {
let handle = Win32Handle {
hwnd: self.window.0 as *mut _,
hinstance: self.hinstance() as *mut _,
..Win32Handle::empty()
};
let mut handle = Win32Handle::empty();
handle.hwnd = self.window.0 as *mut _;
handle.hinstance = self.hinstance() as *mut _;
RawWindowHandle::Win32(handle)
}

Expand Down

0 comments on commit 5176dd6

Please sign in to comment.