20个版本 (9个破坏性更新)
0.11.4 | 2024年4月2日 |
---|---|
0.10.2 | 2024年3月25日 |
#26 in 渲染
每月1,215次下载
205KB
4.5K SLoC
witer
在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上下文创建也在积极开发中。
⚠️警告⚠️该项目仍然非常不完整,可能包含重大错误。毕竟,我只是一个学生,所以请报告任何和所有问题或功能请求!
文档
随着包的发展,文档是一个正在进行中的工作。在这里不要期望太多,所以如果你有任何问题,请
- 在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