16 个版本

0.3.0 2019 年 8 月 25 日
0.2.1 2019 年 6 月 3 日
0.1.8 2019 年 4 月 3 日
0.1.7 2019 年 3 月 1 日
0.1.6 2019 年 2 月 9 日

#74#imgui


imgui-ext 中使用

MIT 许可证

80KB
2K SLoC

⚠️ imgui-ext 需要完全重写。由于这是我第一次尝试制作过程宏,由于缺乏规划,它变得混乱且难以维护。在重写完成之前,请谨慎使用。

您还可以查看 imgui-inspect-derive,它看起来很整洁!

imgui-ext

Build Status Cargo package docs.rs docs Master docs

imgui 提供的 derive-macro。

#[derive(imgui_ext::Gui)]
struct Example {
    #[imgui(slider(min = 0.0, max = 4.0))]
    x: f32,
    #[imgui(input(step = 2))]
    y: i32,
    #[imgui(drag(label = "Drag 2D"))]
    drag_2d: [f32; 2],
    #[imgui(checkbox(label = "Turbo mode"))]
    turbo: bool,
}

let mut example = Example { /* skipped */ };

imgui::Window::new(im_str!("debug")).build(ui, || {
    use imgui_ext::UiExt;
    
    if ui.draw_gui(&mut example).turbo() {
        println!("Turbo mode value changed: {}", example.turbo);
    }
})

示例

# codegen example (see examples/codegen.rs to see the macro expansion)
cargo run --example codegen

# integration with nalgebra types
cargo run --example nalgebra

限制

  • #[derive(imgui_ext::Gui)] 仅支持具有命名字段的 struct

许可证

MIT

依赖关系

~1.5MB
~36K SLoC