特征“raw_window_handle::HasRawDisplayHandle”没有为“Window”实现

Sup*_*Hah 5 window rust wgpu-rs winit

当我尝试制作 wgpu 表面时,出现此错误:

error[E0277]: the trait bound `Window: raw_window_handle::HasRawDisplayHandle` is not satisfied
    --> src/lib.rs:34:56
     |
34   |         let surface = unsafe { instance.create_surface(&window) }.unwrap();
     |                                         -------------- ^^^^^^^ the trait `raw_window_handle::HasRawDisplayHandle` is not implemented for `Window`
     |                                         |
     |                                         required by a bound introduced by this call
     |
     = help: the following other types implement trait `raw_window_handle::HasRawDisplayHandle`:
               &'a T
               raw_window_handle::borrowed::DisplayHandle<'_>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

let surface = unsafe { instance.create_surface(&window) }.unwrap();

我不知道如何解决这个问题,我尝试修复但一切都是徒劳的。

Why*_*ugo 11

该函数create_surface接受一个window必须实现的参数HasRawWindowHandle + HasRawDisplayHandle

您的代码是正确的,但您缺少一个/该winit **rwh_05**功能。

在文件中替换winit = "0.29"为,它应该可以工作。winit = { version = "0.29", features = ["rwh_05"]}Cargo.toml