【发布时间】:2021-06-22 02:07:09
【问题描述】:
我正在尝试使用 Rust 创建我的第一个 Vulkan 应用程序,遵循 adrien ben's vulkan-tutorial.
当我升级到 commit 1.2.1 时,我注意到他正在为 Windows 创建 winit-window。
因为我是在我的 Linux 系统上开发应用程序,所以我决定离开预先编写好的路径,并尝试自己实现窗口部分。
所以我偶然发现了ash-window-crate,它给了我一个需要window-handle 作为参数的create-surface() 方法。
我的问题如下:
我无法从我的 winit-window 调用 raw-window-handle 函数,尽管 docs of 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 编程语言的新手,我对 特征的概念不是很熟悉,因此非常感谢任何帮助。
【问题讨论】:
标签: rust window vulkan ash winit