breaking: Use raw-window-handle version 0.6
Signed-off-by: John Nunley <dev@notgull.net> Co-Authored-By: dAxpeDDa <daxpedda@gmail.com>
This commit is contained in:
parent
18c944736e
commit
0bcd2e22a2
22 changed files with 830 additions and 628 deletions
|
|
@ -2,8 +2,11 @@
|
|||
|
||||
#[cfg(all(feature = "x11", any(target_os = "linux", target_os = "freebsd")))]
|
||||
mod example {
|
||||
use raw_window_handle::{RawDisplayHandle, RawWindowHandle, XcbDisplayHandle, XcbWindowHandle};
|
||||
use std::num::NonZeroU32;
|
||||
use raw_window_handle::{
|
||||
DisplayHandle, RawDisplayHandle, RawWindowHandle, WindowHandle, XcbDisplayHandle,
|
||||
XcbWindowHandle,
|
||||
};
|
||||
use std::{num::NonZeroU32, ptr::NonNull};
|
||||
use x11rb::{
|
||||
connection::Connection,
|
||||
protocol::{
|
||||
|
|
@ -20,9 +23,10 @@ mod example {
|
|||
let (conn, screen) = XCBConnection::connect(None).expect("Failed to connect to X server");
|
||||
|
||||
// x11rb doesn't use raw-window-handle yet, so just create our own.
|
||||
let mut display_handle = XcbDisplayHandle::empty();
|
||||
display_handle.connection = conn.get_raw_xcb_connection() as *mut _;
|
||||
display_handle.screen = screen as _;
|
||||
let display_handle = XcbDisplayHandle::new(
|
||||
NonNull::new(conn.get_raw_xcb_connection() as *mut _),
|
||||
screen as _,
|
||||
);
|
||||
|
||||
// Create a new window.
|
||||
let mut width = 640u16;
|
||||
|
|
@ -50,18 +54,17 @@ mod example {
|
|||
.check()
|
||||
.unwrap();
|
||||
|
||||
let mut window_handle = XcbWindowHandle::empty();
|
||||
window_handle.window = window as _;
|
||||
window_handle.visual_id = root_visual as _;
|
||||
let mut window_handle = XcbWindowHandle::new(NonZeroU32::new(window).unwrap());
|
||||
window_handle.visual_id = NonZeroU32::new(root_visual);
|
||||
|
||||
// Create a new softbuffer context.
|
||||
// SAFETY: The display and window handles outlive the context.
|
||||
let context =
|
||||
unsafe { softbuffer::Context::from_raw(RawDisplayHandle::Xcb(display_handle)) }
|
||||
.unwrap();
|
||||
let mut surface =
|
||||
unsafe { softbuffer::Surface::from_raw(&context, RawWindowHandle::Xcb(window_handle)) }
|
||||
.unwrap();
|
||||
let display_handle =
|
||||
unsafe { DisplayHandle::borrow_raw(RawDisplayHandle::Xcb(display_handle)) };
|
||||
let window_handle =
|
||||
unsafe { WindowHandle::borrow_raw(RawWindowHandle::Xcb(window_handle)) };
|
||||
let context = softbuffer::Context::new(display_handle).unwrap();
|
||||
let mut surface = softbuffer::Surface::new(&context, window_handle).unwrap();
|
||||
|
||||
// Register an atom for closing the window.
|
||||
let wm_protocols_atom = conn
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue