26 个稳定版本
3.3.2 |
|
---|---|
3.3.1 |
|
2.15.1 | 2024 年 3 月 10 日 |
2.8.1 | 2024 年 2 月 25 日 |
1.0.1 | 2024 年 2 月 23 日 |
231 在 渲染 分类中
1,696 每月下载量
79KB
2.5K SLoC
ezwin:一个最小的原生 Win32 窗口库
注意:进一步的开发将作为 witer
包的一部分进行。
use ezwin::prelude::*;
fn main() {
// Configure
let settings = WindowSettings::default();
// Build
let window = Window::new(settings).unwrap();
// Run
for message in &window {
if let Message::Window(..) = message {
println!("{message:?}");
}
}
}
目标
ezwin
的主要目标是拥有一个简单、易于使用的 API。目标受众是希望快速、轻松、以惯用方式创建窗口的开发者。我最终的目标是达到与 winit
相当的功能,作为次要目标。
跨平台支持的可能性非常小,但如果有人想要解决这个问题,欢迎提交拉取请求。
我最终希望从使用 windows
转向使用 windows-sys
,以利用更好的编译时间,因为前者包含的包装器对这个包来说是多余的。
文档
随着包的发展,文档仍在进行中。这里目前可能不会有很多内容,所以如果你有任何问题,请
- 在 GitHub 的“讨论”标签页中发帖
- 通过 Discord 发送消息
- 自己深入研究代码库
Cargo 特性
rwh_05
/rwh_06
: 使用raw-window-handle
的合适版本。默认使用rwh_06
。
示例
您可以在 示例文件夹 中找到示例。您还可以查看 foxy-rs/foxy 的 vulkano 分支,截至写作时,该分支正在使用 ezwin
,但可能会发生变化。
联系我
您可以通过顶部链接的 Discord 联系我,或者在 GitHub 的“讨论”标签页中发帖。
常见问题解答
问:为什么不使用 winit
?
A: 虽然 winit
对于几乎所有用户来说都是最佳选择,但我发现多线程窗口消息泵可以提高性能(未经证实)。此外,我对 winit
API 的外观和感觉并不满意。如果您对 winit
提供的内容非常满意,那么我建议您继续使用它。
Q: 3.0 版本发生了什么?
A: 由于这个项目处于变动之中,曾经实现了一个临时的 3.0
版本,这个版本偏离了我对这个软件包的愿景。我后悔发布了那个版本,并且已经从 crates.io 上撤回了每个版本。未来,我打算更加审慎和周到地考虑发布的内容,而不是随意发布下一个大特性。
⚠️ 警告 ⚠️
该项目仍然非常不完整。毕竟,我只是一个学生。
依赖项
~129MB
~2M SLoC