我正在尝试按照adrien ben 的 vulkan-tutorial使用 Rust创建我的第一个Vulkan 应用程序。
随着我提交 1.2.1的进展,我注意到他正在为 Windows 创建 winit-window。
因为我在我的Linux 系统上开发应用程序,所以我决定离开预先编写好的路径,并尝试自己实现窗口部分。
所以我偶然发现了ash-window-crate,它给了我一个create-surface()需要 awindow-handle作为参数的方法。
我的问题如下:
我无法从我的 winit-window调用raw-window-handle 函数,尽管 winit 的文档建议 Window-Struct 实现HasRawWindowHandle-Trait,据我了解,这将公开上述函数。
我正在尝试像这样创建 KHRSurface:
let window = WindowBuilder::new().build(&events_loop).unwrap();;
let surface_khr = unsafe { create_surface(&entry, &instance, &window.raw_window_handle(), None).unwrap(); };
锈编译器抱怨:
error[E0277]: the trait bound `RawWindowHandle: HasRawWindowHandle` is not satisfied
--> src/main.rs:46:70
|
46 | let surface_khr = unsafe { create_surface(&entry, &instance, &window.raw_window_handle(), None).unwrap(); };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `HasRawWindowHandle` is not implemented for `RawWindowHandle`
|
= note: required for the cast to the object type `dyn HasRawWindowHandle`
由于我对 Rust 编程语言很陌生,我对特征的概念不是很熟悉,因此非常感谢任何帮助。