5个稳定版本
1.4.0 | 2022年8月11日 |
---|---|
1.3.1 | 2022年7月18日 |
1.3.0 | 2022年7月17日 |
1.2.0 | 2022年7月17日 |
1.1.1 | 2022年7月17日 |
在渲染类别中排名第280
34KB
804 代码行
欢迎!👋
OpenUI 是一个面向开发者的Rust库,用于创建跨平台GUI应用。对于那些不想直接使用 OpenGL 或类似 Glutin 和 Glium 的封装库,以及不需要完整桌面Web框架如 Electron 或 Tauri 的人来说,这是一个很好的选择。
亲自尝试!🕹
尝试OpenUI示例项目非常简单,这是一个80年代风格的 贪吃蛇游戏。使用箭头键和空格键进行游戏。
git clone [email protected]:craigfay/open_ui.git && cd open_ui
cargo run
开发者安装 💽
在任意的Cargo项目中将OpenUI添加为依赖项
# Cargo.toml
[dependencies]
open_ui = "*"
使用OpenUI构建您的应用 🧱
要创建一个渲染UI的Rust程序,只需定义一个实现 UIController
接口的struct
use open_ui::UIController;
// Define a struct to hold your application data
struct SnakeGame {};
// Implement the `UIController` interface to define application behavior
impl UIController for SnakeGame {
fn blueprint(&self) -> UIBlueprint {
// This function wil be called once before the application opens,
// and determines the initial settings of the rendering window.
}
fn next_frame(&mut self) -> Option<&RgbaImage> {
// This function will be called called every frame,
// and returns the contents of the next render-able frame,
// or `None` if the application should terminate.
}
fn process_events(&mut self, events: &Vec<UIEvent>) {
// This function will be called every frame, receiving
// input events, and usually responding by modifying state.
}
}
然后,将那个struct的实例传递给 UI::launch()
use open_ui::UI;
fn main() {
let application = SnakeGame::new();
UI::launch(application);
}
注意事项
OpenUI在CPU上完成所有工作,并且(目前)没有尝试利用GPU加速。这意味着它可能不适合涉及逼真3D渲染的工作负载。但话说回来,OpenUI完全能够处理现代机器上的几乎所有2D图形工作负载。
资源 📖
依赖项
~7–11MB
~214K SLoC