From 29d5f828445776ab21b8eaaaa6bc2f2d691789a7 Mon Sep 17 00:00:00 2001 From: Tunahan Karlibas Date: Sat, 4 Nov 2023 20:55:07 +0300 Subject: [PATCH] update ash-window to raw-window-handle 6.0 --- ash-window/Cargo.toml | 2 +- ash-window/src/lib.rs | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ash-window/Cargo.toml b/ash-window/Cargo.toml index 76ad7c154..911b5bbaf 100644 --- a/ash-window/Cargo.toml +++ b/ash-window/Cargo.toml @@ -16,7 +16,7 @@ rust-version = "1.64.0" [dependencies] ash = { path = "../ash", version = "0.37", default-features = false } -raw-window-handle = "0.5" +raw-window-handle = "0.6" [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies] raw-window-metal = "0.3" diff --git a/ash-window/src/lib.rs b/ash-window/src/lib.rs index 7b97fb752..2cf6b65fe 100644 --- a/ash-window/src/lib.rs +++ b/ash-window/src/lib.rs @@ -8,6 +8,7 @@ use ash::{ vk, Entry, Instance, }; use raw_window_handle::{RawDisplayHandle, RawWindowHandle}; +use ash::vk::xcb_window_t; /// Create a surface from a raw surface handle. /// @@ -42,23 +43,23 @@ pub unsafe fn create_surface( match (display_handle, window_handle) { (RawDisplayHandle::Windows(_), RawWindowHandle::Win32(window)) => { let surface_desc = vk::Win32SurfaceCreateInfoKHR::default() - .hinstance(window.hinstance as isize) - .hwnd(window.hwnd as isize); + .hinstance(window.hinstance.map(|v| v.get()).expect("hinstance null")) + .hwnd(window.hwnd.into()); let surface_fn = khr::Win32Surface::new(entry, instance); surface_fn.create_win32_surface(&surface_desc, allocation_callbacks) } (RawDisplayHandle::Wayland(display), RawWindowHandle::Wayland(window)) => { let surface_desc = vk::WaylandSurfaceCreateInfoKHR::default() - .display(display.display) - .surface(window.surface); + .display(display.display.as_ptr()) + .surface(window.surface.as_ptr()); let surface_fn = khr::WaylandSurface::new(entry, instance); surface_fn.create_wayland_surface(&surface_desc, allocation_callbacks) } (RawDisplayHandle::Xlib(display), RawWindowHandle::Xlib(window)) => { let surface_desc = vk::XlibSurfaceCreateInfoKHR::default() - .dpy(display.display.cast()) + .dpy(display.display.expect("display null").as_ptr()) .window(window.window); let surface_fn = khr::XlibSurface::new(entry, instance); surface_fn.create_xlib_surface(&surface_desc, allocation_callbacks) @@ -66,15 +67,15 @@ pub unsafe fn create_surface( (RawDisplayHandle::Xcb(display), RawWindowHandle::Xcb(window)) => { let surface_desc = vk::XcbSurfaceCreateInfoKHR::default() - .connection(display.connection) - .window(window.window); + .connection(display.connection.map(|c| c.as_ptr()).expect("Connection null")) + .window(window.window.get()); let surface_fn = khr::XcbSurface::new(entry, instance); surface_fn.create_xcb_surface(&surface_desc, allocation_callbacks) } (RawDisplayHandle::Android(_), RawWindowHandle::AndroidNdk(window)) => { let surface_desc = - vk::AndroidSurfaceCreateInfoKHR::default().window(window.a_native_window); + vk::AndroidSurfaceCreateInfoKHR::default().window(window.a_native_window.as_ptr()); let surface_fn = khr::AndroidSurface::new(entry, instance); surface_fn.create_android_surface(&surface_desc, allocation_callbacks) }