mirror of
https://github.com/rust-windowing/winit.git
synced 2026-09-01 06:10:07 -04:00
wayland: WindowExt implementations.
This commit is contained in:
@@ -286,6 +286,18 @@ impl Window {
|
|||||||
Err(())
|
Err(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
pub fn get_wayland_display(&self) -> *mut libc::c_void {
|
||||||
|
WAYLAND_CONTEXT.as_ref().unwrap() // context exists if window was created
|
||||||
|
.display_ptr() as *mut libc::c_void
|
||||||
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
pub fn get_wayland_surface(&self) -> *mut libc::c_void {
|
||||||
|
use wayland_client::Proxy;
|
||||||
|
self.surface.ptr() as *mut libc::c_void
|
||||||
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn platform_display(&self) -> *mut libc::c_void {
|
pub fn platform_display(&self) -> *mut libc::c_void {
|
||||||
WAYLAND_CONTEXT.as_ref().unwrap() // context exists if window was created
|
WAYLAND_CONTEXT.as_ref().unwrap() // context exists if window was created
|
||||||
|
|||||||
@@ -20,6 +20,20 @@ pub trait WindowExt {
|
|||||||
///
|
///
|
||||||
/// The pointer will become invalid when the glutin `Window` is destroyed.
|
/// The pointer will become invalid when the glutin `Window` is destroyed.
|
||||||
fn get_xlib_display(&self) -> Option<*mut libc::c_void>;
|
fn get_xlib_display(&self) -> Option<*mut libc::c_void>;
|
||||||
|
|
||||||
|
/// Returns a pointer to the `wl_surface` object of wayland that is used by this window.
|
||||||
|
///
|
||||||
|
/// Returns `None` if the window doesn't use wayland (if it uses xlib for example).
|
||||||
|
///
|
||||||
|
/// The pointer will become invalid when the glutin `Window` is destroyed.
|
||||||
|
fn get_wayland_surface(&self) -> Option<*mut libc::c_void>;
|
||||||
|
|
||||||
|
/// Returns a pointer to the `wl_display` object of wayland that is used by this window.
|
||||||
|
///
|
||||||
|
/// Returns `None` if the window doesn't use wayland (if it uses xlib for example).
|
||||||
|
///
|
||||||
|
/// The pointer will become invalid when the glutin `Window` is destroyed.
|
||||||
|
fn get_wayland_display(&self) -> Option<*mut libc::c_void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WindowExt for Window {
|
impl WindowExt for Window {
|
||||||
@@ -38,6 +52,22 @@ impl WindowExt for Window {
|
|||||||
_ => None
|
_ => None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn get_wayland_surface(&self) -> Option<*mut libc::c_void> {
|
||||||
|
match self.window {
|
||||||
|
LinuxWindow::Wayland(ref w) => Some(w.get_wayland_surface()),
|
||||||
|
_ => None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn get_wayland_display(&self) -> Option<*mut libc::c_void> {
|
||||||
|
match self.window {
|
||||||
|
LinuxWindow::Wayland(ref w) => Some(w.get_wayland_display()),
|
||||||
|
_ => None
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Additional methods on `WindowBuilder` that are specific to Unix.
|
/// Additional methods on `WindowBuilder` that are specific to Unix.
|
||||||
|
|||||||
Reference in New Issue
Block a user