imgui-ext 0.1.8

A crate to build debug UIs on structs using a derive macro (based on the imgui crate)
Documentation

imgui-ext

Build Status Cargo package docs.rs docs Master docs

A crate to quickly build imgui UIs using annotations and a custom Derive.

Features

  • Encode UI directly on the types.
  • Static code generation: example.
  • Nested UIs (see the imgui(nested(...)) annotation).
  • Descriptive compiler errors.

Example

use imgui_ext::ImGuiExt;

#[derive(ImGuiExt)]
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"),
        display(label = "Is turbo enabled?"),
    )]
    turbo: bool,
}

Result:

See full example

cargo run --package example

Limitations

  • #[derive(ImGuiExt)] is only supported for structs with named fields, at the moment.
  • Limited layout support.

License

MIT