11 个版本
0.5.2 | 2024年1月16日 |
---|---|
0.5.0 | 2023年11月27日 |
0.4.4 | 2023年7月24日 |
0.4.2 | 2023年2月17日 |
0.3.1 | 2022年10月11日 |
#254 在 GUI
每月 53 次下载
26KB
265 代码行
Blue Engine egui 插件
这是一个插件,它为 egui 添加了对 Blue Engine 的支持。
入门
要开始,初始化插件
let gui_context = blue_engine_egui::EGUI::new(&engine.event_loop, &mut engine.renderer, &engine.window);
这将初始化 egui 并创建运行插件所需的所有内容。然后引擎将运行两次,一次在所有其他内容之前以获取所有输入和事件,然后在渲染期间,以便显示 GUI。然后剩下的是将插件添加到引擎并使用它
engine.plugins.push(Box::new(gui_context));
在更新循环期间,您可以获取插件并使用它。我们假设只添加了一个插件
// -- update loop start
// change the plugin_index from 0 to the index of the plugin when added
let egui_plugin = let egui_plugin = plugins[0]
// downcast it to obtain the plugin
.downcast_mut::<blue_engine_egui::EGUI>()
.expect("Plugin not found");
// -- rest of update loop code
最后,您可以使用它来添加 GUI 代码
// -- rest of update loop code
// start the GUI addition
egui_plugin.ui(
// get the context
|ctx| {
// create the window
gui::Window::new("title").show(ctx, |ui| {
// add components
ui.horizontal(|ui| {
ui.label("Hello World!");
});
});
},
&window,
);
// -- rest of update loop code
恭喜,您现在有一个工作的 GUI 了!
样式块
指南即将推出,我保证它很酷!
示例
请检查 示例 文件夹以获取潜在的 UI 和作为您新项目的模板。
依赖关系说明
blue_engine
:显然用于导出设计 API 所需的一些组件和结构声明。egui-wgpu
:用于将 egui 应用于 wgpu 图形后端。这是与 Blue Engine 使用的相同图形后端。egui-winit
:支持 Winit 窗口。这是与 Blue Engine 使用的相同窗口系统。egui
:egui 本身,用于获取 API 设计所需的组件和声明。
依赖项
~36–73MB
~1M SLoC