#imgui #graphics #ui #gui-applications #ui-framework #bindings

easy-imgui-renderer

Default renderer for the easy-imgui crate, using OpenGl via glow

21 releases (12 breaking)

new 0.13.0 Jan 15, 2025
0.12.0 Dec 12, 2024
0.11.0 Nov 8, 2024
0.6.1 Jul 10, 2024
0.2.4 Mar 22, 2024

#1255 in GUI

42 downloads per month
Used in 2 crates (via easy-imgui-window)

MIT license

9MB
122K SLoC

C++ 104K SLoC // 0.2% comments Visual Studio Project 6.5K SLoC Rust 6K SLoC // 0.0% comments Objective-C++ 3.5K SLoC // 0.2% comments C 731 SLoC // 0.3% comments Batch 389 SLoC Visual Studio Solution 361 SLoC GLSL 85 SLoC Kotlin 59 SLoC // 0.1% comments Shell 3 SLoC // 0.7% comments GDB Script 1 SLoC // 0.9% comments

easy-imgui-rs

build

Build full GUI applications with Rust and Dear ImGui. It currently uses version v1.91.6.

There are several crates in this repository:

See some examples at the examples directory. The simplest one is just a few lines of code:

use easy_imgui_window::{MainWindow, MainWindowWithRenderer,
    winit::event_loop::EventLoopBuilder,
    easy_imgui as imgui,
};

fn main() {
    let event_loop = EventLoopBuilder::new().build().unwrap();
    let main_window = MainWindow::new(&event_loop, "Example").unwrap();
    let mut window = MainWindowWithRenderer::new(main_window);

    let mut app = App;

    event_loop.run(move |event, w| {
        let res = window.do_event(&mut app, &event, w);
        if res.is_break() {
            w.exit();
        }
    }).unwrap();
}

struct App;

impl imgui::UiBuilder for App {
    fn do_ui(&mut self, ui: &imgui::Ui<Self>) {
        ui.show_demo_window(None);
    }
}

Dependencies

~4–8.5MB
~177K SLoC