mirror of
https://github.com/italicsjenga/winit-sonoma-fix.git
synced 2025-01-11 13:31:29 +11:00
Remove compatibility shim for raw-window-handle
0.4
This commit is contained in:
parent
94e4c394e7
commit
58ec458877
|
@ -47,7 +47,8 @@ And please only add new entries to the top of this list, right below the `# Unre
|
||||||
- **Breaking:** Removed `WindowBuilderExtWindows::with_theme` and `WindowBuilderExtWayland::with_wayland_csd_theme` in favour of `WindowBuilder::with_theme`.
|
- **Breaking:** Removed `WindowBuilderExtWindows::with_theme` and `WindowBuilderExtWayland::with_wayland_csd_theme` in favour of `WindowBuilder::with_theme`.
|
||||||
- **Breaking:** Removed `WindowExtWindows::theme` in favour of `Window::theme`.
|
- **Breaking:** Removed `WindowExtWindows::theme` in favour of `Window::theme`.
|
||||||
- Enabled `doc_auto_cfg` when generating docs on docs.rs for feature labels.
|
- Enabled `doc_auto_cfg` when generating docs on docs.rs for feature labels.
|
||||||
- **Breaking:** On Android, switched to using [`android-activity`](https://github.com/rib/android-activity) crate as a glue layer instead of [`ndk-glue](https://github.com/rust-windowing/android-ndk-rs/tree/master/ndk-glue). See [README.md#Android](https://github.com/rust-windowing/winit#Android) for more details. ([#2444](https://github.com/rust-windowing/winit/pull/2444))
|
- **Breaking:** On Android, switched to using [`android-activity`](https://github.com/rib/android-activity) crate as a glue layer instead of [`ndk-glue`](https://github.com/rust-windowing/android-ndk-rs/tree/master/ndk-glue). See [README.md#Android](https://github.com/rust-windowing/winit#Android) for more details. ([#2444](https://github.com/rust-windowing/winit/pull/2444))
|
||||||
|
- **Breaking:** Removed support for `raw-window-handle` version `0.4`
|
||||||
|
|
||||||
# 0.27.5
|
# 0.27.5
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ once_cell = "1.12"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
serde = { version = "1", optional = true, features = ["serde_derive"] }
|
serde = { version = "1", optional = true, features = ["serde_derive"] }
|
||||||
raw_window_handle = { package = "raw-window-handle", version = "0.5" }
|
raw_window_handle = { package = "raw-window-handle", version = "0.5" }
|
||||||
raw_window_handle_04 = { package = "raw-window-handle", version = "0.4.3" }
|
|
||||||
bitflags = "1"
|
bitflags = "1"
|
||||||
mint = { version = "0.5.6", optional = true }
|
mint = { version = "0.5.6", optional = true }
|
||||||
|
|
||||||
|
|
103
src/window.rs
103
src/window.rs
|
@ -1255,109 +1255,6 @@ unsafe impl HasRawDisplayHandle for Window {
|
||||||
self.window.raw_display_handle()
|
self.window.raw_display_handle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unsafe impl raw_window_handle_04::HasRawWindowHandle for Window {
|
|
||||||
/// Returns a [`raw_window_handle_04::RawWindowHandle`] for the Window
|
|
||||||
///
|
|
||||||
/// This provides backwards compatibility for downstream crates that have not yet
|
|
||||||
/// upgraded to `raw_window_handle` version 0.5, such as Wgpu version 0.13.
|
|
||||||
///
|
|
||||||
/// ## Platform-specific
|
|
||||||
///
|
|
||||||
/// ### Android
|
|
||||||
///
|
|
||||||
/// Only available after receiving [`Event::Resumed`] and before [`Event::Suspended`]. *If you
|
|
||||||
/// try to get the handle outside of that period, this function will panic*!
|
|
||||||
///
|
|
||||||
/// Make sure to release or destroy any resources created from this `RawWindowHandle` (ie. Vulkan
|
|
||||||
/// or OpenGL surfaces) before returning from [`Event::Suspended`], at which point Android will
|
|
||||||
/// release the underlying window/surface: any subsequent interaction is undefined behavior.
|
|
||||||
///
|
|
||||||
/// [`Event::Resumed`]: crate::event::Event::Resumed
|
|
||||||
/// [`Event::Suspended`]: crate::event::Event::Suspended
|
|
||||||
fn raw_window_handle(&self) -> raw_window_handle_04::RawWindowHandle {
|
|
||||||
use raw_window_handle_04::{
|
|
||||||
AndroidNdkHandle, AppKitHandle, HaikuHandle, OrbitalHandle, UiKitHandle, WaylandHandle,
|
|
||||||
WebHandle, Win32Handle, WinRtHandle, XcbHandle, XlibHandle,
|
|
||||||
};
|
|
||||||
|
|
||||||
// XXX: Ideally this would be encapsulated either through a
|
|
||||||
// compatibility API from raw_window_handle_05 or else within the
|
|
||||||
// backends but since this is only to provide short-term backwards
|
|
||||||
// compatibility, we just handle the full mapping inline here.
|
|
||||||
//
|
|
||||||
// The intention is to remove this trait implementation before Winit
|
|
||||||
// 0.28, once crates have had time to upgrade to raw_window_handle 0.5
|
|
||||||
|
|
||||||
match (self.window.raw_window_handle(), self.window.raw_display_handle()) {
|
|
||||||
(RawWindowHandle::UiKit(window_handle), _) => {
|
|
||||||
let mut handle = UiKitHandle::empty();
|
|
||||||
handle.ui_view = window_handle.ui_view;
|
|
||||||
handle.ui_window = window_handle.ui_window;
|
|
||||||
handle.ui_view_controller = window_handle.ui_view_controller;
|
|
||||||
raw_window_handle_04::RawWindowHandle::UiKit(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::AppKit(window_handle), _) => {
|
|
||||||
let mut handle = AppKitHandle::empty();
|
|
||||||
handle.ns_window = window_handle.ns_window;
|
|
||||||
handle.ns_view = window_handle.ns_view;
|
|
||||||
raw_window_handle_04::RawWindowHandle::AppKit(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Orbital(window_handle), _) => {
|
|
||||||
let mut handle = OrbitalHandle::empty();
|
|
||||||
handle.window = window_handle.window;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Orbital(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Xlib(window_handle), RawDisplayHandle::Xlib(display_handle)) => {
|
|
||||||
let mut handle = XlibHandle::empty();
|
|
||||||
handle.display = display_handle.display;
|
|
||||||
handle.window = window_handle.window;
|
|
||||||
handle.visual_id = window_handle.visual_id;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Xlib(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Xcb(window_handle), RawDisplayHandle::Xcb(display_handle)) => {
|
|
||||||
let mut handle = XcbHandle::empty();
|
|
||||||
handle.connection = display_handle.connection;
|
|
||||||
handle.window = window_handle.window;
|
|
||||||
handle.visual_id = window_handle.visual_id;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Xcb(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Wayland(window_handle), RawDisplayHandle::Wayland(display_handle)) => {
|
|
||||||
let mut handle = WaylandHandle::empty();
|
|
||||||
handle.display = display_handle.display;
|
|
||||||
handle.surface = window_handle.surface;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Wayland(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Win32(window_handle), _) => {
|
|
||||||
let mut handle = Win32Handle::empty();
|
|
||||||
handle.hwnd = window_handle.hwnd;
|
|
||||||
handle.hinstance = window_handle.hinstance;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Win32(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::WinRt(window_handle), _) => {
|
|
||||||
let mut handle = WinRtHandle::empty();
|
|
||||||
handle.core_window = window_handle.core_window;
|
|
||||||
raw_window_handle_04::RawWindowHandle::WinRt(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Web(window_handle), _) => {
|
|
||||||
let mut handle = WebHandle::empty();
|
|
||||||
handle.id = window_handle.id;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Web(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::AndroidNdk(window_handle), _) => {
|
|
||||||
let mut handle = AndroidNdkHandle::empty();
|
|
||||||
handle.a_native_window = window_handle.a_native_window;
|
|
||||||
raw_window_handle_04::RawWindowHandle::AndroidNdk(handle)
|
|
||||||
},
|
|
||||||
(RawWindowHandle::Haiku(window_handle), _) => {
|
|
||||||
let mut handle = HaikuHandle::empty();
|
|
||||||
handle.b_window = window_handle.b_window;
|
|
||||||
handle.b_direct_window = window_handle.b_direct_window;
|
|
||||||
raw_window_handle_04::RawWindowHandle::Haiku(handle)
|
|
||||||
},
|
|
||||||
_ => panic!("No HasRawWindowHandle version 0.4 backwards compatibility for new Winit window type"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The behavior of cursor grabbing.
|
/// The behavior of cursor grabbing.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Reference in a new issue