20个版本 (9个破坏性更新)

0.11.4 2024年4月2日
0.10.2 2024年3月25日

#26 in 渲染

Download history 62/week @ 2024-04-23

每月1,215次下载

MIT/Apache

205KB
4.5K SLoC

witer Crates.io Version Discord

在Rust中构建的基于迭代器的Win32窗口库

use witer::prelude::*;

fn main() {
  // Build
  let window = Window::builder()
    .with_title("My App")
    .with_size(LogicalSize::new(800.0, 500.0))
    .build()
    .unwrap();

  // Run
  for message in &window {
    if let Message::Key { .. } = message {
      println!("{message:?}");
    }
  }
}

目标

witer的主要目标是拥有简单、易于使用的API。目标受众是那些希望快速、轻松、地道地创建窗口的开发者。次要目标是最终与winit实现功能对等。

跨平台支持可能性非常小,但如果有人想处理它,欢迎提交拉取请求。egui支持是实验性的,且是积极开发中的项目。类似地,OpenGL上下文创建也在积极开发中。

⚠️警告⚠️该项目仍然非常不完整,可能包含重大错误。毕竟,我只是一个学生,所以请报告任何和所有问题或功能请求!

ko-fi

文档

随着包的发展,文档是一个正在进行中的工作。在这里不要期望太多,所以如果你有任何问题,请

  • 在GitHub的“讨论”标签页上发帖
  • 在Discord上发消息
  • 自己深入了解代码库

在将来,当API稳定下来时,我计划在版本之间制作迁移指南。现在,如果有任何疑问,请参考示例。

Cargo功能

  • rwh_05 / rwh_06:使用适当的raw-window-handle版本。rwh_06是默认的。

示例

您可以在示例文件夹中找到示例。您还可以查看foxy-rs/foxy的vulkano分支,截至编写本文时,该分支正在使用witer,但可能会发生变化。

联系我

您可以通过顶部链接的Discord与我联系,或在GitHub的“讨论”标签页上发帖。

或者,您可以给我发送邮件到 [email protected]

常见问题解答(FAQ)

问:为什么不是 winit

答:虽然对于大多数人来说,winit 是最佳选择,但我发现多线程窗口消息泵可以提高性能(未经证实)。此外,我对 winit API 的外观和感觉并不满意。如果您对 winit 提供的功能完全满意,那么我建议您继续使用它。

问:ezwin 发生了什么?

答:我想起一个与项目背后的思想和目标更相符的名字。此外,我想有机会将项目拉回到 v0.x.y,以反映其不稳定性质。目前使用 Crates.io(忽略撤回)还不可能做到这一点。此外,v3.x.y 可能会让那些不理解为什么它们存在的人感到困惑。

依赖项

~139MB
~2.5M SLoC