#egui #blue-engine

blue_engine_egui

Blue Engine 的 egui 库

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日

#254GUI

Download history 9/week @ 2024-03-09 2/week @ 2024-03-16 17/week @ 2024-03-30 3/week @ 2024-04-06

每月 53 次下载

Apache-2.0

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