platform_types: Convert Windows HANDLE
types to isize
(#797)
The `windows` crate treats these as `isize` rather than raw void pointers: https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Foundation/struct.HWND.html And `raw-window-handle 0.6` recently started to do the same: https://github.com/rust-windowing/raw-window-handle/pull/136 However, the win32 documentation still states that these should be `PVOID`: https://learn.microsoft.com/en-us/windows/win32/winprog/windows-data-types
This commit is contained in:
parent
49de0341a0
commit
d0d5ea1370
|
@ -42,6 +42,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
- Define `Display` as `c_void` instead of `*mut c_void` to match Xlib (#751)
|
- Define `Display` as `c_void` instead of `*mut c_void` to match Xlib (#751)
|
||||||
- `VK_KHR_device_group_creation`: Take borrow of `Entry` in `fn new()` (#753)
|
- `VK_KHR_device_group_creation`: Take borrow of `Entry` in `fn new()` (#753)
|
||||||
- `VK_KHR_device_group_creation`: Rename `vk::Instance`-returning function from `device()` to `instance()` (#759)
|
- `VK_KHR_device_group_creation`: Rename `vk::Instance`-returning function from `device()` to `instance()` (#759)
|
||||||
|
- Windows `HANDLE` types (`HWND`, `HINSTANCE`, `HMONITOR`) are now defined as `isize` instead of `*const c_void` (#797)
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
|
|
@ -42,8 +42,8 @@ pub unsafe fn create_surface(
|
||||||
match (display_handle, window_handle) {
|
match (display_handle, window_handle) {
|
||||||
(RawDisplayHandle::Windows(_), RawWindowHandle::Win32(window)) => {
|
(RawDisplayHandle::Windows(_), RawWindowHandle::Win32(window)) => {
|
||||||
let surface_desc = vk::Win32SurfaceCreateInfoKHR::default()
|
let surface_desc = vk::Win32SurfaceCreateInfoKHR::default()
|
||||||
.hinstance(window.hinstance)
|
.hinstance(window.hinstance as isize)
|
||||||
.hwnd(window.hwnd);
|
.hwnd(window.hwnd as isize);
|
||||||
let surface_fn = khr::Win32Surface::new(entry, instance);
|
let surface_fn = khr::Win32Surface::new(entry, instance);
|
||||||
surface_fn.create_win32_surface(&surface_desc, allocation_callbacks)
|
surface_fn.create_win32_surface(&surface_desc, allocation_callbacks)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ use crate::vk;
|
||||||
use crate::{Device, Instance};
|
use crate::{Device, Instance};
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr;
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_win32.html>
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_win32.html>
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -36,9 +36,9 @@ impl ExternalFenceWin32 {
|
||||||
&self,
|
&self,
|
||||||
get_info: &vk::FenceGetWin32HandleInfoKHR,
|
get_info: &vk::FenceGetWin32HandleInfoKHR,
|
||||||
) -> VkResult<vk::HANDLE> {
|
) -> VkResult<vk::HANDLE> {
|
||||||
let mut handle = ptr::null_mut();
|
let mut handle = MaybeUninit::uninit();
|
||||||
(self.fp.get_fence_win32_handle_khr)(self.handle, get_info, &mut handle)
|
(self.fp.get_fence_win32_handle_khr)(self.handle, get_info, handle.as_mut_ptr())
|
||||||
.result_with_success(handle)
|
.assume_init_on_success(handle)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const NAME: &'static CStr = vk::KhrExternalFenceWin32Fn::NAME;
|
pub const NAME: &'static CStr = vk::KhrExternalFenceWin32Fn::NAME;
|
||||||
|
|
|
@ -3,7 +3,7 @@ use crate::vk;
|
||||||
use crate::{Device, Instance};
|
use crate::{Device, Instance};
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr;
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_win32.html>
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_win32.html>
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -27,9 +27,9 @@ impl ExternalMemoryWin32 {
|
||||||
&self,
|
&self,
|
||||||
create_info: &vk::MemoryGetWin32HandleInfoKHR,
|
create_info: &vk::MemoryGetWin32HandleInfoKHR,
|
||||||
) -> VkResult<vk::HANDLE> {
|
) -> VkResult<vk::HANDLE> {
|
||||||
let mut handle = ptr::null_mut();
|
let mut handle = MaybeUninit::uninit();
|
||||||
(self.fp.get_memory_win32_handle_khr)(self.handle, create_info, &mut handle)
|
(self.fp.get_memory_win32_handle_khr)(self.handle, create_info, handle.as_mut_ptr())
|
||||||
.result_with_success(handle)
|
.assume_init_on_success(handle)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetMemoryWin32HandlePropertiesKHR.html>
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetMemoryWin32HandlePropertiesKHR.html>
|
||||||
|
|
|
@ -3,7 +3,7 @@ use crate::vk;
|
||||||
use crate::{Device, Instance};
|
use crate::{Device, Instance};
|
||||||
use std::ffi::CStr;
|
use std::ffi::CStr;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::ptr;
|
use std::mem::MaybeUninit;
|
||||||
|
|
||||||
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_win32.html>
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_win32.html>
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -36,9 +36,9 @@ impl ExternalSemaphoreWin32 {
|
||||||
&self,
|
&self,
|
||||||
get_info: &vk::SemaphoreGetWin32HandleInfoKHR,
|
get_info: &vk::SemaphoreGetWin32HandleInfoKHR,
|
||||||
) -> VkResult<vk::HANDLE> {
|
) -> VkResult<vk::HANDLE> {
|
||||||
let mut handle = ptr::null_mut();
|
let mut handle = MaybeUninit::uninit();
|
||||||
(self.fp.get_semaphore_win32_handle_khr)(self.handle, get_info, &mut handle)
|
(self.fp.get_semaphore_win32_handle_khr)(self.handle, get_info, handle.as_mut_ptr())
|
||||||
.result_with_success(handle)
|
.assume_init_on_success(handle)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub const NAME: &'static CStr = vk::KhrExternalSemaphoreWin32Fn::NAME;
|
pub const NAME: &'static CStr = vk::KhrExternalSemaphoreWin32Fn::NAME;
|
||||||
|
|
|
@ -10,12 +10,16 @@ pub type xcb_window_t = u32;
|
||||||
pub type xcb_visualid_t = u32;
|
pub type xcb_visualid_t = u32;
|
||||||
pub type MirConnection = *const c_void;
|
pub type MirConnection = *const c_void;
|
||||||
pub type MirSurface = *const c_void;
|
pub type MirSurface = *const c_void;
|
||||||
pub type HINSTANCE = *const c_void;
|
/// <https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Foundation/struct.HANDLE.html>
|
||||||
pub type HWND = *const c_void;
|
pub type HANDLE = isize;
|
||||||
|
/// <https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Foundation/struct.HINSTANCE.html>
|
||||||
|
pub type HINSTANCE = HANDLE;
|
||||||
|
/// <https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Foundation/struct.HWND.html>
|
||||||
|
pub type HWND = HANDLE;
|
||||||
|
/// <https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Graphics/Gdi/struct.HMONITOR.html>
|
||||||
|
pub type HMONITOR = HANDLE;
|
||||||
pub type wl_display = c_void;
|
pub type wl_display = c_void;
|
||||||
pub type wl_surface = c_void;
|
pub type wl_surface = c_void;
|
||||||
pub type HANDLE = *mut c_void;
|
|
||||||
pub type HMONITOR = HANDLE;
|
|
||||||
pub type DWORD = c_ulong;
|
pub type DWORD = c_ulong;
|
||||||
pub type LPCWSTR = *const u16;
|
pub type LPCWSTR = *const u16;
|
||||||
pub type zx_handle_t = u32;
|
pub type zx_handle_t = u32;
|
||||||
|
|
Loading…
Reference in a new issue